Fixes test_run graphics save_load
[scilab.git] / scilab / modules / gui / demos / uicontrol.dem.sce
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA
4 // Copyright (C) 2009 - DIGITEO - Vincent COUVERT
5 //
6 // This file is released under the 3-clause BSD license. See COPYING-BSD.
7
8 // Callback functions
9 function act_color_in_list(flag)
10     listbox_handle = get("colors_listbox");
11     new_color = get(get("colors_edit"), "String");
12
13     if new_color==gettext("<Enter color name here>") | isempty(new_color) then
14         messagebox(gettext("Please enter a color name first."), gettext("Error"), "error", "modal");
15         return
16     end
17     colors = get(listbox_handle, "String");
18     if (flag==1) then
19         colors = [colors  new_color];
20     else
21         f = find(colors<>new_color);
22         if size(f, "*") == size(colors, "*") then
23             messagebox(gettext("Unknown color."), gettext("Error"), "error", "modal");
24             return
25         end
26         colors = colors(f);
27     end
28     set(listbox_handle, "String", strcat(colors,"|"));
29 endfunction
30
31 function act_selected_colors(flag)
32     listbox_handle = get("colors_listbox");
33     colors = get(listbox_handle, "String");
34     indices = get(listbox_handle, "Value");
35
36     if isempty(indices) then
37         msg = gettext("No color selected.");
38         messagebox(msg, gettext("Color selection"), "info", "modal");
39         return
40     end
41     if (flag==1) then
42         msg = msprintf(gettext("Selected colors are: %s."), strcat(colors(indices), ", "));
43     else
44         msg = msprintf(gettext("Deleted colors are: %s."), strcat(colors(indices), ", "));
45         s = size(colors, "*");
46         colors = colors(setdiff(1:s,indices));
47         set(listbox_handle, "String", strcat(colors,"|"));
48     end
49     messagebox(msg, gettext("Color selection"), "info", "modal");
50 endfunction
51
52 function menu_callback()
53     msg = msprintf(gettext("You clicked on menu ''%s''."), get(gcbo, "Label"));
54     messagebox(msg, gettext("Selected menu"), "info", "modal");
55 endfunction
56
57 function checked_menu_callback()
58     if get(gcbo, "Checked")=="on" then
59         state = gettext("checked");
60     else
61         state = gettext("unchecked");
62     end
63     msg = msprintf(gettext("Menu ''%s'' is %s."), get(gcbo, "Label"), state);
64     messagebox(msg, gettext("Menu status"), "info", "modal");
65 endfunction
66
67 function slider_update()
68     sl = get("demo_slider");
69     txt = get("slider_text");
70     set(txt, "String", gettext("Slider value: ") + string(get(sl, "Value")));
71 endfunction
72
73 function popupmenu_callback()
74     pop = get("popupmenu_demo");
75     items = get(pop, "String");
76     selected = get(pop, "Value");
77
78     msg = msprintf(gettext("You selected ''%s''."), items(selected));
79     messagebox(msg, gettext("Popupmenu selection"), "info", "modal");
80 endfunction
81
82 function close_uicontrols_demo()
83     delete(get("uicontrols_demo_figure"));
84 endfunction
85
86 function reset_uicontrols_demo()
87     findChildren = get("popupmenu_demo");
88     findChildren.value = [];
89     findChildren = get("demo_slider");
90     findChildren.value = 50;
91     slider_update();
92     findChildren = get("colors_edit");
93     findChildren.string = gettext("<Enter color name here>");
94     findChildren = get("colors_listbox");
95     findChildren.string = tokens(initial_colors,"|")';
96 endfunction
97
98
99 function exit_scilab()
100     msg = gettext("Do you really want to quit Scilab?");
101     answ = messagebox(msg, gettext("Quit Scilab"), "question", [gettext("Yes") gettext("No")], "modal");
102     if answ==1 then
103         exit;
104     end
105 endfunction
106
107 // Create a figure
108 f = figure("figure_name", gettext("Uicontrols demo"),...
109 "infobar_visible", "off",...
110 "toolbar_visible", "off",...
111 "dockable", "off",...
112 "menubar", "none",...
113 "default_axes", "off", ...
114 "Position",[150 150 450 410],...
115 "resize", "off",...
116 "BackgroundColor", [0.9 0.9 0.9],...
117 "Tag", "uicontrols_demo_figure");
118
119 // Add custom menus
120 appli_menu = uimenu("Parent", f, "Label", gettext("Application"));
121 close_menu = uimenu("Parent", appli_menu, "Label", gettext("Close figure"), "callback", "close_uicontrols_demo();");
122 quit_menu = uimenu("Parent", appli_menu, "Label", gettext("Quit Scilab"), "callback", "exit_scilab();");
123
124 graphics_menu = uimenu("Parent", f, "Label", gettext("Scilab Graphics"));
125 plot3d_menu = uimenu("Parent", graphics_menu, "Label", gettext("Launch plot3d"), "callback", "plot3d();");
126 plot2d_menu = uimenu("Parent", graphics_menu, "Label", gettext("Launch plot2d"), "callback", "plot2d();");
127
128 menu = uimenu("Parent", f, "Label", gettext("Menu"));
129 submenu1 = uimenu("Parent", menu, "Label", gettext("Sub-menu 1"), "Callback", "menu_callback()");
130 submenu2 = uimenu("Parent", menu, "Label", gettext("Sub-menu 2"), "Callback", "menu_callback()");
131 submenu21 = uimenu("Parent", submenu2, "Label", gettext("Sub-menu 2-1"), "Callback", "menu_callback()");
132 submenu22 = uimenu("Parent", submenu2, "Label", gettext("Sub-menu 2-2"), "Callback", "menu_callback()");
133 submenu3 = uimenu("Parent", menu, "Label", gettext("Sub-menu 2"), "Checked", "on", "Callback", "checked_menu_callback()");
134
135 demo_viewCode("uicontrol.dem.sce");
136
137 // A popup menu
138 popup_demo = uicontrol(f, "Position", [15 330 240 20],...
139 "Style", "popupmenu",...
140 "String", gettext("item1|item2|item3|item4"),...
141 "Callback", "popupmenu_callback();",...
142 "Tag", "popupmenu_demo");
143 popup_demo_title = uicontrol(f, "Position", [16 355 80 15],...
144 "Style", "text",...
145 "FontSize", 11,...
146 "String", gettext("Pop-up menu"),...
147 "BackgroundColor", [0.9 0.9 0.9]);
148
149 // Frame containing a slider
150 slider_frame = uicontrol(f, "Position", [15 190 240 105], ...
151 "Style", "frame", ...
152 "Relief", "groove",...
153 "BackgroundColor", [0.8 0.8 0.8]);
154 slider_frame_title = uicontrol(f, "Position", [16 300 200 15],...
155 "Style", "text",...
156 "FontSize", 11,...
157 "String", gettext("Slider demo"),...
158 "BackgroundColor", [0.9 0.9 0.9]);
159
160 slider_text = uicontrol(f, "Position", [20 200 230 20],...
161 "Style", "text",...
162 "FontSize", 11,...
163 "FontWeight", "bold",...
164 "BackgroundColor",[1 1 1],...
165 "HorizontalAlignment", "center",...
166 "Tag", "slider_text");
167
168 theslider = uicontrol(f, "Position", [20 230 230 55],...
169 "Style", "slider",...
170 "Min", 0,...
171 "Max", 100,...
172 "Value", 50,...
173 "SliderStep", [2 10],...
174 "Tag", "demo_slider",...
175 "Callback", "slider_update();");
176 // Update the text displayed
177 slider_update();
178
179 // Frame with uicontrols used to edit the colors list
180 edit_frame = uicontrol(f, "Position", [15 45 240 110],...
181 "Style", "frame",...
182 "Relief", "groove",...
183 "BackgroundColor", [0.8 0.8 0.8]);
184 edit_frame_title = uicontrol(f, "Position", [16 160 170 15],...
185 "Style", "text",...
186 "FontSize", 11,...
187 "String", gettext("Colors list edition"),...
188 "BackgroundColor", [0.9 0.9 0.9]);
189
190 edit_edit = uicontrol(f, "Position", [20 120 230 25],...
191 "Style", "edit",...
192 "FontSize", 11,...
193 "String", gettext("<Enter color name here>"),...
194 "BackgroundColor", [1 1 1],...
195 "Tag", "colors_edit");
196
197 edit_button = uicontrol(f, "Position", [19 85 230 25], ...
198 "Style", "pushbutton",...
199 "FontSize", 11,...
200 "String", gettext("Add color in listbox"), ...
201 "callback", "act_color_in_list(1)");
202
203 edit_button_del = uicontrol(f, "Position", [19 55 230 25], ...
204 "Style", "pushbutton", ...
205 "FontSize", 11, ...
206 "String", gettext("Delete color in listbox"), ...
207 "callback", "act_color_in_list(2)");
208
209 // Listbox used to display color list
210 initial_colors = strcat([gettext("red") gettext("green") gettext("blue") gettext("yellow")], "|");
211
212 thelistbox = uicontrol(f, "Position", [270 45 165 260],...
213 "Style", "listbox",...
214 "FontSize", 11,...
215 "String",  initial_colors,...
216 "BackgroundColor", [1 1 1],...
217 "Max", 30,... //if Max>1 then allowed multiple selection
218 "Tag", "colors_listbox");
219
220 // Button used to display selected colors in a message box
221 disp_button = uicontrol(f, "Position", [270 345 165 25],...
222 "Style", "pushbutton",...
223 "FontSize", 11,...
224 "String", gettext("Display selection"),...
225 "callback", "act_selected_colors(1)");
226
227 // Button used to delete selected colors in a message box
228 disp_button = uicontrol(f, "Position", [270 315 165 25], ...
229 "Style", "pushbutton",...
230 "FontSize", 11,...
231 "String", gettext("Delete selection"),...
232 "callback", "act_selected_colors(2)");
233
234 // Reset application
235 quit_button = uicontrol(f, "Position", [14 15 165 25],...
236 "Style", "pushbutton",...
237 "String", gettext("Default"),...
238 "FontSize", 11,...
239 "Callback", "reset_uicontrols_demo();");
240
241 // Exit application
242 quit_button = uicontrol(f, "Position", [270 15 165 25],...
243 "Style", "pushbutton",...
244 "String", gettext("Quit demonstration"),...
245 "FontSize", 11,...
246 "Callback", "close_uicontrols_demo();");