m2sci_gui now uses Scilab uicontrols instead of a TK user interface
Vincent Couvert [Tue, 8 Apr 2008 15:20:52 +0000 (15:20 +0000)]
scilab/modules/m2sci/Makefile.am
scilab/modules/m2sci/Makefile.in
scilab/modules/m2sci/m2sci.iss
scilab/modules/m2sci/macros/cb_m2sci_gui.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/m2sci_gui.sci
scilab/modules/m2sci/macros/mfile2sci.sci
scilab/modules/m2sci/macros/translatepaths.sci
scilab/modules/m2sci/tcl/m2sci.tcl [deleted file]

index dd2f267..27bcc5b 100644 (file)
@@ -17,9 +17,4 @@ MACROSDIRSEXT =  macros/kernel macros/percent macros/sci_files
 libm2sci_la_etcdir = $(mydatadir)/etc
 libm2sci_la_etc_DATA = etc/m2sci.quit etc/m2sci.start
 
-### m2sci : TCL macros ###
-libm2sci_la_tcldir = $(mydatadir)/tcl
-libm2sci_la_tcl_DATA = tcl/m2sci.tcl
-
-
 include $(top_srcdir)/Makefile.incl.am
index 7b333a1..f057d68 100644 (file)
@@ -85,13 +85,10 @@ am__vpath_adj = case $$p in \
   esac;
 am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(libm2sci_la_etcdir)" \
-       "$(DESTDIR)$(libm2sci_la_rootdir)" \
-       "$(DESTDIR)$(libm2sci_la_tcldir)"
+       "$(DESTDIR)$(libm2sci_la_rootdir)"
 libm2sci_la_etcDATA_INSTALL = $(INSTALL_DATA)
 libm2sci_la_rootDATA_INSTALL = $(INSTALL_DATA)
-libm2sci_la_tclDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(libm2sci_la_etc_DATA) $(libm2sci_la_root_DATA) \
-       $(libm2sci_la_tcl_DATA)
+DATA = $(libm2sci_la_etc_DATA) $(libm2sci_la_root_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -287,10 +284,6 @@ MACROSDIRSEXT = macros/kernel macros/percent macros/sci_files
 libm2sci_la_etcdir = $(mydatadir)/etc
 libm2sci_la_etc_DATA = etc/m2sci.quit etc/m2sci.start
 
-### m2sci : TCL macros ###
-libm2sci_la_tcldir = $(mydatadir)/tcl
-libm2sci_la_tcl_DATA = tcl/m2sci.tcl
-
 # Where all the Scilab stuff is installed (macros, help, ...)
 mydatadir = $(pkgdatadir)/modules/$(modulename)
 
@@ -424,23 +417,6 @@ uninstall-libm2sci_la_rootDATA:
          echo " rm -f '$(DESTDIR)$(libm2sci_la_rootdir)/$$f'"; \
          rm -f "$(DESTDIR)$(libm2sci_la_rootdir)/$$f"; \
        done
-install-libm2sci_la_tclDATA: $(libm2sci_la_tcl_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(libm2sci_la_tcldir)" || $(MKDIR_P) "$(DESTDIR)$(libm2sci_la_tcldir)"
-       @list='$(libm2sci_la_tcl_DATA)'; for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
-         echo " $(libm2sci_la_tclDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(libm2sci_la_tcldir)/$$f'"; \
-         $(libm2sci_la_tclDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(libm2sci_la_tcldir)/$$f"; \
-       done
-
-uninstall-libm2sci_la_tclDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(libm2sci_la_tcl_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
-         echo " rm -f '$(DESTDIR)$(libm2sci_la_tcldir)/$$f'"; \
-         rm -f "$(DESTDIR)$(libm2sci_la_tcldir)/$$f"; \
-       done
 tags: TAGS
 TAGS:
 
@@ -479,7 +455,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA) all-local
 installdirs:
-       for dir in "$(DESTDIR)$(libm2sci_la_etcdir)" "$(DESTDIR)$(libm2sci_la_rootdir)" "$(DESTDIR)$(libm2sci_la_tcldir)"; do \
+       for dir in "$(DESTDIR)$(libm2sci_la_etcdir)" "$(DESTDIR)$(libm2sci_la_rootdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -525,7 +501,7 @@ info: info-am
 info-am:
 
 install-data-am: install-data-local install-libm2sci_la_etcDATA \
-       install-libm2sci_la_rootDATA install-libm2sci_la_tclDATA
+       install-libm2sci_la_rootDATA
 
 install-dvi: install-dvi-am
 
@@ -562,7 +538,7 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-libm2sci_la_etcDATA \
-       uninstall-libm2sci_la_rootDATA uninstall-libm2sci_la_tclDATA
+       uninstall-libm2sci_la_rootDATA
 
 .MAKE: install-am install-strip
 
@@ -574,13 +550,12 @@ uninstall-am: uninstall-libm2sci_la_etcDATA \
        install-exec install-exec-am install-html install-html-am \
        install-html-local install-info install-info-am \
        install-libm2sci_la_etcDATA install-libm2sci_la_rootDATA \
-       install-libm2sci_la_tclDATA install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-libm2sci_la_etcDATA uninstall-libm2sci_la_rootDATA \
-       uninstall-libm2sci_la_tclDATA
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am uninstall-libm2sci_la_etcDATA \
+       uninstall-libm2sci_la_rootDATA
 
 
 # This target enables tests for Scilab
index 1d7d44e..22ed057 100644 (file)
@@ -23,8 +23,6 @@ Source: modules\{#M2SCI}\etc\{#M2SCI}.start; DestDir: {app}\modules\{#M2SCI}\etc
 ;
 Source: modules\{#M2SCI}\help\addchapter.sce; DestDir: {app}\modules\{#M2SCI}\help; Flags: recursesubdirs; Components:  {#COMPN_M2SCI}
 ;
-Source: modules\{#M2SCI}\tcl\*.tcl; DestDir: {app}\modules\{#M2SCI}\tcl; Components: {#COMPN_M2SCI}
-;
 Source: modules\{#M2SCI}\macros\lib; DestDir: {app}\modules\{#M2SCI}\macros; Flags: recursesubdirs; Components: {#COMPN_M2SCI}
 Source: modules\{#M2SCI}\macros\names; DestDir: {app}\modules\{#M2SCI}\macros; Flags: recursesubdirs; Components: {#COMPN_M2SCI}
 Source: modules\{#M2SCI}\macros\*.bin; DestDir: {app}\modules\{#M2SCI}\macros; Flags: recursesubdirs; Components: {#COMPN_M2SCI}
diff --git a/scilab/modules/m2sci/macros/cb_m2sci_gui.sci b/scilab/modules/m2sci/macros/cb_m2sci_gui.sci
new file mode 100644 (file)
index 0000000..48ef98b
--- /dev/null
@@ -0,0 +1,161 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Vincent COUVERT 
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+
+// Callback function for M2SCI GUI (See m2sci_gui.sci)
+
+function cb_m2sci_gui
+
+//
+// --- Switch to file conversion mode ---
+//
+if get(gcbo,"tag")=="fileradio" then
+
+    set(gcbo, "value", 1);
+    set(findobj("tag", "dirradio"), "value", 0);
+    
+    // Make dir objects not-visible
+    set(findobj("tag", "dirtitle"),"visible","off");
+    set(findobj("tag", "dirlabel"),"visible","off");
+    set(findobj("tag", "diredit"),"visible","off");
+    set(findobj("tag", "dirbtn"),"visible","off");
+
+    // Make file objects visible
+    set(findobj("tag", "filetitle"),"visible","on");
+    set(findobj("tag", "filelabel"),"visible","on");
+    set(findobj("tag", "fileedit"),"visible","on");
+    set(findobj("tag", "filebtn"),"visible","on");
+  
+//
+// --- Switch to directory conversion mode ---
+//
+elseif get(gcbo,"tag")=="dirradio" then
+    
+    set(gcbo, "value", 1);
+    set(findobj("tag", "fileradio"), "value", 0);
+    
+    // Make dir objects visible
+    set(findobj("tag", "dirtitle"),"visible","on");
+    set(findobj("tag", "dirlabel"),"visible","on");
+    set(findobj("tag", "diredit"),"visible","on");
+    set(findobj("tag", "dirbtn"),"visible","on");
+
+    // Make file objects not-visible
+    set(findobj("tag", "filetitle"),"visible","off");
+    set(findobj("tag", "filelabel"),"visible","off");
+    set(findobj("tag", "fileedit"),"visible","off");
+    set(findobj("tag", "filebtn"),"visible","off");
+    
+//
+// --- Directory to convert ---
+//
+elseif get(gcbo,"tag")=="dirbtn" then
+  
+  ditname = uigetdir(getcwd(), gettext("Select the directory to convert"));
+  set(findobj("tag", "diredit"), "string", dirname);
+  
+//
+// --- File to convert ---
+//
+elseif get(gcbo,"tag")=="filebtn" then
+  
+  filename = xgetfile("*.m", getcwd(), gettext("Select the file to convert"));
+  set(findobj("tag", "fileedit"), "string", filename);
+  
+//
+// --- Output directory ---
+//
+elseif get(gcbo,"tag")=="outbtn" then
+  
+  dirname = uigetdir(getcwd(), gettext("Select the directory for generated files"));
+  set(findobj("tag", "outedit"), "string", dirname);
+  
+//
+// --- Recmode option ---
+//
+elseif or(get(gcbo, "tag")==["recradioyes","recradiono"]) then
+  
+  set(findobj("tag", "recradioyes"), "value", 0);
+  set(findobj("tag", "recradiono"), "value", 0);
+  
+  set(gcbo, "value", 1);
+  
+//
+// --- Double option ---
+//
+elseif or(get(gcbo, "tag")==["doubradioyes","doubradiono"]) then
+  
+  set(findobj("tag", "doubradioyes"), "value", 0);
+  set(findobj("tag", "doubradiono"), "value", 0);
+  
+  set(gcbo, "value", 1);
+  
+//
+// --- Verbose option ---
+//
+elseif or(get(gcbo, "tag")==["verbradio0","verbradio1","verbradio2","verbradio3"]) then
+  
+  set(findobj("tag", "verbradio0"), "value", 0);
+  set(findobj("tag", "verbradio1"), "value", 0);
+  set(findobj("tag", "verbradio2"), "value", 0);
+  set(findobj("tag", "verbradio3"), "value", 0);
+  
+  set(gcbo, "value", 1);
+  
+//
+// --- Pretty print option ---
+//
+elseif or(get(gcbo, "tag")==["ppradioyes","ppradiono"]) then
+  
+  set(findobj("tag", "ppradioyes"), "value", 0);
+  set(findobj("tag", "ppradiono"), "value", 0);
+  
+  set(gcbo, "value", 1);
+  
+//
+// --- Cancel conversion ---
+//
+elseif get(gcbo, "tag")=="cancelbtn" then
+  //delete(findobj("tag", "m2scifig"));
+  delete(gcf())
+//
+// --- Launch conversion ---
+//
+elseif get(gcbo, "tag")=="convertbtn" then
+  outputdir = get(findobj("tag", "outedit"), "string");
+  
+  rec = get(findobj("tag", "recradioyes"), "value") == 1;
+  
+  doub = get(findobj("tag", "doubradioyes"), "value") == 1;
+  
+  if get(findobj("tag", "verbradio0"), "value") == 1 then
+    verb = 0;
+  elseif get(findobj("tag", "verbradio1"), "value") == 1 then
+    verb = 1;
+  elseif get(findobj("tag", "verbradio2"), "value") == 1 then
+    verb = 2;
+  else
+    verb = 3;
+  end
+  
+  pp = get(findobj("tag", "ppradioyes"), "value") == 1;
+  
+  if get(findobj("tag", "fileradio"), "value") == 1 then // Single file conversion
+    inputfile = get(findobj("tag", "fileedit"), "string");
+    delete(gcf());
+    mfile2sci(inputfile, outputdir, rec, doub, verb, pp);
+  else // Directory conversion
+    inputdir = get(findobj("tag", "diredit"), "string");
+    delete(gcf());
+    translatepaths(inputdir, outputdir);
+  end
+end
+
+endfunction
index 60383c0..2c09290 100644 (file)
+//
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2002-2004 - INRIA - Vincent COUVERT 
+// Copyright (C) 2002-2008 - INRIA - Vincent COUVERT 
 // 
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
 // are also available at    
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//
+
+function m2sci_gui()
+
+// Sizes
+widgeth = 20;
+btnh = 22;
+btnw = 80;
+defaultfont = "arial";
+margin = 13;
+figw = 500;
+figh = 17*margin + btnh + 7*widgeth + 70; // 70 = size of the status bar and the menu bar
+
+// Figure creation
+m2scifig = figure("position", [0 0 figw figh], "figure_name", gettext("Matlab to Scilab conversion tool"));
+
+// Remove Scilab graphics menus & toolbar
+delmenu(m2scifig.figure_id, gettext("File"));
+delmenu(m2scifig.figure_id, gettext("Tools"));
+delmenu(m2scifig.figure_id, gettext("Edit"));
+delmenu(m2scifig.figure_id, gettext("?"));
+toolbar(m2scifig.figure_id, "off");
+
+//-------------------
+// --- Validation ---
+//-------------------
+
+// Convert button
+convertbtn = uicontrol("parent", m2scifig,...
+    "backgroundcolor", [0.8 0.8 0.8],...
+    "style", "pushbutton",...
+    "string", gettext("Convert"),...
+    "position", [figw-margin-btnw margin btnw btnh],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "tag","convertbtn",...
+    "callback","cb_m2sci_gui");
+
+// Cancel button
+cancelbtn = uicontrol("parent", m2scifig,...
+    "backgroundcolor", [0.8 0.8 0.8],...
+    "style", "pushbutton",...
+    "string", gettext("Cancel"),...
+    "position",[figw-2*margin-2*btnw margin btnw btnh],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "tag", "cancelbtn",...
+    "callback","cb_m2sci_gui");
+
+//----------------
+// --- Options ---
+//----------------
+// Frame
+optframe = uicontrol("parent", m2scifig,...
+    "relief", "groove",...
+    "style", "frame",...
+    "units", "pixels",...
+    "position", [margin 2*margin+btnh figw-2*margin 5*margin+4*widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "fontweight", "bold", ...
+    "horizontalalignment", "center");
+// Frame title
+opttitle = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Options"),...
+    "units", "pixels",...
+    "position", [2*margin 2*margin+btnh+4*margin+4*widgeth-3 50 14],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 9,...
+    "horizontalalignment", "center");
+
+// --- Pretty print option ---
+pplabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Generate pretty printed code: "),...
+    "position",[2*margin 2*margin+btnh+margin 180 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10);
+ppradioyes = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("Yes"),...
+    "position",[2*margin+180 2*margin+btnh+margin 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "ppradioyes"); 
+ppradiono = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("No"),...
+    "position",[2*margin+240 2*margin+btnh+margin 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 1,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "ppradiono"); 
+
+// --- Verbose option ---
+verby = 2*margin+btnh+margin+widgeth+margin;
+verblabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Verbose mode: "),...
+    "position",[2*margin verby 180 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10); 
+verbradio0 = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("0"),...
+    "position",[2*margin+180 verby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "verbradio0"); 
+verbradio1 = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("1"),...
+    "position",[2*margin+180+60 verby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "verbradio1"); 
+verbradio2 = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("2"),...
+    "position",[2*margin+180+60+60 verby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "verbradio2"); 
+verbradio3 = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("3"),...
+    "position",[2*margin+180+60+60+60 verby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 1,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "verbradio3"); 
+
+// --- Only doubles option ---
+douby = verby + margin + widgeth;
+doublabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Only double values used: "),...
+    "position",[2*margin douby 180 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10); 
+doubradioyes = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("Yes"),...
+    "position",[2*margin+180 douby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "doubradioyes"); 
+doubradiono = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("No"),...
+    "position",[2*margin+240 douby 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 1,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "doubradiono"); 
+
+// --- Recursive mode option ---
+recy = douby + margin + widgeth;
+reclabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Recursive conversion: "),...
+    "position",[2*margin recy 180 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10); 
+recradioyes = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("Yes"),...
+    "position",[2*margin+180 recy 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "recradioyes"); 
+recradiono = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("No"),...
+    "position",[2*margin+240 recy 60 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 1,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "recradiono"); 
+
+// ------------------------
+// --- Output directory ---
+// ------------------------
+// Frame
+optframemaxy = 2*margin+btnh + 5*margin+4*widgeth;
+outframe = uicontrol("parent", m2scifig,...
+    "relief", "groove",...
+    "style", "frame",...
+    "units", "pixels",...
+    "position", [margin optframemaxy+margin figw-2*margin widgeth+2*margin],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 13,...
+    "fontweight", "bold", ...
+    "horizontalalignment", "center");
+// Frame title
+outtitle = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Output directory"),...
+    "units", "pixels",...
+    "position", [2*margin optframemaxy+margin+widgeth+margin-3 90 14],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 9,...
+    "horizontalalignment", "center");
+outlabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Directory name: "),...
+    "position",[2*margin optframemaxy+2*margin-1 100 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10);
+outedit = uicontrol("parent", m2scifig,...
+    "style", "edit",...
+    "string", getcwd(),...
+    "units", "points",...
+    "position",[3*margin+100 optframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10, ...
+    "tag", "outedit");
+outbtn = uicontrol("parent", m2scifig,...
+    "backgroundcolor", [0.8 0.8 0.8],...
+    "style", "pushbutton",...
+    "string", gettext("Browse"),...
+    "position",[figw-2*margin-btnw optframemaxy+2*margin btnw btnh],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "outbtn");
+
+// --------------------------------
+// --- File/Directory selection ---
+// --------------------------------
+// Frame
+outframemaxy = optframemaxy + 2*margin + widgeth + margin;
+selframe = uicontrol("parent", m2scifig,...
+    "relief", "groove",...
+    "style", "frame",...
+    "units", "pixels",...
+    "position", [margin outframemaxy+margin figw-2*margin 2*margin+widgeth],...
+    "fontname", "arial",...
+    "fontunits", "points",...
+    "fontsize", 13,...
+    "fontweight", "bold", ...
+    "horizontalalignment", "center");
+// Frame title
+dirtitle = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Input directory"),...
+    "units", "pixels",...
+    "position", [2*margin outframemaxy+margin+margin+widgeth-3 85 14],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 9,...
+    "horizontalalignment", "center", ...
+    "tag", "dirtitle",...
+    "visible", "off");
+filetitle = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Input file"),...
+    "units", "pixels",...
+    "position", [2*margin outframemaxy+margin+margin+widgeth-3 50 14],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 9,...
+    "horizontalalignment", "center", ...
+    "tag", "filetitle");
+
+// --- Directory selection ---
+dirlabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Directory name: "),...
+    "position",[2*margin outframemaxy+2*margin-1 100 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "visible", "off",...
+    "tag", "dirlabel");
+diredit = uicontrol("parent", m2scifig,...
+    "style", "edit",...
+    "string", getcwd(),...
+    "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "tag", "diredit",...
+    "visible", "off",...
+    "tag", "diredit");
+dirbtn = uicontrol("parent", m2scifig,...
+    "backgroundcolor", [0.8 0.8 0.8],...
+    "style", "pushbutton",...
+    "string", gettext("Browse"),...
+    "position",[figw-2*margin-btnw outframemaxy+2*margin btnw btnh],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "visible", "off",...
+    "callback", "cb_m2sci_gui",...
+    "tag", "dirbtn");
+
+// --- File\0 selection ---
+filelabel = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("File name: "),...
+    "position",[2*margin outframemaxy+2*margin-1 100 widgeth],...
+    "horizontalalignment", "left",...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "tag", "filelabel");
+
+fileedit = uicontrol("parent", m2scifig,...
+    "style", "edit",...
+    "string", gettext("<enter a file name>"),...
+    "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "tag", "fileedit");
+
+filebtn = uicontrol("parent", m2scifig,...
+    "backgroundcolor", [0.8 0.8 0.8],...
+    "style", "pushbutton",...
+    "string", gettext("Browse"),...
+    "position",[figw-2*margin-btnw outframemaxy+2*margin btnw btnh],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10,...
+    "callback", "cb_m2sci_gui",...
+    "tag", "filebtn");
+
+// ------------
+// --- Mode ---
+// ------------
+// Frame
+selframemaxy = outframemaxy + 2*margin + widgeth + margin;
+modeframe = uicontrol("parent", m2scifig,...
+    "relief", "groove",...
+    "style", "frame",...
+    "units", "pixels",...
+    "position", [margin selframemaxy+margin figw-2*margin 2*margin+widgeth],...
+    "fontname", "arial",...
+    "fontunits", "points",...
+    "fontsize", 13,...
+    "fontweight", "bold", ...
+    "horizontalalignment", "center");
+// Frame title
+modetitle = uicontrol("parent", m2scifig,...
+    "style", "text",...
+    "string", gettext("Conversion mode"),...
+    "units", "pixels",...
+    "position", [2*margin selframemaxy+margin+margin+widgeth-3 100 14],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 9,...
+    "horizontalalignment", "center", ...
+    "tag", "seltitle");
+
+fileradio = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("Convert a single file"),...
+    "position",[2*margin selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10, ...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 1,...
+    "tag", "fileradio", ...
+    "callback", "cb_m2sci_gui");
+
+dirradio = uicontrol("parent", m2scifig,...
+    "style", "radiobutton",...
+    "string", gettext("Convert a whole directory"),...
+    "position",[3*margin+(figw-5*margin)/2 selframemaxy+2*margin (figw-5*margin)/2 widgeth],...
+    "fontname", defaultfont,...
+    "fontunits", "points",...
+    "fontsize", 10, ...
+    "min", 0, ...
+    "max", 1, ...
+    "value", 0,...
+    "tag", "dirradio", ...
+    "callback", "cb_m2sci_gui");
 
-function res=m2sci_gui()
-// Call m2sci.tcl to get file or path to convert using M2SCI and user defined options
-
-if ~with_tk() then
-  error(gettext("Tcl/Tk interface not defined."));
-end
-
-// Default Options and Values
-TCL_SetVar("ePathToConvert",getcwd());
-TCL_SetVar("eFileToConvert",gettext("<enter a file name>"));
-TCL_SetVar("eResDirName",getcwd());
-TCL_SetVar("rRecMode",gettext("NO"));
-TCL_SetVar("rOnlyDouble",gettext("NO"));
-TCL_SetVar("rVerbMode","3");
-TCL_SetVar("rPrettyPrint",gettext("NO"));
-TCL_SetVar("rFlagWhatToConvert","0");
-TCL_SetVar("rToDo","0");
-TCL_SetVar("rWindowKilled","0");
-
-TCL_EvalFile(SCI+"/modules/m2sci/tcl/m2sci.tcl");
-
-rWindowKilled=TCL_GetVar("rWindowKilled");
-rToDo=TCL_GetVar("rToDo");
-while rToDo=="0" & rWindowKilled=="0"
-  rWindowKilled=TCL_GetVar("rWindowKilled");
-  rToDo=TCL_GetVar("rToDo");
-  sleep(1);
-end
-
-if rToDo=="1" then
-  DirName=TCL_GetVar("ePathToConvert");
-  FileName=TCL_GetVar("eFileToConvert");
-  ResDirName=TCL_GetVar("eResDirName");
-  RecMode=TCL_GetVar("rRecMode");
-  OnlyDouble=TCL_GetVar("rOnlyDouble");
-  VerbMode=TCL_GetVar("rVerbMode");
-  PrettyPrint=TCL_GetVar("rPrettyPrint");
-  FlagWhatToConvert=TCL_GetVar("rFlagWhatToConvert");
-  
-  // Modify Tcl/Tk values
-  if RecMode==gettext("YES") then
-    RecMode=%T
-  else  
-    RecMode=%F
-  end    
-  if OnlyDouble==gettext("YES") then
-    OnlyDouble=%T
-  else
-    OnlyDouble=%F
-  end    
-  if PrettyPrint==gettext("YES") then
-    PrettyPrint=%T
-  else
-    PrettyPrint=%F
-  end    
-  VerbMode=evstr(VerbMode);
-  
-  if FlagWhatToConvert=="0" then // Convert a whole directory
-    translatepaths(DirName,ResDirName);
-    res=0
-  else
-    res=mfile2sci(FileName,ResDirName,RecMode,OnlyDouble,VerbMode,PrettyPrint);
-  end
-elseif rToDo=="-1" then
-  // Cancel button
-  res=0
-else
-  // Window killed
-  res=0
-end
 endfunction
index 9c3d2eb..6ce7579 100644 (file)
@@ -21,7 +21,7 @@ if rhs<5 then verbose_mode=3,end
 if rhs<4 then only_double=%F,end
 if rhs<3 then Recmode=%F,end
 if rhs<2 then res_path="./",end
-if rhs<1 then res=m2sci_gui();return;end
+if rhs<1 then m2sci_gui();res=[];return;end
 if MSDOS then
   fil=strsubst(fil,filesep(),"/")
   res_path=strsubst(res_path,"\","/")
index 2285888..22ee880 100644 (file)
@@ -26,7 +26,7 @@ function   transorder=translatepaths(Paths,res_path)
 
 [lhs,rhs]=argn(0)
 if rhs<2 then res_path="./",end
-if rhs<1 then m2sci_gui();return;end
+if rhs<1 then m2sci_gui();transorder=[];return;end
 
 // Loads libraries related to m2sci
 if exists("m2skernellib")==0 then load("SCI/modules/m2sci/macros/kernel/lib"),end
diff --git a/scilab/modules/m2sci/tcl/m2sci.tcl b/scilab/modules/m2sci/tcl/m2sci.tcl
deleted file mode 100755 (executable)
index 3aeb19f..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-# Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-# 
-# This file is distributed under the same license as the Scilab package.
-
-# GUI for M2SCI tools
-
-#!/bin/sh
-#exec wish "$0" "$1" & exit 0 
-
-# Scilab specification
-toplevel .m2sci
-
-ScilabEval "TCL_SetVar(\"localizedtitle\",gettext(\"Matlab to Scilab conversion tool\"))" "sync"
-wm title .m2sci $localizedtitle
-
-
-bind .m2sci <Destroy> {cancelConversionCross}
-######################################################################
-# Gets the directory to convert, and initialize the eTranslatePath
-######################################################################
-proc setPathToConvert {} { 
-    global rFlagWhatToConvert
-    set ePathToConvert [ tk_chooseDirectory ]
-    
-    # Refresh the entry text
-    .m2sci.mainframe.eDirName delete 0 end 
-    .m2sci.mainframe.eDirName insert 1 $ePathToConvert
-    set rFlagWhatToConvert 0
-} 
-
-
-######################################################################
-# Gets the file to convert
-######################################################################
-proc setFileToConvert {} { 
-    global rFlagWhatToConvert
-    set eFileToConvert [ tk_getOpenFile ]
-    
-    # Refresh the entry text
-    .m2sci.mainframe.eFileName delete 0 end 
-    .m2sci.mainframe.eFileName insert 1 $eFileToConvert
-    set rFlagWhatToConvert 1
-} 
-
-
-######################################################################
-# Gets the result directory
-######################################################################
-proc setResDirName {} { 
-    set eResDirName [ tk_chooseDirectory ]
-
-    # Refresh the entry text
-    .m2sci.mainframe.eResDirName delete 0 end 
-    .m2sci.mainframe.eResDirName insert 1 $eResDirName
-} 
-
-
-######################################################################
-# Close the window when conversion is launched
-######################################################################
-proc launchConversion {} {
-    global rFlagWhatToConvert
-    global eDirName
-    global eFileName
-    global eResDirName
-    global rRecMode
-    global rOnlyDouble
-    global rVerbMode
-    global rPrettyPrint
-    global rToDo
-    global rWindowKilled
-
-    set rWindowKilled 0
-    set rToDo 1
-    
-    destroy .m2sci
-}
-
-######################################################################
-# Close the window when cancel button clicked
-######################################################################
-proc cancelConversion {} {
-    global rToDo
-    global rWindowKilled
-    set rWindowKilled 0
-    set rToDo -1
-    
-    destroy .m2sci
-}
-
-######################################################################
-# Close the window when cross clicked
-######################################################################
-proc cancelConversionCross {} {
- global rWindowKilled
- set rWindowKilled 1
-
- destroy .m2sci
-}
-
-######################################################################
-# Window creation
-######################################################################
-global rFlagWhatToConvert
-
-frame .m2sci.mainframe
-
-# FILES SELECTION
-ScilabEval "TCL_SetVar(\"localizedLabelFiles\",gettext(\"FILES SELECTION\"))" "sync"
-label .m2sci.mainframe.lFileSelect -textvariable localizedLabelFiles -background lightblue
-
-grid .m2sci.mainframe.lFileSelect -column 0 -columnspan 4 -row 1 -sticky news
-
-# Whole directory
-radiobutton .m2sci.mainframe.rDir -variable rFlagWhatToConvert -value 0 
-ScilabEval "TCL_SetVar(\"localizedlDir\",gettext(\"Convert a whole directory\"))" "sync"
-label .m2sci.mainframe.lDir -textvariable localizedlDir
-
-grid .m2sci.mainframe.rDir -column 0 -row 2
-grid .m2sci.mainframe.lDir -column 1 -columnspan 3 -row 2 -sticky w
-
-ScilabEval "TCL_SetVar(\"localizedlDirName\",gettext(\"Directory name: \"))" "sync"
-label .m2sci.mainframe.lDirName -textvariable localizedlDirName
-entry .m2sci.mainframe.eDirName -textvariable ePathToConvert -width 50
-bind .m2sci.mainframe.eDirName <FocusIn> {set rFlagWhatToConvert 0}
-ScilabEval "TCL_SetVar(\"localizedBrowse\",gettext(\"Browse\"))" "sync"
-button .m2sci.mainframe.bBrowseDir -textvariable localizedBrowse -command {setPathToConvert}
-
-grid .m2sci.mainframe.lDirName -column 1 -row 3
-grid .m2sci.mainframe.eDirName -column 2 -row 3
-grid .m2sci.mainframe.bBrowseDir -column 3 -row 3
-
-# Single file
-radiobutton .m2sci.mainframe.rFile -variable rFlagWhatToConvert -value 1
-ScilabEval "TCL_SetVar(\"localizedlFile\",gettext(\"Convert a single file\"))" "sync"
-label .m2sci.mainframe.lFile -textvariable localizedlFile  
-
-grid .m2sci.mainframe.rFile -column 0 -row 4
-grid .m2sci.mainframe.lFile -column 1 -columnspan 3 -row 4 -sticky w
-
-ScilabEval "TCL_SetVar(\"localizedlFileName\",gettext(\"File name: \"))" "sync"
-label .m2sci.mainframe.lFileName -textvariable localizedlFileName
-entry .m2sci.mainframe.eFileName -textvariable eFileToConvert -width 50
-bind .m2sci.mainframe.eFileName <FocusIn> {set rFlagWhatToConvert 1}
-button .m2sci.mainframe.bBrowseFile -textvariable localizedBrowse -command {setFileToConvert} 
-
-grid .m2sci.mainframe.lFileName -column 1 -row 5
-grid .m2sci.mainframe.eFileName -column 2 -row 5
-grid .m2sci.mainframe.bBrowseFile -column 3 -row 5
-
-# RESULTING FILES DIRECTORY
-ScilabEval "TCL_SetVar(\"localizedlResDirSelect\",gettext(\"OUTPUT FILES DIRECTORY\"))" "sync"
-label .m2sci.mainframe.lResDirSelect -textvariable localizedlResDirSelect -background lightblue
-
-grid .m2sci.mainframe.lResDirSelect -column 0 -columnspan 4 -row 6 -sticky news
-
-ScilabEval "TCL_SetVar(\"localizedlResDirName\",gettext(\"Directory name:\"))" "sync"
-label .m2sci.mainframe.lResDirName -textvariable localizedlResDirName
-entry .m2sci.mainframe.eResDirName -textvariable eResDirName -width 50
-button .m2sci.mainframe.bBrowseResDir -textvariable localizedBrowse -command {setResDirName}
-
-grid .m2sci.mainframe.lResDirName -column 1 -row 7
-grid .m2sci.mainframe.eResDirName -column 2 -row 7
-grid .m2sci.mainframe.bBrowseResDir -column 3 -row 7
-
-# OPTIONS
-ScilabEval "TCL_SetVar(\"localizedlOptions\",gettext(\"CONVERSION OPTIONS\"))" "sync"
-label .m2sci.mainframe.lOptions -textvariable localizedlOptions -background lightblue
-
-grid .m2sci.mainframe.lOptions -column 0 -columnspan 4 -row 8 -sticky news
-
-# RecMode
-ScilabEval "TCL_SetVar(\"localizedlRecMode\",gettext(\"Recursive conversion:\"))" "sync"
-label .m2sci.mainframe.lRecMode -textvariable localizedlRecMode
-frame .m2sci.mainframe.fRecMode
-ScilabEval "TCL_SetVar(\"localizedYes\",gettext(\"Yes\"))" "sync"
-ScilabEval "TCL_SetVar(\"localizedNo\",gettext(\"No\"))" "sync"
-ScilabEval "TCL_SetVar(\"localizedYES\",gettext(\"YES\"))" "sync"
-ScilabEval "TCL_SetVar(\"localizedNO\",gettext(\"NO\"))" "sync"
-radiobutton .m2sci.mainframe.fRecMode.rRecModeYES -textvariable localizedYes -variable rRecMode -value $localizedYES
-radiobutton .m2sci.mainframe.fRecMode.rRecModeNO -textvariable localizedNo -variable rRecMode -value $localizedNO 
-                  
-pack configure  .m2sci.mainframe.fRecMode.rRecModeYES \
-               .m2sci.mainframe.fRecMode.rRecModeNO  \
-               -side left
-
-grid .m2sci.mainframe.lRecMode -column 0 -columnspan 2 -row 9 
-grid .m2sci.mainframe.fRecMode -column 1 -columnspan 2 -row 9 
-
-# OnlyDouble
-ScilabEval "TCL_SetVar(\"localizedlOnlyDouble\",gettext(\"Only double values used:\"))" "sync"
-label .m2sci.mainframe.lOnlyDouble -textvariable localizedlOnlyDouble
-frame .m2sci.mainframe.fOnlyDouble
-radiobutton .m2sci.mainframe.fOnlyDouble.rOnlyDoubleYES -textvariable localizedYes -variable rOnlyDouble -value $localizedYES  
-radiobutton .m2sci.mainframe.fOnlyDouble.rOnlyDoubleNO -textvariable localizedNo -variable rOnlyDouble -value $localizedNO
-                  
-pack configure  .m2sci.mainframe.fOnlyDouble.rOnlyDoubleYES \
-               .m2sci.mainframe.fOnlyDouble.rOnlyDoubleNO  \
-               -side left
-
-grid .m2sci.mainframe.lOnlyDouble -column 0 -columnspan 2 -row 10
-grid .m2sci.mainframe.fOnlyDouble -column 1 -columnspan 2 -row 10
-
-# VerbMode
-ScilabEval "TCL_SetVar(\"localizedlVerbMode\",gettext(\"Verbose Mode:\"))" "sync"
-label .m2sci.mainframe.lVerbMode -textvariable localizedlVerbMode
-frame .m2sci.mainframe.fVerbMode
-radiobutton .m2sci.mainframe.fVerbMode.rVerbMode0 -text "0" -variable rVerbMode -value 0  
-radiobutton .m2sci.mainframe.fVerbMode.rVerbMode1 -text "1" -variable rVerbMode -value 1 
-radiobutton .m2sci.mainframe.fVerbMode.rVerbMode2 -text "2" -variable rVerbMode -value 2 
-radiobutton .m2sci.mainframe.fVerbMode.rVerbMode3 -text "3" -variable rVerbMode -value 3 
-                  
-pack configure  .m2sci.mainframe.fVerbMode.rVerbMode0 \
-               .m2sci.mainframe.fVerbMode.rVerbMode1 \
-               .m2sci.mainframe.fVerbMode.rVerbMode2 \
-               .m2sci.mainframe.fVerbMode.rVerbMode3 \
-               -side left
-
-grid .m2sci.mainframe.lVerbMode -column 0 -columnspan 2 -row 11
-grid .m2sci.mainframe.fVerbMode -column 1 -columnspan 2 -row 11
-
-# PrettyPrint
-ScilabEval "TCL_SetVar(\"localizedlPrettyPrint\",gettext(\"Generate pretty printed code:\"))" "sync"
-label .m2sci.mainframe.lPrettyPrint -textvariable localizedlPrettyPrint
-frame .m2sci.mainframe.fPrettyPrint
-radiobutton .m2sci.mainframe.fPrettyPrint.rPrettyPrintYES -textvariable localizedYes -variable rPrettyPrint -value $localizedYES  
-radiobutton .m2sci.mainframe.fPrettyPrint.rPrettyPrintNO -textvariable localizedNo -variable rPrettyPrint -value $localizedNO
-                  
-pack configure  .m2sci.mainframe.fPrettyPrint.rPrettyPrintYES \
-               .m2sci.mainframe.fPrettyPrint.rPrettyPrintNO  \
-               -side left
-
-grid .m2sci.mainframe.lPrettyPrint -column 0 -columnspan 2 -row 12
-grid .m2sci.mainframe.fPrettyPrint -column 1 -columnspan 2 -row 12
-
-# VALIDATION
-ScilabEval "TCL_SetVar(\"localizedlButtons\",gettext(\"VALIDATION\"))" "sync"
-label .m2sci.mainframe.lButtons -textvariable localizedlButtons -background lightblue
-
-grid .m2sci.mainframe.lButtons -column 0 -columnspan 4 -row 13 -sticky news
-
-frame .m2sci.mainframe.fButtons
-ScilabEval "TCL_SetVar(\"localizedbConvert\",gettext(\"Convert\"))" "sync"
-button .m2sci.mainframe.fButtons.bConvert -textvariable localizedbConvert -command {launchConversion} 
-ScilabEval "TCL_SetVar(\"localizedbCancel\",gettext(\"Cancel\"))" "sync"
-button .m2sci.mainframe.fButtons.bCancel -textvariable localizedbCancel -command {cancelConversion} 
-
-pack configure  .m2sci.mainframe.fButtons.bCancel  \
-               .m2sci.mainframe.fButtons.bConvert \
-               -side left
-
-grid .m2sci.mainframe.fButtons -column 0 -columnspan 4 -row 14
-
-pack .m2sci.mainframe
\ No newline at end of file