Packaging: fix wrong FSF address
[scilab.git] / scilab / modules / scicos_blocks / macros / Sources / tkscaleblk.sci
1 //  Scicos
2 //
3 // Copyright (C) DIGITEO - ClĂ©ment DAVID <clement.david@scilab.org>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 //
19 // See the file ../license.txt
20 //
21
22 function block=tkscaleblk(block,flag)
23   if flag == 1 then
24     // Output update
25     slider = findobj("Tag", block.label + "#slider");
26     if slider <> [] then
27       // calculate real value
28       value = (block.rpar(1) + block.rpar(2) - slider.value) / block.rpar(3);
29       
30       w = slider.parent;
31       if w <> [] then
32         w.info_message = string(value);
33       end
34
35       block.outptr(1) = value;
36     end
37   elseif flag == 4 then
38     // Initialization
39
40     // if already exists (stopped) then reuse
41     f = findobj("Tag", block.label);
42     if f <> [] then
43       return;
44     end
45
46     f = figure("Tag", block.label, "Figure_name", "TK Source: " + block.label);
47
48     // delete standard menus
49     delmenu(f.figure_id, gettext("&File"));
50     delmenu(f.figure_id, gettext("&Tools"));
51     delmenu(f.figure_id, gettext("&Edit"));
52     delmenu(f.figure_id, gettext("&?"));
53     toolbar(f.figure_id, "off");
54
55     f.position = [0 0 80 200];
56
57     // slider
58     bounds = block.rpar(1:2);
59     initial = mean(bounds);
60     uicontrol(f, "Style", "slider", "Tag", block.label + "#slider", ..
61       "Min", bounds(1), "Max", bounds(2), "Value", initial, ..
62       "Position", [0 0 20 200], "SliderStep", [block.rpar(3) 2*block.rpar(3)]);
63     
64     // labels
65     labels = string([bounds(2)                  ;..
66                      mean([bounds(2) initial])  ;..
67                      initial                    ;..
68                      mean([bounds(1) initial])  ;..
69                      bounds(1)]);
70     labels = strcat(labels, "<br /><br /><br />");
71     uicontrol(f, "Style", "text", "String", labels(1), ..
72               "Position", [30  0 50 200]);
73     
74     // update default value
75     block.outptr(1) = initial / block.rpar(3);
76   elseif flag == 5 then
77     // Ending
78     f = findobj("Tag", block.label);
79     if f <> [] then
80       close(f);
81     end
82   end
83 endfunction
84