* Bug 15359 fixed: twinkle(h) could not blink several objects together
[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) 2012 - 2016 - Scilab Enterprises
4 // Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
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             n = 5
35         end
36     end
37     if type(h)<>9 then
38         msg = _("%s: Wrong type for input argument #%d: Graphic handle expected.\n")
39         error(msprintf(msg, "twinkle", 1));
40     end
41     if type(n)<>1 | n<0 then
42         msg = _("%s: Wrong type for input argument #%d: Positive integer expected.\n")
43         error(msprintf(msg, "twinkle", min(rhs,2)));
44     end
45
46     // BLINKING THE GRAPHICAL COMPONENTS
47     realtimeinit(0.2);
48     realtime(0);
49     k = 0;
50     v = h.visible;
51     for i = 1:n
52         k = k+2;
53         h.visible = "off";
54         realtime(k);
55         h.visible = "on";
56         realtime(k+1);
57     end
58
59     // Restoring the initial .visible state
60     for i = 1:length(h)
61         h(i).visible = v(i);
62     end
63 endfunction