Bug Fix #13966 - twinkle, twinkle(n) now supported
[scilab.git] / scilab / modules / graphics / macros / twinkle.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) 2015 - 2016 - Samuel GOUGEON
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function twinkle(h,n)
14
15     // CHECKING INPUT ARGUMENTS
16     [lhs,rhs]=argn(0)
17     if rhs==0 then
18         if winsid()~=[] then
19             h = gce()
20             n = 5
21         else
22             return
23         end
24     end
25     if rhs==1 then
26         if type(h)<>9
27             n = h
28             if winsid()~=[]
29                 h = gce()
30             else
31                 return
32             end
33         else
34             h = h(1)
35             n = 5
36         end
37     end
38     if type(h)<>9 then
39         msg = _("%s: Wrong type for input argument #%d: Graphic handle expected.\n")
40         error(msprintf(msg, "twinkle", 1));
41     end
42     if type(n)<>1 | n<0 then
43         msg = _("%s: Wrong type for input argument #%d: Positive integer expected.\n")
44         error(msprintf(msg, "twinkle", min(rhs,2)));
45     end
46
47     // BLINKING THE GRAPHICAL COMPONENT
48     f = h;
49     while f.type<>"Figure"
50         f = f.parent;
51     end
52     realtimeinit(0.2);
53     realtime(0);
54     k = 0;
55
56     v = h.visible;
57     for i = 1:n
58         k = k+2;
59         h.visible = "off";
60         realtime(k);
61         h.visible = "on";
62         realtime(k+1);
63     end
64     h.visible = v;
65 endfunction