m2sci_gui now uses Scilab uicontrols instead of a TK user interface
[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 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at    
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10 //
11
12 function m2sci_gui()
13
14 // Sizes
15 widgeth = 20;
16 btnh = 22;
17 btnw = 80;
18 defaultfont = "arial";
19 margin = 13;
20 figw = 500;
21 figh = 17*margin + btnh + 7*widgeth + 70; // 70 = size of the status bar and the menu bar
22
23 // Figure creation
24 m2scifig = figure("position", [0 0 figw figh], "figure_name", gettext("Matlab to Scilab conversion tool"));
25
26 // Remove Scilab graphics menus & toolbar
27 delmenu(m2scifig.figure_id, gettext("File"));
28 delmenu(m2scifig.figure_id, gettext("Tools"));
29 delmenu(m2scifig.figure_id, gettext("Edit"));
30 delmenu(m2scifig.figure_id, gettext("?"));
31 toolbar(m2scifig.figure_id, "off");
32
33 //-------------------
34 // --- Validation ---
35 //-------------------
36
37 // Convert button
38 convertbtn = uicontrol("parent", m2scifig,...
39     "backgroundcolor", [0.8 0.8 0.8],...
40     "style", "pushbutton",...
41     "string", gettext("Convert"),...
42     "position", [figw-margin-btnw margin btnw btnh],...
43     "fontname", defaultfont,...
44     "fontunits", "points",...
45     "fontsize", 10,...
46     "tag","convertbtn",...
47     "callback","cb_m2sci_gui");
48
49 // Cancel button
50 cancelbtn = uicontrol("parent", m2scifig,...
51     "backgroundcolor", [0.8 0.8 0.8],...
52     "style", "pushbutton",...
53     "string", gettext("Cancel"),...
54     "position",[figw-2*margin-2*btnw margin btnw btnh],...
55     "fontname", defaultfont,...
56     "fontunits", "points",...
57     "fontsize", 10,...
58     "tag", "cancelbtn",...
59     "callback","cb_m2sci_gui");
60
61 //----------------
62 // --- Options ---
63 //----------------
64 // Frame
65 optframe = uicontrol("parent", m2scifig,...
66     "relief", "groove",...
67     "style", "frame",...
68     "units", "pixels",...
69     "position", [margin 2*margin+btnh figw-2*margin 5*margin+4*widgeth],...
70     "fontname", defaultfont,...
71     "fontunits", "points",...
72     "fontsize", 10,...
73     "fontweight", "bold", ...
74     "horizontalalignment", "center");
75 // Frame title
76 opttitle = uicontrol("parent", m2scifig,...
77     "style", "text",...
78     "string", gettext("Options"),...
79     "units", "pixels",...
80     "position", [2*margin 2*margin+btnh+4*margin+4*widgeth-3 50 14],...
81     "fontname", defaultfont,...
82     "fontunits", "points",...
83     "fontsize", 9,...
84     "horizontalalignment", "center");
85
86 // --- Pretty print option ---
87 pplabel = uicontrol("parent", m2scifig,...
88     "style", "text",...
89     "string", gettext("Generate pretty printed code: "),...
90     "position",[2*margin 2*margin+btnh+margin 180 widgeth],...
91     "horizontalalignment", "left",...
92     "fontname", defaultfont,...
93     "fontunits", "points",...
94     "fontsize", 10);
95 ppradioyes = uicontrol("parent", m2scifig,...
96     "style", "radiobutton",...
97     "string", gettext("Yes"),...
98     "position",[2*margin+180 2*margin+btnh+margin 60 widgeth],...
99     "horizontalalignment", "left",...
100     "fontname", defaultfont,...
101     "fontunits", "points",...
102     "fontsize", 10,...
103     "min", 0, ...
104     "max", 1, ...
105     "value", 0,...
106     "callback", "cb_m2sci_gui",...
107     "tag", "ppradioyes"); 
108 ppradiono = uicontrol("parent", m2scifig,...
109     "style", "radiobutton",...
110     "string", gettext("No"),...
111     "position",[2*margin+240 2*margin+btnh+margin 60 widgeth],...
112     "horizontalalignment", "left",...
113     "fontname", defaultfont,...
114     "fontunits", "points",...
115     "fontsize", 10,...
116     "min", 0, ...
117     "max", 1, ...
118     "value", 1,...
119     "callback", "cb_m2sci_gui",...
120     "tag", "ppradiono"); 
121
122 // --- Verbose option ---
123 verby = 2*margin+btnh+margin+widgeth+margin;
124 verblabel = uicontrol("parent", m2scifig,...
125     "style", "text",...
126     "string", gettext("Verbose mode: "),...
127     "position",[2*margin verby 180 widgeth],...
128     "horizontalalignment", "left",...
129     "fontname", defaultfont,...
130     "fontunits", "points",...
131     "fontsize", 10); 
132 verbradio0 = uicontrol("parent", m2scifig,...
133     "style", "radiobutton",...
134     "string", gettext("0"),...
135     "position",[2*margin+180 verby 60 widgeth],...
136     "horizontalalignment", "left",...
137     "fontname", defaultfont,...
138     "fontunits", "points",...
139     "fontsize", 10,...
140     "min", 0, ...
141     "max", 1, ...
142     "value", 0,...
143     "callback", "cb_m2sci_gui",...
144     "tag", "verbradio0"); 
145 verbradio1 = uicontrol("parent", m2scifig,...
146     "style", "radiobutton",...
147     "string", gettext("1"),...
148     "position",[2*margin+180+60 verby 60 widgeth],...
149     "horizontalalignment", "left",...
150     "fontname", defaultfont,...
151     "fontunits", "points",...
152     "fontsize", 10,...
153     "min", 0, ...
154     "max", 1, ...
155     "value", 0,...
156     "callback", "cb_m2sci_gui",...
157     "tag", "verbradio1"); 
158 verbradio2 = uicontrol("parent", m2scifig,...
159     "style", "radiobutton",...
160     "string", gettext("2"),...
161     "position",[2*margin+180+60+60 verby 60 widgeth],...
162     "horizontalalignment", "left",...
163     "fontname", defaultfont,...
164     "fontunits", "points",...
165     "fontsize", 10,...
166     "min", 0, ...
167     "max", 1, ...
168     "value", 0,...
169     "callback", "cb_m2sci_gui",...
170     "tag", "verbradio2"); 
171 verbradio3 = uicontrol("parent", m2scifig,...
172     "style", "radiobutton",...
173     "string", gettext("3"),...
174     "position",[2*margin+180+60+60+60 verby 60 widgeth],...
175     "horizontalalignment", "left",...
176     "fontname", defaultfont,...
177     "fontunits", "points",...
178     "fontsize", 10,...
179     "min", 0, ...
180     "max", 1, ...
181     "value", 1,...
182     "callback", "cb_m2sci_gui",...
183     "tag", "verbradio3"); 
184
185 // --- Only doubles option ---
186 douby = verby + margin + widgeth;
187 doublabel = uicontrol("parent", m2scifig,...
188     "style", "text",...
189     "string", gettext("Only double values used: "),...
190     "position",[2*margin douby 180 widgeth],...
191     "horizontalalignment", "left",...
192     "fontname", defaultfont,...
193     "fontunits", "points",...
194     "fontsize", 10); 
195 doubradioyes = uicontrol("parent", m2scifig,...
196     "style", "radiobutton",...
197     "string", gettext("Yes"),...
198     "position",[2*margin+180 douby 60 widgeth],...
199     "horizontalalignment", "left",...
200     "fontname", defaultfont,...
201     "fontunits", "points",...
202     "fontsize", 10,...
203     "min", 0, ...
204     "max", 1, ...
205     "value", 0,...
206     "callback", "cb_m2sci_gui",...
207     "tag", "doubradioyes"); 
208 doubradiono = uicontrol("parent", m2scifig,...
209     "style", "radiobutton",...
210     "string", gettext("No"),...
211     "position",[2*margin+240 douby 60 widgeth],...
212     "horizontalalignment", "left",...
213     "fontname", defaultfont,...
214     "fontunits", "points",...
215     "fontsize", 10,...
216     "min", 0, ...
217     "max", 1, ...
218     "value", 1,...
219     "callback", "cb_m2sci_gui",...
220     "tag", "doubradiono"); 
221
222 // --- Recursive mode option ---
223 recy = douby + margin + widgeth;
224 reclabel = uicontrol("parent", m2scifig,...
225     "style", "text",...
226     "string", gettext("Recursive conversion: "),...
227     "position",[2*margin recy 180 widgeth],...
228     "horizontalalignment", "left",...
229     "fontname", defaultfont,...
230     "fontunits", "points",...
231     "fontsize", 10); 
232 recradioyes = uicontrol("parent", m2scifig,...
233     "style", "radiobutton",...
234     "string", gettext("Yes"),...
235     "position",[2*margin+180 recy 60 widgeth],...
236     "horizontalalignment", "left",...
237     "fontname", defaultfont,...
238     "fontunits", "points",...
239     "fontsize", 10,...
240     "min", 0, ...
241     "max", 1, ...
242     "value", 0,...
243     "callback", "cb_m2sci_gui",...
244     "tag", "recradioyes"); 
245 recradiono = uicontrol("parent", m2scifig,...
246     "style", "radiobutton",...
247     "string", gettext("No"),...
248     "position",[2*margin+240 recy 60 widgeth],...
249     "horizontalalignment", "left",...
250     "fontname", defaultfont,...
251     "fontunits", "points",...
252     "fontsize", 10,...
253     "min", 0, ...
254     "max", 1, ...
255     "value", 1,...
256     "callback", "cb_m2sci_gui",...
257     "tag", "recradiono"); 
258
259 // ------------------------
260 // --- Output directory ---
261 // ------------------------
262 // Frame
263 optframemaxy = 2*margin+btnh + 5*margin+4*widgeth;
264 outframe = uicontrol("parent", m2scifig,...
265     "relief", "groove",...
266     "style", "frame",...
267     "units", "pixels",...
268     "position", [margin optframemaxy+margin figw-2*margin widgeth+2*margin],...
269     "fontname", defaultfont,...
270     "fontunits", "points",...
271     "fontsize", 13,...
272     "fontweight", "bold", ...
273     "horizontalalignment", "center");
274 // Frame title
275 outtitle = uicontrol("parent", m2scifig,...
276     "style", "text",...
277     "string", gettext("Output directory"),...
278     "units", "pixels",...
279     "position", [2*margin optframemaxy+margin+widgeth+margin-3 90 14],...
280     "fontname", defaultfont,...
281     "fontunits", "points",...
282     "fontsize", 9,...
283     "horizontalalignment", "center");
284 outlabel = uicontrol("parent", m2scifig,...
285     "style", "text",...
286     "string", gettext("Directory name: "),...
287     "position",[2*margin optframemaxy+2*margin-1 100 widgeth],...
288     "horizontalalignment", "left",...
289     "fontname", defaultfont,...
290     "fontunits", "points",...
291     "fontsize", 10);
292 outedit = uicontrol("parent", m2scifig,...
293     "style", "edit",...
294     "string", getcwd(),...
295     "units", "points",...
296     "position",[3*margin+100 optframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
297     "fontname", defaultfont,...
298     "fontunits", "points",...
299     "fontsize", 10, ...
300     "tag", "outedit");
301 outbtn = uicontrol("parent", m2scifig,...
302     "backgroundcolor", [0.8 0.8 0.8],...
303     "style", "pushbutton",...
304     "string", gettext("Browse"),...
305     "position",[figw-2*margin-btnw optframemaxy+2*margin btnw btnh],...
306     "fontname", defaultfont,...
307     "fontunits", "points",...
308     "fontsize", 10,...
309     "callback", "cb_m2sci_gui",...
310     "tag", "outbtn");
311
312 // --------------------------------
313 // --- File/Directory selection ---
314 // --------------------------------
315 // Frame
316 outframemaxy = optframemaxy + 2*margin + widgeth + margin;
317 selframe = uicontrol("parent", m2scifig,...
318     "relief", "groove",...
319     "style", "frame",...
320     "units", "pixels",...
321     "position", [margin outframemaxy+margin figw-2*margin 2*margin+widgeth],...
322     "fontname", "arial",...
323     "fontunits", "points",...
324     "fontsize", 13,...
325     "fontweight", "bold", ...
326     "horizontalalignment", "center");
327 // Frame title
328 dirtitle = uicontrol("parent", m2scifig,...
329     "style", "text",...
330     "string", gettext("Input directory"),...
331     "units", "pixels",...
332     "position", [2*margin outframemaxy+margin+margin+widgeth-3 85 14],...
333     "fontname", defaultfont,...
334     "fontunits", "points",...
335     "fontsize", 9,...
336     "horizontalalignment", "center", ...
337     "tag", "dirtitle",...
338     "visible", "off");
339 filetitle = uicontrol("parent", m2scifig,...
340     "style", "text",...
341     "string", gettext("Input file"),...
342     "units", "pixels",...
343     "position", [2*margin outframemaxy+margin+margin+widgeth-3 50 14],...
344     "fontname", defaultfont,...
345     "fontunits", "points",...
346     "fontsize", 9,...
347     "horizontalalignment", "center", ...
348     "tag", "filetitle");
349
350 // --- Directory selection ---
351 dirlabel = uicontrol("parent", m2scifig,...
352     "style", "text",...
353     "string", gettext("Directory name: "),...
354     "position",[2*margin outframemaxy+2*margin-1 100 widgeth],...
355     "horizontalalignment", "left",...
356     "fontname", defaultfont,...
357     "fontunits", "points",...
358     "fontsize", 10,...
359     "visible", "off",...
360     "tag", "dirlabel");
361 diredit = uicontrol("parent", m2scifig,...
362     "style", "edit",...
363     "string", getcwd(),...
364     "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
365     "fontname", defaultfont,...
366     "fontunits", "points",...
367     "fontsize", 10,...
368     "tag", "diredit",...
369     "visible", "off",...
370     "tag", "diredit");
371 dirbtn = uicontrol("parent", m2scifig,...
372     "backgroundcolor", [0.8 0.8 0.8],...
373     "style", "pushbutton",...
374     "string", gettext("Browse"),...
375     "position",[figw-2*margin-btnw outframemaxy+2*margin btnw btnh],...
376     "fontname", defaultfont,...
377     "fontunits", "points",...
378     "fontsize", 10,...
379     "visible", "off",...
380     "callback", "cb_m2sci_gui",...
381     "tag", "dirbtn");
382
383 // --- File\0 selection ---
384 filelabel = uicontrol("parent", m2scifig,...
385     "style", "text",...
386     "string", gettext("File name: "),...
387     "position",[2*margin outframemaxy+2*margin-1 100 widgeth],...
388     "horizontalalignment", "left",...
389     "fontname", defaultfont,...
390     "fontunits", "points",...
391     "fontsize", 10,...
392     "tag", "filelabel");
393
394 fileedit = uicontrol("parent", m2scifig,...
395     "style", "edit",...
396     "string", gettext("<enter a file name>"),...
397     "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
398     "fontname", defaultfont,...
399     "fontunits", "points",...
400     "fontsize", 10,...
401     "tag", "fileedit");
402
403 filebtn = uicontrol("parent", m2scifig,...
404     "backgroundcolor", [0.8 0.8 0.8],...
405     "style", "pushbutton",...
406     "string", gettext("Browse"),...
407     "position",[figw-2*margin-btnw outframemaxy+2*margin btnw btnh],...
408     "fontname", defaultfont,...
409     "fontunits", "points",...
410     "fontsize", 10,...
411     "callback", "cb_m2sci_gui",...
412     "tag", "filebtn");
413
414 // ------------
415 // --- Mode ---
416 // ------------
417 // Frame
418 selframemaxy = outframemaxy + 2*margin + widgeth + margin;
419 modeframe = uicontrol("parent", m2scifig,...
420     "relief", "groove",...
421     "style", "frame",...
422     "units", "pixels",...
423     "position", [margin selframemaxy+margin figw-2*margin 2*margin+widgeth],...
424     "fontname", "arial",...
425     "fontunits", "points",...
426     "fontsize", 13,...
427     "fontweight", "bold", ...
428     "horizontalalignment", "center");
429 // Frame title
430 modetitle = uicontrol("parent", m2scifig,...
431     "style", "text",...
432     "string", gettext("Conversion mode"),...
433     "units", "pixels",...
434     "position", [2*margin selframemaxy+margin+margin+widgeth-3 100 14],...
435     "fontname", defaultfont,...
436     "fontunits", "points",...
437     "fontsize", 9,...
438     "horizontalalignment", "center", ...
439     "tag", "seltitle");
440
441 fileradio = uicontrol("parent", m2scifig,...
442     "style", "radiobutton",...
443     "string", gettext("Convert a single file"),...
444     "position",[2*margin selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
445     "fontname", defaultfont,...
446     "fontunits", "points",...
447     "fontsize", 10, ...
448     "min", 0, ...
449     "max", 1, ...
450     "value", 1,...
451     "tag", "fileradio", ...
452     "callback", "cb_m2sci_gui");
453
454 dirradio = uicontrol("parent", m2scifig,...
455     "style", "radiobutton",...
456     "string", gettext("Convert a whole directory"),...
457     "position",[3*margin+(figw-5*margin)/2 selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
458     "fontname", defaultfont,...
459     "fontunits", "points",...
460     "fontsize", 10, ...
461     "min", 0, ...
462     "max", 1, ...
463     "value", 0,...
464     "tag", "dirradio", ...
465     "callback", "cb_m2sci_gui");
466
467 endfunction