// // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab // Copyright (C) 2009 - 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 sci2c_gui() // Sizes widgeth = 20; btnh = 22; btnw = 80; defaultfont = "arial"; margin = 13; radiow = 85; // Figure creation sci2cfig = figure("figure_name", gettext("Scilab to C conversion tool"),"tag","sci2cfig"); // Remove Scilab graphics menus & toolbar delmenu(sci2cfig.figure_id, gettext("&File")); delmenu(sci2cfig.figure_id, gettext("&Tools")); delmenu(sci2cfig.figure_id, gettext("&Edit")); delmenu(sci2cfig.figure_id, gettext("&?")); toolbar(sci2cfig.figure_id, "off"); h = uimenu("parent", sci2cfig, "label", gettext("File")); uimenu("parent", h, "label", gettext("Close"), "callback", "cb_sci2c_gui", "tag", "close_menu"); h = uimenu("parent", sci2cfig, "label", gettext("?")); uimenu("parent", h, "label", gettext("Sci2c help page"), "callback", "cb_sci2c_gui", "tag", "sci2c_help_menu"); uimenu("parent", h, "label", gettext("About SCI2C tools..."), "callback", "cb_sci2c_gui", "tag", "about_sci2c_menu"); figw = 500; figh = 17*margin + btnh + 7*widgeth; sci2cfig.axes_size = [figw figh]; sci2cfig.auto_resize = "off"; sci2cfig.visible = "off"; // to be sure that no plot can appear in the window //------------------- // --- Validation --- //------------------- // Convert button convertbtn = uicontrol("parent", sci2cfig,... "backgroundcolor", [0.8 0.8 0.8],... "style", "pushbutton",... "string", gettext("Convert"),... "position", [figw-2*margin-2*btnw margin btnw btnh],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "tag","convertbtn",... "callback","cb_sci2c_gui"); // Cancel button cancelbtn = uicontrol("parent", sci2cfig,... "backgroundcolor", [0.8 0.8 0.8],... "style", "pushbutton",... "string", gettext("Cancel"),... "position", [figw-margin-btnw margin btnw btnh],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "tag", "cancelbtn",... "callback","cb_sci2c_gui"); //---------------- // --- Options --- //---------------- // Frame optframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... "position", [margin 2*margin+btnh figw-2*margin 4*margin+3*widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "fontweight", "bold", ... "horizontalalignment", "center"); // Frame title opttitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Options"),... "units", "pixels",... "position", [2*margin 2*margin+btnh+4*margin+3*widgeth-8 50 14],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... "horizontalalignment", "center"); // --- Paths style --- pathsy = 2*margin+btnh+margin; pathslabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Paths style in C code: "),... "position",[2*margin pathsy 160 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); pathsradiowin = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Windows"),... "position",[2*margin+160 pathsy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 1,... "callback", "cb_sci2c_gui",... "tag", "pathsradiowin"); pathsradiounix = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Unix"),... "position",[2*margin+160+radiow pathsy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... "tag", "pathsradiounix"); pathsradiocygwin = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Cygwin"),... "position",[2*margin+160+2*radiow pathsy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... "tag", "pathsradiocygwin"); // --- Copy Scilab code into C option --- sciintocy = pathsy + margin + btnh ; sciintoclabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Copy Scilab code into C: "),... "position",[2*margin sciintocy 160 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); sciintocradioyes = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Yes"),... "position",[2*margin+160 sciintocy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... "tag", "sciintocradioyes"); sciintocradiono = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("No"),... "position",[2*margin+160+radiow sciintocy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 1,... "callback", "cb_sci2c_gui",... "tag", "sciintocradiono"); // --- Run mode option --- runy = sciintocy + margin + widgeth; runlabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Run mode: "),... "position",[2*margin runy 160 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); runradioall = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("All"),... "position",[2*margin+160 runy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... "tag", "runradioall"); runradiotranslate = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Translate"),... "position",[2*margin+160+radiow runy radiow widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... "tag", "runradiotranslate"); runradiogenlib = uicontrol("parent", sci2cfig,... "style", "radiobutton",... "string", gettext("Generate library"),... "position",[2*margin+160+2*radiow runy 120 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "min", 0, ... "max", 1, ... "value", 1,... "callback", "cb_sci2c_gui",... "tag", "runradiogenlib"); // ------------------------ // --- Output directory --- // ------------------------ // Frame optframemaxy = 2*margin+btnh + 4*margin+3*widgeth; outframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... "position", [margin optframemaxy+margin figw-2*margin widgeth+2*margin],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "fontweight", "bold", ... "horizontalalignment", "center"); // Frame title outtitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Output directory"),... "units", "pixels",... "position", [2*margin optframemaxy+margin+widgeth+2*margin-8 90 14],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... "horizontalalignment", "center"); outlabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Directory name: "),... "position",[2*margin optframemaxy+2*margin-1 100 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); outedit = uicontrol("parent", sci2cfig,... "style", "edit",... "string", getcwd(),... "units", "pixels",... "position",[3*margin+100 optframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12, ... "tag", "outedit"); outbtn = uicontrol("parent", sci2cfig,... "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", 12,... "callback", "cb_sci2c_gui",... "tag", "outbtn"); // ------------------------------- // --- SciLib main header file --- // ------------------------------- // Frame outframemaxy = optframemaxy + 2*margin + widgeth + margin; headerframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... "position", [margin outframemaxy+margin figw-2*margin widgeth+2*margin],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "fontweight", "bold", ... "horizontalalignment", "center"); // Frame title headertitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Scilab library header"),... "units", "pixels",... "position", [2*margin outframemaxy+margin+widgeth+2*margin-8 110 14],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... "horizontalalignment", "center"); headerlabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("File name: "),... "position",[2*margin outframemaxy+2*margin-1 100 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); headeredit = uicontrol("parent", sci2cfig,... "style", "edit",... "string", gettext(""),... "units", "pixels",... "position",[3*margin+100 outframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12, ... "tag", "headeredit"); headerbtn = uicontrol("parent", sci2cfig,... "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", 12,... "callback", "cb_sci2c_gui",... "tag", "headerbtn"); // ------------------------- // --- File(s) selection --- // ------------------------- // Frame headerframemaxy = outframemaxy + 2*margin + widgeth + margin; selframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... "position", [margin headerframemaxy+margin figw-2*margin 3*margin+2*widgeth],... "fontname", "arial",... "fontunits", "points",... "fontsize", 12,... "fontweight", "bold", ... "horizontalalignment", "center"); // Frame title seltitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Input file"),... "units", "pixels",... "position", [2*margin headerframemaxy+margin+3*margin+2*widgeth-8 50 14],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... "horizontalalignment", "center", ... "tag", "seltitle"); // --- Sub-functions selection --- subfunslabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Sub-functions: "),... "position",[2*margin headerframemaxy+2*margin-1 100 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12); subfunsedit = uicontrol("parent", sci2cfig,... "style", "edit",... "string", getcwd(),... "units", "pixels",... "position",[3*margin+100 headerframemaxy+2*margin-1 figw-6*margin-100-btnw widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12, ... "tag", "subfunsedit"); subfunsbtn = uicontrol("parent", sci2cfig,... "backgroundcolor", [0.8 0.8 0.8],... "style", "pushbutton",... "string", gettext("Browse"),... "position",[figw-2*margin-btnw headerframemaxy+2*margin btnw btnh],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "callback", "cb_sci2c_gui",... "tag", "subfunsbtn"); // --- File selection --- filelabel = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Main file name: "),... "position",[2*margin headerframemaxy+3*margin-1+widgeth 100 widgeth],... "horizontalalignment", "left",... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "tag", "filelabel"); fileedit = uicontrol("parent", sci2cfig,... "style", "edit",... "string", gettext(""),... "position",[3*margin+100 headerframemaxy+3*margin-1+widgeth figw-6*margin-100-btnw widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "tag", "fileedit"); filebtn = uicontrol("parent", sci2cfig,... "backgroundcolor", [0.8 0.8 0.8],... "style", "pushbutton",... "string", gettext("Browse"),... "position",[figw-2*margin-btnw headerframemaxy+3*margin+widgeth btnw btnh],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... "callback", "cb_sci2c_gui",... "tag", "filebtn"); endfunction