Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / m2sci / macros / m2sci_gui.sci
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2002-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 function m2sci_gui()
16
17     // Sizes
18     widgeth = 20;
19     btnh = 22;
20     btnw = 90;
21     margin = 18;
22
23     // Figure creation
24     m2scifig = figure("figure_name", gettext("Matlab to Scilab conversion tool"),...
25     "infobar_visible", "on",...
26     "toolbar_visible", "off",...
27     "dockable", "off",...
28     "menubar", "none",...
29     "default_axes", "off",...
30     "resize", "off", ..
31     "tag", "m2sci_gui");
32
33     h = uimenu("parent", m2scifig, "label", gettext("File"));
34     uimenu("parent", h, "label", gettext("Close"), "callback", "cb_m2sci_gui", "tag", "close_menu");
35
36     h = uimenu("parent", m2scifig, "label", gettext("?"));
37     uimenu("parent", h, "label", gettext("Mfile2sci help page"), "callback", "cb_m2sci_gui();", "tag", "mfile2sci_help_menu");
38     uimenu("parent", h, "label", gettext("Translatepaths help page"), "callback", "cb_m2sci_gui();", "tag", "translatepaths_help_menu");
39     uimenu("parent", h, "label", gettext("About M2SCI tools..."), "callback", "cb_m2sci_gui();", "tag", "about_m2sci_menu");
40
41     figw = 650;
42     figh = 17*margin + btnh + 7*widgeth;
43     m2scifig.axes_size = [figw figh];
44
45     //-------------------
46     // --- Validation ---
47     //-------------------
48
49     // Convert button
50     convertbtn = uicontrol("parent", m2scifig,...
51     "style", "pushbutton",...
52     "string", gettext("Convert"),...
53     "position", [figw-margin-btnw margin btnw btnh],...
54     "fontsize", 12,...
55     "tag","convertbtn",...
56     "callback","cb_m2sci_gui");
57
58     // Cancel button
59     cancelbtn = uicontrol("parent", m2scifig,...
60     "style", "pushbutton",...
61     "string", gettext("Cancel"),...
62     "position",[figw-2*margin-2*btnw margin btnw btnh],...
63     "fontsize", 12,...
64     "tag", "cancelbtn",...
65     "callback","cb_m2sci_gui");
66
67     //----------------
68     // --- Options ---
69     //----------------
70     // Frame
71     optframe = uicontrol("parent", m2scifig,...
72     "style", "frame",...
73     "units", "pixels",...
74     "border", createBorder("titled", createBorder("line", "lightGray", 1),...
75     _("Options"), "left", "top", createBorderFont("", 11, "normal"), "black"),...
76     "position", [margin 2*margin+btnh figw-2*margin 5*margin+4*widgeth]);
77
78     // --- Pretty print option ---
79     pplabel = uicontrol("parent", m2scifig,...
80     "style", "text",...
81     "string", gettext("Generate pretty printed code: "),...
82     "position",[2*margin 2*margin+btnh+margin 280 widgeth],...
83     "horizontalalignment", "left",...
84     "fontunits", "points",...
85     "fontsize", 12);
86     ppradioyes = uicontrol("parent", m2scifig,...
87     "style", "radiobutton",...
88     "string", gettext("Yes"),...
89     "position",[2*margin+300 2*margin+btnh+margin 60 widgeth],...
90     "horizontalalignment", "left",...
91     "fontunits", "points",...
92     "fontsize", 12,...
93     "min", 0, ...
94     "max", 1, ...
95     "value", 0,...
96     "callback", "cb_m2sci_gui",...
97     "tag", "ppradioyes");
98     ppradiono = uicontrol("parent", m2scifig,...
99     "style", "radiobutton",...
100     "string", gettext("No"),...
101     "position",[2*margin+360 2*margin+btnh+margin 60 widgeth],...
102     "horizontalalignment", "left",...
103     "fontunits", "points",...
104     "fontsize", 12,...
105     "min", 0, ...
106     "max", 1, ...
107     "value", 1,...
108     "callback", "cb_m2sci_gui",...
109     "tag", "ppradiono");
110
111     // --- Verbose option ---
112     verby = 2*margin+btnh+margin+widgeth+margin;
113     verblabel = uicontrol("parent", m2scifig,...
114     "style", "text",...
115     "string", gettext("Verbose mode: "),...
116     "position",[2*margin verby 280 widgeth],...
117     "horizontalalignment", "left",...
118     "fontunits", "points",...
119     "fontsize", 12);
120     verbradio0 = uicontrol("parent", m2scifig,...
121     "style", "radiobutton",...
122     "string", gettext("0"),...
123     "position",[2*margin+300 verby 60 widgeth],...
124     "horizontalalignment", "left",...
125     "fontunits", "points",...
126     "fontsize", 12,...
127     "min", 0, ...
128     "max", 1, ...
129     "value", 0,...
130     "callback", "cb_m2sci_gui",...
131     "tag", "verbradio0");
132     verbradio1 = uicontrol("parent", m2scifig,...
133     "style", "radiobutton",...
134     "string", gettext("1"),...
135     "position",[2*margin+300+60 verby 60 widgeth],...
136     "horizontalalignment", "left",...
137     "fontunits", "points",...
138     "fontsize", 12,...
139     "min", 0, ...
140     "max", 1, ...
141     "value", 0,...
142     "callback", "cb_m2sci_gui",...
143     "tag", "verbradio1");
144     verbradio2 = uicontrol("parent", m2scifig,...
145     "style", "radiobutton",...
146     "string", gettext("2"),...
147     "position",[2*margin+300+60+60 verby 60 widgeth],...
148     "horizontalalignment", "left",...
149     "fontunits", "points",...
150     "fontsize", 12,...
151     "min", 0, ...
152     "max", 1, ...
153     "value", 0,...
154     "callback", "cb_m2sci_gui",...
155     "tag", "verbradio2");
156     verbradio3 = uicontrol("parent", m2scifig,...
157     "style", "radiobutton",...
158     "string", gettext("3"),...
159     "position",[2*margin+300+60+60+60 verby 60 widgeth],...
160     "horizontalalignment", "left",...
161     "fontunits", "points",...
162     "fontsize", 12,...
163     "min", 0, ...
164     "max", 1, ...
165     "value", 1,...
166     "callback", "cb_m2sci_gui",...
167     "tag", "verbradio3");
168
169     // --- Only doubles option ---
170     douby = verby + margin + widgeth;
171     doublabel = uicontrol("parent", m2scifig,...
172     "style", "text",...
173     "string", gettext("Only double values used: "),...
174     "position",[2*margin douby 280 widgeth],...
175     "horizontalalignment", "left",...
176     "fontunits", "points",...
177     "fontsize", 12);
178     doubradioyes = uicontrol("parent", m2scifig,...
179     "style", "radiobutton",...
180     "string", gettext("Yes"),...
181     "position",[2*margin+300 douby 60 widgeth],...
182     "horizontalalignment", "left",...
183     "fontunits", "points",...
184     "fontsize", 12,...
185     "min", 0, ...
186     "max", 1, ...
187     "value", 0,...
188     "callback", "cb_m2sci_gui",...
189     "tag", "doubradioyes");
190     doubradiono = uicontrol("parent", m2scifig,...
191     "style", "radiobutton",...
192     "string", gettext("No"),...
193     "position",[2*margin+360 douby 60 widgeth],...
194     "horizontalalignment", "left",...
195     "fontunits", "points",...
196     "fontsize", 12,...
197     "min", 0, ...
198     "max", 1, ...
199     "value", 1,...
200     "callback", "cb_m2sci_gui",...
201     "tag", "doubradiono");
202
203     // --- Recursive mode option ---
204     recy = douby + margin + widgeth;
205     reclabel = uicontrol("parent", m2scifig,...
206     "style", "text",...
207     "string", gettext("Recursive conversion: "),...
208     "position",[2*margin recy 280 widgeth],...
209     "horizontalalignment", "left",...
210     "fontunits", "points",...
211     "fontsize", 12);
212     recradioyes = uicontrol("parent", m2scifig,...
213     "style", "radiobutton",...
214     "string", gettext("Yes"),...
215     "position",[2*margin+300 recy 60 widgeth],...
216     "horizontalalignment", "left",...
217     "fontunits", "points",...
218     "fontsize", 12,...
219     "min", 0, ...
220     "max", 1, ...
221     "value", 0,...
222     "callback", "cb_m2sci_gui",...
223     "tag", "recradioyes");
224     recradiono = uicontrol("parent", m2scifig,...
225     "style", "radiobutton",...
226     "string", gettext("No"),...
227     "position",[2*margin+360 recy 60 widgeth],...
228     "horizontalalignment", "left",...
229     "fontunits", "points",...
230     "fontsize", 12,...
231     "min", 0, ...
232     "max", 1, ...
233     "value", 1,...
234     "callback", "cb_m2sci_gui",...
235     "tag", "recradiono");
236
237     // ------------------------
238     // --- Output directory ---
239     // ------------------------
240     // Frame
241     optframemaxy = 2*margin+btnh + 5*margin+4*widgeth;
242     outframe = uicontrol("parent", m2scifig,...
243     "style", "frame",...
244     "position", [margin optframemaxy+margin figw-2*margin widgeth+2*margin],...
245     "border", createBorder("titled", createBorder("line", "lightGray", 1),...
246     _("Output directory"),"left","top",createBorderFont("", 11, "normal"), "black"));
247
248     outlabel = uicontrol("parent", m2scifig,...
249     "style", "text",...
250     "string", gettext("Directory name: "),...
251     "position",[2*margin optframemaxy+2*margin-1 120 widgeth],...
252     "horizontalalignment", "left",...
253     "fontunits", "points",...
254     "fontsize", 12);
255     outedit = uicontrol("parent", m2scifig,...
256     "style", "edit",...
257     "string", pwd(),...
258     "units", "pixels",...
259     "position",[3*margin+100 optframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
260     "fontunits", "points",...
261     "fontsize", 12, ...
262     "tag", "outedit");
263
264     outbtn = uicontrol("parent", m2scifig,...
265     "style", "pushbutton",...
266     "string", gettext("Browse"),...
267     "position",[figw-2*margin-btnw optframemaxy+1.9*margin btnw btnh],...
268     "fontsize", 12,...
269     "callback", "cb_m2sci_gui",...
270     "tag", "outbtn");
271
272     // --------------------------------
273     // --- File/Directory selection ---
274     // --------------------------------
275     // Frame
276     outframemaxy = optframemaxy + 2*margin + widgeth + margin;
277     selframe = uicontrol("parent", m2scifig,...
278     "relief", "groove",...
279     "style", "frame",...
280     "units", "pixels",...
281     "position", [margin outframemaxy+margin figw-2*margin 2*margin+widgeth],...
282     "border", createBorder("titled", createBorder("line", "lightGray", 1),...
283     _("Input file"),"left","top",createBorderFont("", 11, "normal"), "black"),...
284     "tag", "filedirselect");
285
286     // --- Directory selection ---
287     dirlabel = uicontrol("parent", m2scifig,...
288     "style", "text",...
289     "string", gettext("Directory name: "),...
290     "position",[2*margin outframemaxy+2*margin-1 120 widgeth],...
291     "horizontalalignment", "left",...
292     "fontunits", "points",...
293     "fontsize", 12,...
294     "visible", "off",...
295     "tag", "dirlabel");
296     diredit = uicontrol("parent", m2scifig,...
297     "style", "edit",...
298     "string", pwd(),...
299     "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
300     "fontunits", "points",...
301     "fontsize", 12,...
302     "tag", "diredit",...
303     "visible", "off",...
304     "tag", "diredit");
305     dirbtn = uicontrol("parent", m2scifig,...
306     "style", "pushbutton",...
307     "string", gettext("Browse"),...
308     "position",[figw-2*margin-btnw outframemaxy+1.9*margin btnw btnh],...
309     "fontsize", 12,...
310     "visible", "off",...
311     "callback", "cb_m2sci_gui",...
312     "tag", "dirbtn");
313
314     // --- File selection ---
315     filelabel = uicontrol("parent", m2scifig,...
316     "style", "text",...
317     "string", gettext("File name: "),...
318     "position",[2*margin outframemaxy+2*margin-1 120 widgeth],...
319     "horizontalalignment", "left",...
320     "fontunits", "points",...
321     "fontsize", 12,...
322     "tag", "filelabel");
323
324     fileedit = uicontrol("parent", m2scifig,...
325     "style", "edit",...
326     "string", gettext("<enter a file name>"),...
327     "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
328     "fontunits", "points",...
329     "fontsize", 12,...
330     "tag", "fileedit");
331
332     filebtn = uicontrol("parent", m2scifig,...
333     "style", "pushbutton",...
334     "string", gettext("Browse"),...
335     "position",[figw-2*margin-btnw outframemaxy+1.9*margin btnw btnh],...
336     "fontsize", 12,...
337     "callback", "cb_m2sci_gui",...
338     "tag", "filebtn");
339
340     // ------------
341     // --- Mode ---
342     // ------------
343     // Frame
344     selframemaxy = outframemaxy + 2*margin + widgeth + margin;
345     modeframe = uicontrol("parent", m2scifig,...
346     "style", "frame",...
347     "position", [margin selframemaxy+margin figw-2*margin 2*margin+widgeth],...
348     "border", createBorder("titled", createBorder("line", "lightGray", 1),...
349     _("Conversion mode"), "left", "top", createBorderFont("", 11, "normal"), "black"));
350
351     fileradio = uicontrol("parent", m2scifig,...
352     "style", "radiobutton",...
353     "string", gettext("Convert a single file"),...
354     "position",[2*margin selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
355     "fontunits", "points",...
356     "fontsize", 12, ...
357     "min", 0, ...
358     "max", 1, ...
359     "value", 1,...
360     "tag", "fileradio", ...
361     "callback", "cb_m2sci_gui");
362
363     dirradio = uicontrol("parent", m2scifig,...
364     "style", "radiobutton",...
365     "string", gettext("Convert a whole directory"),...
366     "position",[3*margin+(figw-5*margin)/2 selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
367     "fontunits", "points",...
368     "fontsize", 12, ...
369     "min", 0, ...
370     "max", 1, ...
371     "value", 0,...
372     "tag", "dirradio", ...
373     "callback", "cb_m2sci_gui");
374
375 endfunction