Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / m2sci / macros / cb_m2sci_gui.sci
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Vincent COUVERT
4 //
5 // Copyright (C) 2012 - 2016 - Scilab Enterprises
6 //
7 // This file is hereby licensed under the terms of the GNU GPL v2.0,
8 // pursuant to article 5.3.4 of the CeCILL v.2.1.
9 // This file was originally licensed under the terms of the CeCILL v2.1,
10 // and continues to be available under such terms.
11 // For more information, see the COPYING file which you should have received
12 // along with this program.
13 //
14
15 // Callback function for M2SCI GUI (See m2sci_gui.sci)
16
17 function cb_m2sci_gui
18
19     //
20     // --- Switch to file conversion mode ---
21     //
22     if get(gcbo,"tag")=="fileradio" then
23
24         set(gcbo, "value", 1);
25         set("dirradio", "value", 0);
26
27         // Make dir objects not-visible
28         set("dirlabel", "visible","off");
29         set("diredit", "visible","off");
30         set("dirbtn", "visible","off");
31
32         // Make file objects visible
33         set("filedirselect", "border",createBorder("titled", createBorder("line", "lightGray", 1),...
34         _("Input file"),"left","top",createBorderFont("", 11, "normal"), "black"));
35         set("filelabel", "visible","on");
36         set("fileedit", "visible","on");
37         set("filebtn", "visible","on");
38
39         //
40         // --- Switch to directory conversion mode ---
41         //
42     elseif get(gcbo,"tag")=="dirradio" then
43
44         set(gcbo, "value", 1);
45         set("fileradio", "value", 0);
46
47         // Make dir objects visible
48         set("filedirselect", "border",createBorder("titled", createBorder("line", "lightGray", 1),...
49         _("Input directory"),"left","top",createBorderFont("", 11, "normal"), "black"));
50         set("dirlabel", "visible", "on");
51         set("diredit", "visible", "on");
52         set("dirbtn", "visible", "on");
53
54         // Make file objects not-visible
55         set("filelabel", "visible", "off");
56         set("fileedit", "visible", "off");
57         set("filebtn", "visible", "off");
58
59         //
60         // --- Directory to convert ---
61         //
62     elseif get(gcbo,"tag")=="dirbtn" then
63
64         directoryname = uigetdir(pwd(), gettext("Select the directory to convert"));
65         set("diredit", "string", directoryname);
66
67         //
68         // --- File to convert ---
69         //
70     elseif get(gcbo,"tag")=="filebtn" then
71
72         filename = uigetfile("*.m", pwd(), gettext("Select the file to convert"));
73         set("fileedit", "string", filename);
74
75         //
76         // --- Output directory ---
77         //
78     elseif get(gcbo,"tag")=="outbtn" then
79
80         directoryname = uigetdir(pwd(), gettext("Select the directory for generated files"));
81         set("outedit", "string", directoryname);
82
83         //
84         // --- Recmode option ---
85         //
86     elseif or(get(gcbo, "tag")==["recradioyes","recradiono"]) then
87
88         set("recradioyes", "value", 0);
89         set("recradiono", "value", 0);
90
91         set(gcbo, "value", 1);
92
93         //
94         // --- Double option ---
95         //
96     elseif or(get(gcbo, "tag")==["doubradioyes","doubradiono"]) then
97
98         set("doubradioyes", "value", 0);
99         set("doubradiono", "value", 0);
100
101         set(gcbo, "value", 1);
102
103         //
104         // --- Verbose option ---
105         //
106     elseif or(get(gcbo, "tag")==["verbradio0","verbradio1","verbradio2","verbradio3"]) then
107
108         set("verbradio0", "value", 0);
109         set("verbradio1", "value", 0);
110         set("verbradio2", "value", 0);
111         set("verbradio3", "value", 0);
112
113         set(gcbo, "value", 1);
114
115         //
116         // --- Pretty print option ---
117         //
118     elseif or(get(gcbo, "tag")==["ppradioyes","ppradiono"]) then
119
120         set("ppradioyes", "value", 0);
121         set("ppradiono", "value", 0);
122
123         set(gcbo, "value", 1);
124
125         //
126         // --- Cancel conversion ---
127         //
128     elseif get(gcbo, "tag")=="cancelbtn" | get(gcbo, "tag")=="close_menu" then
129         delete(findobj("tag", "m2sci_gui"));
130         //delete(gcf())
131
132         //
133         // --- Launch conversion ---
134         //
135     elseif get(gcbo, "tag")=="convertbtn" then
136         outputdir = get("outedit", "string");
137         if outputdir == [] | ~isdir(outputdir) then
138             set(gcf(), "info_message", _("Please specify an existing output directory."));
139             return
140         end
141
142         rec = get("recradioyes", "value") == 1;
143
144         doub = get("doubradioyes", "value") == 1;
145
146         if get("verbradio0", "value") == 1 then
147             verb = 0;
148         elseif get("verbradio1", "value") == 1 then
149             verb = 1;
150         elseif get("verbradio2", "value") == 1 then
151             verb = 2;
152         else
153             verb = 3;
154         end
155
156         pp = get("ppradioyes", "value") == 1;
157
158         if get("fileradio", "value") == 1 then // Single file conversion
159             inputfile = get("fileedit", "string");
160             if inputfile <> [] & isfile(inputfile) then
161                 //delete(findobj("tag", "m2scifig"));
162                 delete(gcf());
163                 mfile2sci(inputfile, outputdir, rec, doub, verb, pp);
164             else
165                 set(gcf(), "info_message", _("Please specify an existing input file."));
166             end
167         else // Directory conversion
168             inputdir = get("diredit", "string");
169             if inputdir <> [] & isdir(inputdir) then
170                 //delete(findobj("tag", "m2scifig"));
171                 delete(gcf());
172                 translatepaths(inputdir, outputdir);
173             else
174                 set(gcf(), "info_message", _("Please specify an existing input directory."));
175             end
176         end
177
178         //
179         // --- mfile2sci help ---
180         //
181     elseif get(gcbo, "tag")=="mfile2sci_help_menu" then
182         help mfile2sci
183
184         //
185         // --- translatepaths help ---
186         //
187     elseif get(gcbo, "tag")=="translatepaths_help_menu" then
188         help translatepaths
189
190         //
191         // --- About M2SCI ---
192         //
193     elseif get(gcbo, "tag")=="about_m2sci_menu" then
194         help(gettext("About_M2SCI_tools"))
195     end
196
197 endfunction