Bug fix #11530 & #11363: Raise (help, scinotes...) windows when iconified
[scilab.git] / scilab / modules / demo_tools / macros / demo_gui.sci
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Pierre MARECHAL
4 // Copyright (C) 2012 - DIGITEO - Vincent COUVERT
5 // Copyright (C) 2014 - Scilab Enterprises - Anais AUBERT
6 //
7 // Copyright (C) 2012 - 2016 - Scilab Enterprises
8 //
9 // This file is hereby licensed under the terms of the GNU GPL v2.0,
10 // pursuant to article 5.3.4 of the CeCILL v.2.1.
11 // This file was originally licensed under the terms of the CeCILL v2.1,
12 // and continues to be available under such terms.
13 // For more information, see the COPYING file which you should have received
14 // along with this program.
15 //
16
17 function demo_gui()
18
19     global demolist; // Demos list is defined in scilab.start
20     global demolistlock;
21     if isempty(demolist) then
22         if isempty(demolistlock) then
23             demolistlock = %t;
24             // we load scilab demos only when it is required
25             modules = getmodules();
26             for i=1:size(modules,"*")
27                 if isfile("SCI/modules/"+modules(i)+"/demos/" + modules(i) + ".dem.gateway.sce") then
28                     exec("SCI/modules/"+modules(i)+"/demos/" + modules(i) + ".dem.gateway.sce",-1);
29                 end
30             end
31             clear demolistlock;
32             clearglobal demolistlock;
33         end
34     end
35
36     if get("scilab_demo_fig") <> [] then
37         set("scilab_demo_fig", "visible", "on");
38         return;
39     end
40
41
42
43     // Figure creation
44     // =========================================================================
45     demo_fig = loadGui(SCI + "/modules/demo_tools/gui/demo_gui.xml");
46     demo_fig.figure_name = _("Demonstrations");
47     // Parameters
48     // =========================================================================
49     demo_fig.userdata = struct();
50     demo_fig.userdata.frame_number = 1;      // Frame number
51     demo_fig.userdata.subdemolist = [];
52
53     lst_vars_locals = ["%h_delete";
54     "demo_fig";
55     "get_figure_handle";
56     "subdemolist";
57     "demolistlock";
58     "resize_demo_gui";
59     "demo_gui_update";
60     "demo_gui"];
61
62     clear_vars_str = strcat("clear " + lst_vars_locals, ";") + ";";
63
64     callback_close_str = "delete(get(""scilab_demo_fig""));";
65     callback_close_str = callback_close_str + clear_vars_str + "clearglobal demolistlock;";
66
67     b = get("frame_1", "border");
68     b.title = _("Demonstrations");
69     set("frame_1", "border", b);
70     set("listbox_1", "string", "<html>"+demolist(:, 1)+" &#x2023; </html>");
71     set("listbox_1", "userdata", demolist);
72
73     demo_fig.closerequestfcn = callback_close_str;
74
75     demo_fig.visible = "on"; // Display now
76
77 endfunction
78