rewrite of atomsGui 21/14021/2
Antoine ELIAS [Fri, 14 Mar 2014 11:43:33 +0000 (12:43 +0100)]
Change-Id: Iffcbffd31dcffd73929920e1dfbe0fe2fa11e6c9

scilab/modules/atoms/gui/atomsGui.xml [new file with mode: 0644]
scilab/modules/atoms/macros/atoms_gui/atomsGui.sci
scilab/modules/atoms/macros/atoms_gui/atomsGuiResizeFcn.sci [deleted file]
scilab/modules/atoms/macros/atoms_gui/cbAtomsGui.sci
scilab/modules/atoms/macros/atoms_internals/atomsGetLeftListboxElts.sci

diff --git a/scilab/modules/atoms/gui/atomsGui.xml b/scilab/modules/atoms/gui/atomsGui.xml
new file mode 100644 (file)
index 0000000..e447939
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scilabgui usedeprecatedskin="off" version="1.0">
+    <figure axes_size="900,600" background="33" default_axes="off" dockable="off" figure_position="0,0" figure_size="916,665" icon="software-update-notinstalled" infobar_visible="off" layout="3" menubar="0" tag="atomsFigure" toolbar="0" toolbar_visible="off" visible="off">
+        <frame backgroundcolor="1.0,1.0,1.0" borderoptpadding="5,5" layout="3" tag="MainFrame">
+            <frame backgroundcolor="1.0,1.0,1.0" borderposition="0" borderpreferredsize="0,40" layout="3" margins="5.0,5.0,5.0,5.0" tag="msgFrame">
+                <border style="titled" title="">
+                    <title color="black" style="line" thickness="1"/>
+                </border>
+                <text backgroundcolor="1.0,1.0,1.0" fontsize="12.0" tag="msgText"/>
+            </frame>
+            <layer tag="LayerFrame">
+                <frame backgroundcolor="1.0,1.0,1.0" layout="3" tag="HomeFrame">
+                    <border style="titled" title="">
+                        <title color="black" style="line" thickness="1"/>
+                    </border>
+                    <listbox backgroundcolor="1.0,1.0,1.0" callback="cbAtomsGui" callback_type="0" fontsize="12.0" tag="HomeListbox"/>
+                </frame>
+                <frame backgroundcolor="1.0,1.0,1.0" layout="3" tag="DescFrame" visible="off">
+                    <border fontangle="normal" fontname="" fontsize="14" fontweight="normal" justification="0" style="titled" title="">
+                        <title color="black" style="line" thickness="1"/>
+                    </border>
+                    <frame backgroundcolor="1.0,1.0,1.0" borderposition="0" gridoptgrid="1,3" gridoptpadding="20,0" layout="2">
+                        <pushbutton callback="cbAtomsGui" callback_type="0" enable="off" fontsize="12.0" fontweight="bold" tag="updateButton"/>
+                        <pushbutton callback="cbAtomsGui" callback_type="0" enable="off" fontsize="12.0" fontweight="bold" tag="installButton"/>
+                        <pushbutton callback="cbAtomsGui" callback_type="0" enable="off" fontsize="12.0" fontweight="bold" tag="removeButton"/>
+                    </frame>
+                    <text backgroundcolor="1.0,1.0,1.0" fontsize="12.0" max="2.0" sliderstep="0.02,0.2" tag="Desc"/>
+                </frame>
+            </layer>
+            <frame backgroundcolor="1.0,1.0,1.0" borderposition="3" borderpreferredsize="300,0" layout="3" tag="LeftFrame">
+                <border style="titled" title="">
+                    <title color="black" style="line" thickness="1"/>
+                </border>
+                <listbox callback="cbAtomsGui" callback_type="0" fontsize="12.0" tag="LeftListbox"/>
+            </frame>
+        </frame>
+        <menu tag="help">
+            <menu callback="cbAtomsGui" tag="helpMenu"/>
+        </menu>
+        <menu tag="home">
+            <menu callback="cbAtomsGui" tag="closeMenu"/>
+            <menu callback="xinfo(_('Updating the list of packages. Please wait... until Done.'));atomsSystemUpdate();xinfo(_('Update done.'));" tag="updatePackages"/>
+            <menu callback="cbAtomsGui" tag="homeMenu"/>
+        </menu>
+    </figure>
+</scilabgui>
index 7db854d..8872e2d 100644 (file)
 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 
 function atomsGui()
-
-    // =============================================================================
-    // getHomeListboxElements() - not public
-    //
-    // Returns a struct that contains the followings fields:
-    //  - elements("items_str")
-    //  - elements("items_mat")
-    //
-    // =============================================================================
-
-    function elements = getHomeListboxElements()
+    function elements = getHomeListboxElements(LeftFixedWidth)
         items_str  = [];
         items_mat  = [];
 
         installed  = atomsGetInstalled();
-        atomsfig   = findobj("tag","atomsFigure");
-        allModules = atomsfig("UserData");
-
+        allModules   = get("atomsFigure", "userdata");
+        AxesSize = get("atomsFigure", "axes_size");
+        Width = (AxesSize(1) - LeftFixedWidth) - 20*2; //16*2 is icon size
 
         for i=1:size(installed(:,1), "*")
             MRVersionAvailable = atomsGetMRVersion(installed(i,1));
@@ -48,12 +38,11 @@ function atomsGui()
                 background = "#ffffff";
             end
 
-            thisItem =      "<html>";
-
-            thisItem = thisItem + "<table style=""background-color:"+background+";color:#000000;"" ><tr>";
+            thisItem = "<html>";
+            thisItem = thisItem + "<table width=""100%"" style=""background-color:" + background + ";color:#000000;"" ><tr>";
             thisItem = thisItem + "<td><img src=""file:///"+SCI+"/modules/atoms/images/icons/16x16/status/"+icon+""" /></td>";
-            thisItem = thisItem + "<td>";
-            thisItem = thisItem + "  <div style=""width:383px;text-align:left;"">";
+            thisItem = thisItem + "<td width=""100%"">";
+            thisItem = thisItem + "  <div width=""" + string(Width) + """>";
             thisItem = thisItem + "  <span style=""font-weight:bold;"">"+allModules(installed(i,1))(installed(i,2)).Title+" "+installed(i,2)+"</span><br />";
             thisItem = thisItem + "  <span>"+allModules(installed(i,1))(installed(i,2)).Summary+"</span><br />";
             thisItem = thisItem + "  <span style=""font-style:italic;"">"+installed(i,4)+"</span>";
@@ -76,6 +65,175 @@ function atomsGui()
 
     endfunction
 
+    creation = %f;
+    if creation then
+        figwidth = 900;
+        figheight = 600;
+        defaultFontSize = 12;
+
+        f = figure( ...
+            "dockable", "off" , ...
+            "infobar_visible", "off", ...
+            "toolbar_visible", "off", ...
+            "toolbar", "none", ...
+            "menubar_visible", "on", ...
+            "menubar", "none", ...
+            "default_axes", "off", ...
+            "tag", "atomsFigure", ...
+            "visible", "off", ...
+            "icon", "software-update-notinstalled", ...
+            "position", [0 0 figwidth figheight], ...
+            "layout", "border");
+
+        h = uimenu( ...
+        "parent", f, ...
+        "tag", "home");
+
+        // Menu File:Installed Modules
+        uimenu( ...
+        "parent", h, ...
+        "callback", "cbAtomsGui", ...
+        "tag", "homeMenu");
+
+        // Menu File:Update List of Packages
+        uimenu( ...
+        "parent", h, ...
+        "callback", "xinfo(_(''Updating the list of packages. Please wait... until Done.''));" + ...
+        "atomsSystemUpdate();" + ...
+        "xinfo(_(''Update done.''));" , ...
+        "tag", "updatePackages");
+
+        // Menu File:Close
+        uimenu( ...
+        "parent", h, ...
+        "callback", "cbAtomsGui", ...
+        "tag", "closeMenu");
+
+        // Menu ?
+        h = uimenu( ...
+        "parent", f, ...
+        "tag", "help");
+
+        // Menu ?:Atoms Help...
+        uimenu( ...
+        "parent", h, ...
+        "callback", "cbAtomsGui", ...
+        "tag", "helpMenu");
+
+        MainFrame = uicontrol(f, ...
+            "Style", "frame", ...
+            "background", [1 1 1], ...
+            "Tag", "MainFrame");
+            MainFrame.layout_options = createLayoutOptions("border", [5, 5]);
+            MainFrame.layout = "border";
+
+        //Left frame + listbox
+        LeftFrame = uicontrol(MainFrame, ...
+            "Style", "frame", ...
+            "background", [1 1 1], ...
+            "border", createBorder("titled", createBorder("line", "black", 1), ""), ...
+            "constraints", createConstraints("border", "left", [300 0]), ...
+            "Tag", "LeftFrame");
+            LeftFrame.layout = "border";
+
+
+        LeftListbox = uicontrol(LeftFrame, ...
+            "Style" , "listbox", ...
+            "FontSize", defaultFontSize, ...
+            "String", "", ...
+            "Callback", "cbAtomsGui", ...
+            "Tag", "LeftListbox");
+
+        //layer right frame
+        LayerFrame = uicontrol(MainFrame, ...
+            "style", "layer", ...
+            "constraints", createConstraints("border", "center"), ...
+            "tag", "LayerFrame");
+
+        //1st layer, description module
+        DescFrame = uicontrol(LayerFrame, ...
+            "style", "frame", ...
+            "background", [1 1 1], ...
+            "border", createBorder("titled", createBorder("line", "black", 1), "", "", "", createBorderFont("", 14, "normal")), ...
+            "layout", "border", ...
+            "tag", "DescFrame");
+
+        Desc = uicontrol(DescFrame, ...
+            "Style", "text", ...
+            "background", [1 1 1], ...
+            "FontSize", defaultFontSize, ...
+            "string", [""], ...
+            "min", 0, ...
+            "max", 2, ...
+            "Tag", "Desc");
+
+        ButtonFrame = uicontrol(DescFrame, ...
+            "style", "frame", ...
+            "backgroundcolor", [1 1 1], ...
+            "constraints", createConstraints("border", "bottom"));
+            ButtonFrame.layout_options = createLayoutOptions("grid", [1 3], [20, 0]);
+            ButtonFrame.layout = "grid";
+
+        removeButton = uicontrol(ButtonFrame, ...
+            "Style" , "pushbutton", ...
+            "FontSize", defaultFontSize, ...
+            "FontWeight", "bold", ...
+            "Callback", "cbAtomsGui", ...
+            "Enable", "off", ...
+            "Tag", "removeButton");
+
+        installButton = uicontrol(ButtonFrame, ...
+            "Style" , "pushbutton", ...
+            "FontSize", defaultFontSize, ...
+            "FontWeight", "bold", ...
+            "Callback", "cbAtomsGui", ...
+            "Enable", "off", ...
+            "Tag", "installButton");
+
+        updateButton = uicontrol(ButtonFrame, ...
+            "Style" , "pushbutton", ...
+            "FontSize", defaultFontSize, ...
+            "FontWeight", "bold", ...
+            "Callback", "cbAtomsGui", ...
+            "Enable", "off", ...
+            "Tag", "updateButton");
+
+        //2nd layer, installed modules
+        HomeFrame = uicontrol(LayerFrame, ...
+            "style", "frame", ...
+            "background", [1 1 1], ...
+            "border", createBorder("titled", createBorder("line", "black", 1), ""), ...
+            "layout", "border", ...
+            "tag", "HomeFrame");
+
+        HomeListbox = uicontrol(HomeFrame,..
+            "Style", "listbox",..
+            "Background", [1 1 1],..
+            "FontSize", defaultFontSize,..
+            "Callback", "cbAtomsGui", ..
+            "Tag", "HomeListbox");
+
+        //message frame
+        msgFrame = uicontrol(MainFrame, ...
+            "style", "frame", ...
+            "Background", [1 1 1], ...
+            "layout", "border", ...
+            "border", createBorder("titled", createBorder("line", "black", 1), ""), ...
+            "constraints", createConstraints("border", "bottom", [0, 40]), ...
+            "margins", [5 5 5 5], ...
+            "tag", "msgFrame");
+
+        msgText = uicontrol(msgFrame, ....
+            "Style", "text", ...
+            "HorizontalAlignment", "left", ...
+            "VerticalAlignment", "middle", ...
+            "FontSize", defaultFontSize, ...
+            "Background", [1 1 1], ...
+            "Tag", "msgText");
+
+        saveGui(f, SCI + "/modules/atoms/gui/atomsGui.xml");
+        delete(f);
+    end //creation
 
     if ~ exists("atomsinternalslib") then
         load("SCI/modules/atoms/macros/atoms_internals/lib");
@@ -94,289 +252,51 @@ function atomsGui()
         return
     end
 
-    // Parameters
-    // =========================================================================
+    atomsfig = loadGui(SCI + "/modules/atoms/gui/atomsGui.xml");
+    set("atomsFigure", "userdata", allModules);
+
+    // Build the module list (listbox on the left)
+    LeftElements = atomsGetLeftListboxElts("filter:main");
+
+    //localized title/menu
 
-    // Figure width & height
-    figwidth     = 800;
-    figheight    = 500;
+    //menu
+    set("home", "label", _("File"));
+    set("homeMenu", "label", _("Installed modules"));
+    set("updatePackages", "label", _("Update List of Packages"));
+    set("closeMenu", "label", _("Close"));
+    set("help", "label", _("?"));
+    set("helpMenu", "label", _("Atoms Help..."));
 
-    // Margin
-    margin       = 10;
-    widgetHeight   = 25;
+    set("LeftFrame", "UserData", "filter:main");
 
-    // Message Frame
-    msgWidth     = figwidth -2*margin;
-    msgHeight    = 30;
+    set("atomsFigure", "figure_name", LeftElements("title")+" - ATOMS");
 
-    // Button
-    buttonHeight   = 20;
+    set("LeftListbox", "string", LeftElements("items_str"));
+    set("LeftListbox", "userdata", LeftElements("items_mat"));
 
-    // Font Size
-    defaultFontSize  = 12;
+    set("removeButton", "String", _("Remove"));
+    set("installButton", "String", _("Install"));
+    set("updateButton", "String", _("Update"));
 
-    // Close the window if it already exists
-    oldFig = findobj("tag", "atomsFigure");
-    if ~isempty(oldFig) then
-        delete(oldFig);
-    end
 
-    // Create the main window
-    // =========================================================================
-
-    atomsfig = figure( ..
-    "figure_name", gettext("ATOMS"), ..
-    "position"   , [0 0 figwidth figheight],..
-    "background" , -2,..
-    "UserData"   , allModules, ..
-    "ResizeFcn", "atomsGuiResizeFcn", ..
-    "tag"    , "atomsFigure", ..
-    "visible", "off");
-
-    // Remove Scilab graphics menus & toolbar
-    // =========================================================================
-
-    delmenu(atomsfig.figure_id, gettext("&File"));
-    delmenu(atomsfig.figure_id, gettext("&Tools"));
-    delmenu(atomsfig.figure_id, gettext("&Edit"));
-    delmenu(atomsfig.figure_id, gettext("&?"));
-    toolbar(atomsfig.figure_id, "off");
-
-    // Add ATOMS Menu
-    // =========================================================================
-
-    // Menu File
-    h = uimenu( ..
-    "parent"   , atomsfig, ..
-    "label"  , gettext("File"));
-
-    // Menu File:Installed Modules
-    uimenu( ..
-    "parent"   , h, ..
-    "label"  , gettext("Installed modules"), ..
-    "callback" , "cbAtomsGui", ..
-    "tag"    , "homeMenu");
-
-    // Menu File:Update List of Packages
-    uimenu( ..
-    "parent"   , h, ..
-    "label"  , gettext("Update List of Packages"), ..
-    "callback" , "xinfo(gettext(''Updating the list of packages. Please wait... until Done.''));" + ..
-    "atomsSystemUpdate();" + ..
-    "xinfo(gettext(''Update done.''));" , ..
-    "tag"    , "updatePackages");
-
-    // Menu File:Close
-    uimenu( ..
-    "parent"   , h, ..
-    "label"  , gettext("Close"), ..
-    "callback" , "cbAtomsGui", ..
-    "tag"    , "closeMenu");
-
-    // Menu ?
-    h = uimenu( ..
-    "parent"   , atomsfig, ..
-    "label"  , gettext("?"));
-
-    // Menu ?:Atoms Help...
-    uimenu( ..
-    "parent"   , h, ..
-    "label"  , gettext("Atoms Help..."), ..
-    "callback" , "cbAtomsGui", ..
-    "tag"    , "helpMenu");
+    homeFrame = get("HomeFrame");
+    homFrame.border.title = _("List of installed modules");
 
-    // Build the module list (listbox on the left)
-    // =========================================================================
-    LeftElements = atomsGetLeftListboxElts("filter:main");
+    //compute size of right available width
+    Constraints = get("LeftFrame", "constraints");
+    ListBoxSize = Constraints.preferredsize;
+    LayoutOptions = get("MainFrame", "layout_options");
+    Padding = LayoutOptions.padding;
+    //TLBR : right padding + left padding + LeftFrame.width
+    LeftFixedWidth = Padding(1) * 2 + ListBoxSize(1);
 
     // Build the installed module list
-    // =========================================================================
-    HomeElements = getHomeListboxElements();
-
-    // Set the figure size ... after all delmenu(s)
-    // =========================================================================
-    atomsfig.axes_size = [figwidth figheight];
-
-    // List of modules
-    // =========================================================================
-
-    listboxWidth        = 200;
-    listboxFrameWidth     = listboxWidth + 2*margin;
-
-    listboxFrameHeight    = figheight- 3*margin - msgHeight;
-    listboxHeight       = listboxFrameHeight - 2*margin;
-
-    // Figure name
-    atomsfig("figure_name")   = LeftElements("title")+" - ATOMS";
-
-    // Frame
-    LeftFrame         = uicontrol( ..
-    "Parent"        , atomsfig,..
-    "Style"         , "frame",..
-    "Relief"        , "solid",..
-    "Position"      , [margin widgetHeight+2*margin listboxFrameWidth listboxFrameHeight],..
-    "Background"      , [1 1 1],..
-    "UserData"      , "filter:main",..
-    "Tag"         , "LeftFrame");
-
-    // Listbox
-    LeftListbox         = uicontrol( ..
-    "Parent"        , LeftFrame,..
-    "Style"         , "listbox",..
-    "Position"      , [ margin margin listboxWidth listboxHeight],..
-    "Background"      , [1 1 1],..
-    "FontSize"      , defaultFontSize,..
-    "String"        , LeftElements("items_str"),..
-    "UserData"      , LeftElements("items_mat"),..
-    "Callback"      , "cbAtomsGui", ..
-    "Min"         , 1, ..
-    "Max"         , 1, ..
-    "Tag"         , "LeftListbox")
-
-    // Description of a module
-    // =========================================================================
-
-    descFrameWidth       = figwidth - listboxFrameWidth - 3*margin;
-    descFrameHeight      = listboxFrameHeight;
-
-    descWidth        = descFrameWidth  - 2*margin;
-    descHeight         = descFrameHeight - 4*margin - buttonHeight;
-
-    // Frame
-    DescFrame        = uicontrol( ..
-    "Parent"       , atomsfig,..
-    "Style"        , "frame",..
-    "Relief"       , "solid",..
-    "Background"     , [1 1 1],..
-    "Position"       , [listboxFrameWidth+2*margin widgetHeight+2*margin descFrameWidth descFrameHeight],..
-    "Tag"        , "DescFrame", ..
-    "Visible"      , "off");
-
-    // Frame title
-    DescTitle        = uicontrol( ..
-    "Parent"       , DescFrame,..
-    "Style"        , "text",..
-    "Position"       , [2*margin descFrameHeight-1.5*margin 200 widgetHeight],..
-    "HorizontalAlignment", "center",..
-    "VerticalAlignment"  , "middle",..
-    "String"       , gettext("List of installed modules"), ..
-    "FontWeight"     , "bold",..
-    "FontSize"       , 12,..
-    "Background"     , [1 1 1],..
-    "Tag"        , "DescTitle");
-
-    // Details of a module
-    Desc           = uicontrol( ..
-    "Parent"       , DescFrame,..
-    "VerticalAlignment"  , "top",..
-    "Style"        , "text",..
-    "Position"       , [ margin margin+buttonHeight+2*margin descWidth descHeight],..
-    "Background"     , [1 1 1],..
-    "FontSize"       , defaultFontSize,..
-    "String"       , "",..
-    "Tag"        , "Desc");
-
-    // Buttons
-    // -------------------------------------------------------------------------
-
-    buttonWidth = (descFrameWidth - 4*margin) / 3;
-
-    // "Remove" Button
-    removeButton       = uicontrol( ..
-    "Parent"       , DescFrame,..
-    "Style"        , "pushbutton",..
-    "Position"       , [margin margin buttonWidth widgetHeight],..
-    "String"       , gettext("Remove"),..
-    "Callback"       , "cbAtomsGui", ..
-    "Enable"       , "off",..
-    "Tag"        , "removeButton");
-
-    // "Install" Button
-    installButton      = uicontrol( ..
-    "Parent"       , DescFrame,..
-    "Style"        , "pushbutton",..
-    "Position"       , [buttonWidth+2*margin margin buttonWidth widgetHeight],..
-    "String"       , gettext("Install"),..
-    "Callback"       , "cbAtomsGui", ..
-    "Enable"       , "off", ..
-    "Tag"        , "installButton");
-
-    // "Update" Button
-    updateButton       = uicontrol( ..
-    "Parent"       , DescFrame,..
-    "Style"        , "pushbutton",..
-    "Position"       , [2*buttonWidth+3*margin margin buttonWidth widgetHeight],..
-    "String"       , gettext("Update"),..
-    "Callback"       , "cbAtomsGui", ..
-    "Enable"       , "off", ..
-    "Tag"        , "updateButton");
-
-    // Installed Modules: List of installed modules
-    // =========================================================================
-
-    descWidth        = descFrameWidth  - 2*margin;
-    descHeight         = descFrameHeight - 3*margin;
-
-    // Frame
-    HomeFrame        = uicontrol( ..
-    "Parent"       , atomsfig,..
-    "Style"        , "frame",..
-    "Relief"       , "solid",..
-    "Background"     , [1 1 1],..
-    "Position"       , [listboxFrameWidth+2*margin widgetHeight+2*margin descFrameWidth descFrameHeight],..
-    "Tag"        , "HomeFrame");
-
-    // Frame title
-    HomeTitle        = uicontrol( ..
-    "Parent"       , HomeFrame,..
-    "Style"        , "text",..
-    "Position"       , [2*margin descFrameHeight-1.5*margin 200 widgetHeight],..
-    "HorizontalAlignment", "center",..
-    "VerticalAlignment"  , "middle",..
-    "String"       , gettext("List of installed modules"), ..
-    "FontWeight"     , "bold",..
-    "FontSize"       , 12,..
-    "Background"     , [1 1 1],..
-    "Tag"        , "HomeTitle");
-
-    // Home
-    HomeListbox         = uicontrol( ..
-    "Parent"        , HomeFrame,..
-    "Style"         , "listbox",..
-    "Position"      , [ margin margin descWidth descHeight],..
-    "Background"      , [1 1 1],..
-    "FontSize"      , defaultFontSize,..
-    "String"        , HomeElements("items_str"),..
-    "UserData"      , HomeElements("items_mat"),..
-    "Callback"      , "cbAtomsGui", ..
-    "Min"         , 1, ..
-    "Max"         , 1, ..
-    "Tag"         , "HomeListbox");
-
-    // Message Frame
-    // =========================================================================
-
-    // Frame
-    msgFrame         = uicontrol( ..
-    "Parent"       , atomsfig,..
-    "Style"        , "frame",..
-    "Relief"       , "solid",..
-    "Background"     , [1 1 1],..
-    "Position"       , [margin margin msgWidth msgHeight],..
-    "Tag"        , "msgFrame");
-
-    // Text
-    msgText          = uicontrol( ..
-    "Parent"       , msgFrame,...
-    "Style"        , "text",..
-    "HorizontalAlignment", "left",..
-    "VerticalAlignment"  , "middle",..
-    "String"       , "", ..
-    "FontSize"       , 12,..
-    "Background"     , [1 1 1],..
-    "Position"       , [2 2 msgWidth-10 msgHeight-4],..
-    "Tag"        , "msgText");
-
-    atomsfig.visible = "on";
+    HomeElements = getHomeListboxElements(LeftFixedWidth);
+
+    //Update Installed Toolbox Listbox
+    set("HomeListbox", "String", HomeElements("items_str"));
+    set("HomeListbox", "UserData", HomeElements("items_mat"));
+    set("atomsFigure", "visible", "on");
 endfunction
 
diff --git a/scilab/modules/atoms/macros/atoms_gui/atomsGuiResizeFcn.sci b/scilab/modules/atoms/macros/atoms_gui/atomsGuiResizeFcn.sci
deleted file mode 100644 (file)
index b008c40..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2012 - DIGITEO - 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.1-en.txt
-
-function atomsGuiResizeFcn()
-
-    atomsfig = findobj("tag","atomsFigure");
-    atomsfigPosition = atomsfig.axes_size;
-    figwidth     = atomsfigPosition(1);
-    figheight    = atomsfigPosition(2);
-
-    margin       = 10;
-    widgetHeight   = 25;
-    msgHeight    = 30;
-    buttonHeight   = 20;
-
-    listboxWidth        = 200;
-    listboxFrameWidth     = listboxWidth + 2*margin;
-    listboxFrameHeight    = figheight- 3*margin - msgHeight;
-    listboxHeight       = listboxFrameHeight - 2*margin;
-
-    descFrameWidth       = figwidth - listboxFrameWidth - 3*margin;
-    descFrameHeight      = listboxFrameHeight;
-    descWidth        = descFrameWidth  - 2*margin;
-    descHeight         = descFrameHeight - 4*margin - buttonHeight;
-
-    msgWidth     = figwidth -2*margin;
-
-    // Test for objects creation
-    msgText = findobj("Tag", "msgText"); // Last uicontrol to be created
-    if isempty(msgText) then
-        return
-    end
-
-    // Frame
-    LeftFrame = findobj("Tag", "LeftFrame");
-    set(LeftFrame, "Position", [margin widgetHeight+2*margin listboxFrameWidth listboxFrameHeight]);
-
-    // Listbox
-    LeftListbox = findobj("Tag", "LeftListbox");
-    set(LeftListbox, "Position", [ margin margin listboxWidth listboxHeight]);
-
-    // Frame
-    DescFrame = findobj("Tag", "DescFrame");
-    set(DescFrame, "Position", [listboxFrameWidth+2*margin widgetHeight+2*margin descFrameWidth descFrameHeight]);
-
-    // Frame title
-    DescTitle = findobj("Tag", "DescTitle");
-    set(DescTitle, "Position", [2*margin descFrameHeight-1.5*margin 200 widgetHeight]);
-
-    // Details of a module
-    Desc = findobj("Tag", "Desc");
-    set(Desc, "Position", [ margin margin+buttonHeight+2*margin descWidth descHeight]);
-
-    // Buttons
-    // -------------------------------------------------------------------------
-
-    buttonWidth = (descFrameWidth - 4*margin) / 3;
-
-    // "Remove" Button
-    removeButton = findobj("Tag", "removeButton");
-    set(removeButton, "Position", [margin margin buttonWidth widgetHeight]);
-
-    // "Install" Button
-    installButton = findobj("Tag", "installButton");
-    set(installButton, "Position", [buttonWidth+2*margin margin buttonWidth widgetHeight]);
-
-    // "Update" Button
-    updateButton = findobj("Tag", "updateButton");
-    set(updateButton, "Position", [2*buttonWidth+3*margin margin buttonWidth widgetHeight]);
-
-    // Installed Modules: List of installed modules
-    // =========================================================================
-
-    descWidth        = descFrameWidth  - 2*margin;
-    descHeight         = descFrameHeight - 3*margin;
-
-    // Frame
-    HomeFrame = findobj("Tag", "HomeFrame");
-    set(HomeFrame, "Position", [listboxFrameWidth+2*margin widgetHeight+2*margin descFrameWidth descFrameHeight]);
-
-    // Frame title
-    HomeTitle = findobj("Tag", "HomeTitle");
-    set(HomeTitle, "Position", [2*margin descFrameHeight-1.5*margin 200 widgetHeight]);
-
-    // Home
-    HomeListbox = findobj("Tag", "HomeListbox");
-    set(HomeListbox, "Position", [ margin margin descWidth descHeight]);
-
-    // Message Frame
-    // =========================================================================
-
-    // Frame
-    msgFrame = findobj("Tag", "msgFrame");
-    set(msgFrame, "Position", [margin margin msgWidth msgHeight]);
-
-    // Text
-    msgText = findobj("Tag", "msgText")
-    set(msgText, "Position", [2 2 msgWidth-10 msgHeight-4]);
-
-endfunction
index ac9fedc..616e6b3 100644 (file)
@@ -19,107 +19,77 @@ function cbAtomsGui()
 
     UItag = get(gcbo,"Tag");
 
-    // Get the description frame object
-    DescFrame = findobj("tag","DescFrame");
-
     // Display selected module information
     // =========================================================================
-
     if or(UItag == ["LeftListbox";"HomeListbox"]) then
-
         // Get the selected module
         selected = getSelected(UItag);
-
-
-        if selected(1)=="module" then
-
+        if selected(1) == "module" then
             // Save the module name
-            set(DescFrame,"userdata",selected(2));
-
+            set("DescFrame", "userdata", selected(2));
             // Update the description frame
             updateDescFrame();
-
             // Show the description frame
             showDesc();
-
         elseif selected(1)=="category" then
-
-            LeftListbox             = findobj("tag","LeftListbox");
-            LeftElements            = atomsGetLeftListboxElts(selected(2));
-            LeftListbox("String")   = LeftElements("items_str");
-            LeftListbox("UserData") = LeftElements("items_mat");
-
-            LeftFrame               = findobj("tag","LeftFrame");
-            LeftFrame("UserData")   = selected(2);
+            LeftElements = atomsGetLeftListboxElts(selected(2));
+            set("LeftListbox", "String", LeftElements("items_str"));
+            set("LeftListbox", "UserData", LeftElements("items_mat"));
+            set("LeftFrame", "UserData", selected(2));
 
             // Figure name
-            atomsfig                = findobj("tag","atomsFigure");
-            atomsfig("figure_name") = LeftElements("title")+" - ATOMS";
-
+            set("atomsFigure", "figure_name", LeftElements("title")+" - ATOMS");
         end
-
     end
 
     // A button has been pressed
     // =========================================================================
-
     if or(UItag == ["installButton";"removeButton";"updateButton"]) then
         // Get the module name
-        module = get(DescFrame,"userdata");
-
+        module = get("DescFrame","userdata");
         // Disable callbacks
         disableAtomsGui();
     end
 
     // Install selected module
     // =========================================================================
-
     if UItag == "installButton" then
-
-        updateStatusBar("info",gettext("Installing")+" &hellip;");
-
+        updateStatusBar("info",_("Installing")+" &hellip;");
         if execstr("atomsInstall("""+module+""")","errcatch")<>0 then
             updateStatusBar();
-            messagebox(gettext("Installation failed!"),gettext("ATOMS error"),"error");
+            messagebox(_("Installation failed!"),_("ATOMS error"),"error");
         else
             updateDescFrame();
-            updateStatusBar("success",gettext("Installation done! Please restart Scilab to take changes into account."));
+            updateStatusBar("success",_("Installation done! Please restart Scilab to take changes into account."));
         end
 
-        // Remove selected module
-        // =========================================================================
-
+    // Remove selected module
+    // =========================================================================
     elseif UItag == "removeButton" then // Remove selected module
-        updateStatusBar("info",gettext("Removing")+" &hellip;");
-
+        updateStatusBar("info",_("Removing")+" &hellip;");
         if execstr("atomsRemove("""+module+""")", "errcatch")<>0 then
             updateStatusBar();
-            messagebox(gettext("Remove failed!"),gettext("ATOMS error"),"error");
+            messagebox(_("Remove failed!"),_("ATOMS error"),"error");
         else
             updateDescFrame();
-            updateStatusBar("success",gettext("Remove done! Please restart Scilab to take changes into account. "));
+            updateStatusBar("success",_("Remove done! Please restart Scilab to take changes into account. "));
         end
 
-        // Update selected module
-        // =========================================================================
-
+    // Update selected module
+    // =========================================================================
     elseif UItag == "updateButton" then // Update selected module
-
-        updateStatusBar("info",gettext("Updating")+" &hellip;");
-
+        updateStatusBar("info",_("Updating")+" &hellip;");
         if execstr("atomsUpdate("""+module+""")","errcatch")<>0 then
             updateStatusBar();
-            messagebox(gettext("Update failed!"),gettext("ATOMS error"),"error");
+            messagebox(_("Update failed!"),_("ATOMS error"),"error");
         else
             updateDescFrame();
-            updateStatusBar("success",gettext("Update done! Please restart Scilab to take changes into account."));
+            updateStatusBar("success",_("Update done! Please restart Scilab to take changes into account."));
         end
-
     end
 
     // End of the button action
     // =========================================================================
-
     if or(UItag == ["installButton";"removeButton";"updateButton"]) then
         // Left listbox:
         //  - Enable it
@@ -135,16 +105,14 @@ function cbAtomsGui()
     if UItag == "homeMenu" then
         showHome();
 
-        // File:Close
+    // File:Close
     elseif UItag == "closeMenu" then
         delete(findobj("Tag", "atomsFigure"));
 
-        // ?:Help
+    // ?:Help
     elseif UItag == "helpMenu" then
         help("atoms")
-
     end
-
 endfunction
 
 
@@ -155,11 +123,9 @@ endfunction
 // =============================================================================
 
 function selected = getSelected(listbox)
-
-    index    = get(findobj("Tag",listbox),"Value");
-    UserData = get(findobj("Tag",listbox),"UserData");
+    index    = get(listbox, "Value");
+    UserData = get(listbox, "UserData");
     selected = UserData(index,:);
-
 endfunction
 
 
@@ -169,21 +135,20 @@ endfunction
 // =============================================================================
 
 function disableAtomsGui()
-
-    set(findobj("tag", "installButton"), "Enable", "off");
-    set(findobj("tag", "updateButton") , "Enable", "off");
-    set(findobj("tag", "removeButton") , "Enable", "off");
+    set("installButton", "Enable", "off");
+    set("updateButton", "Enable", "off");
+    set("removeButton", "Enable", "off");
     disableLeftListbox()
 endfunction
 
 function disableLeftListbox()
-    set(findobj("tag", "LeftListbox"),"Callback", "");
-    set(findobj("tag", "LeftListbox"),"ForegroundColor",[0.5 0.5 0.5]);
+    set("LeftListbox", "Callback", "");
+    set("LeftListbox", "ForegroundColor", [0.5 0.5 0.5]);
 endfunction
 
 function enableLeftListbox()
-    set(findobj("tag", "LeftListbox"),"Callback", "cbAtomsGui");
-    set(findobj("tag", "LeftListbox"),"ForegroundColor",[0 0 0]);
+    set("LeftListbox", "Callback", "cbAtomsGui");
+    set("LeftListbox", "ForegroundColor", [0 0 0]);
 endfunction
 
 // =============================================================================
@@ -191,11 +156,11 @@ endfunction
 // =============================================================================
 
 function reloadLeftListbox()
-    category                = get(findobj("tag","LeftFrame"),"UserData");
-    LeftListbox             = findobj("tag","LeftListbox");
+    category = get("LeftFrame", "UserData");
+    LeftListbox = get("LeftListbox");
     LeftElements            = atomsGetLeftListboxElts(category);
-    LeftListbox("String")   = LeftElements("items_str");
-    LeftListbox("UserData") = LeftElements("items_mat");
+    set("LeftListbox", "String", LeftElements("items_str"));
+    set("LeftListbox", "UserData", LeftElements("items_mat"));
 endfunction
 
 // =============================================================================
@@ -205,7 +170,6 @@ endfunction
 // =============================================================================
 
 function updateDescFrame()
-
     // Operating system detection + Architecture detection
     // =========================================================================
     [OSNAME,ARCH,LINUX,MACOSX,SOLARIS,BSD] = atomsGetPlatform();
@@ -213,18 +177,12 @@ function updateDescFrame()
     // Get the modules list and the selected module
     // =========================================================================
 
-    thisFigure     = findobj("tag","atomsFigure");
-
-    Desc           = findobj("tag","Desc");
-    DescFrame      = findobj("tag","DescFrame");
-    DescTitle      = findobj("tag","DescTitle");
-
-    allModules     = get(thisFigure,"userdata");
-    thisModuleName = get(DescFrame ,"userdata");
+    allModules     = get("atomsFigure", "userdata");
+    thisModuleName = get("DescFrame" ,"userdata");
 
     // Reset the message frame
     // =========================================================================
-    set(findobj("tag","msgText"),"String","");
+    set("msgText", "String", "");
 
     // Get the module details
     // =========================================================================
@@ -250,7 +208,7 @@ function updateDescFrame()
     sizeHTML = "";
 
     if isfield(thisModuleDetails,OSNAME+ARCH+"Size") then
-        sizeHTML = txt2title(gettext("Download size")) ..
+        sizeHTML = txt2title(_("Download size")) ..
         + "<div>" ..
         + atomsSize2human(thisModuleDetails(OSNAME+ARCH+"Size")) ..
         + "</div>";
@@ -266,7 +224,7 @@ function updateDescFrame()
         authorHTML = authorHTML + authorMat(i)+"<br>";
     end
 
-    authorHTML = txt2title(gettext("Author(s)")) ..
+    authorHTML = txt2title(_("Author(s)")) ..
     + "<div>" ..
     + authorHTML
     + "</div>";
@@ -291,7 +249,7 @@ function updateDescFrame()
             seeAlsoHTML = seeAlsoHTML + "&nbsp;&bull;&nbsp;"+URLs(i)+"<br>";
         end
 
-        seeAlsoHTML = txt2title(gettext("See also"))..
+        seeAlsoHTML = txt2title(_("See also"))..
         + "<div>" ..
         + seeAlsoHTML ..
         + "</div>";
@@ -305,7 +263,7 @@ function updateDescFrame()
     if isfield(thisModuleDetails,"Date") ..
         & ~isempty(regexp(thisModuleDetails.Date,"/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]\s/")) then
 
-        dateHTML = txt2title(gettext("Release date")) ..
+        dateHTML = txt2title(_("Release date")) ..
         + "<div>" ..
         + part(thisModuleDetails.Date,1:10) ..
         + "</div>";
@@ -317,10 +275,10 @@ function updateDescFrame()
 
     htmlcode = "<html>" + ..
     "<body>" + ..
-    txt2title(gettext("Version")) + ..
+    txt2title(_("Version")) + ..
     "<div>" + thisModuleDetails.Version  + "</div>" + ..
     authorHTML + ..
-    txt2title(gettext("Description")) + ..
+    txt2title(_("Description")) + ..
     "<div>" + ..
     strcat(thisModuleDetails.Description,"<br>")  + ..
     "</div>" + ..
@@ -334,18 +292,16 @@ function updateDescFrame()
     htmlcode = processHTMLLinks(htmlcode);
 
     // Update the main description
-    set(Desc,"String",htmlcode);
+    set("Desc", "String", htmlcode);
 
     // Description title management
     // =========================================================================
 
-    descFrameHTML    = thisModuleDetails.Title;
-
-    descFramePos     = get(DescTitle,"Position");
-    descFramePos(3)  = 300;
+    descFrameHTML = thisModuleDetails.Title;
 
-    set(DescTitle, "String"   , descFrameHTML );
-    set(DescTitle, "Position" , descFramePos );
+    border = get("DescFrame", "border");
+    border.title = descFrameHTML;
+    set("DescFrame", "border", border);
 
     // Buttons
     // =========================================================================
@@ -354,16 +310,14 @@ function updateDescFrame()
     // --------------------------
 
     canUpdate = "off";
-
     if atomsIsInstalled(thisModuleName) & atomsVersionCompare(MRVersionInstalled,MRVersionAvailable) == -1 then
         // Not up-to-date
         canUpdate = "on";
-        updateStatusBar("warning",sprintf(gettext("A new version (''%s'') of ''%s'' is available"),MRVersionAvailable,thisModuleDetails.Title));
+        updateStatusBar("warning",sprintf(_("A new version (''%s'') of ''%s'' is available"),MRVersionAvailable,thisModuleDetails.Title));
     end
 
     // Can be removed
     // --------------------------
-
     if atomsIsInstalled(thisModuleName) then
         canRemove = "on";
     else
@@ -372,7 +326,6 @@ function updateDescFrame()
 
     // Can be installed
     // --------------------------
-
     if ~ atomsIsInstalled(thisModuleName) then
         canInstall = "on";
     else
@@ -381,41 +334,31 @@ function updateDescFrame()
 
     // Update the buttons
     // --------------------------
-
-    set(findobj("tag", "installButton"), "Enable", canInstall);
-    set(findobj("tag", "updateButton") , "Enable", canUpdate );
-    set(findobj("tag", "removeButton") , "Enable", canRemove );
+    set("installButton", "Enable", canInstall);
+    set("updateButton", "Enable", canUpdate );
+    set("removeButton", "Enable", canRemove );
 
 endfunction
 
 // =============================================================================
 // atomsSize2human()
 // =============================================================================
-
 function human_str = atomsSize2human(size_str)
-
     size_int = strtod(size_str);
-
     if size_int < 1024 then
-        human_str = string(size_int) + " " + gettext("Bytes");
-
+        human_str = string(size_int) + " " + _("Bytes");
     elseif size_int < 1024*1024 then
-        human_str = string(round(size_int/1024)) + " " + gettext("KB");
-
+        human_str = string(round(size_int/1024)) + " " + _("KB");
     else
-        human_str = string( round((size_int*10)/(1024*1024)) / 10 ) + " " + gettext("MB");
-
+        human_str = string( round((size_int*10)/(1024*1024)) / 10 ) + " " + _("MB");
     end
-
 endfunction
 
 // =============================================================================
 // show()
 // =============================================================================
-
 function show(tag)
-    obj = findobj("tag",tag);
-    set(obj,"Visible","On");
+    set(tag, "Visible", "On");
 endfunction
 
 // =============================================================================
@@ -423,8 +366,7 @@ endfunction
 // =============================================================================
 
 function hide(tag)
-    obj = findobj("tag",tag);
-    set(obj,"Visible","Off");
+    set(tag, "Visible", "Off");
 endfunction
 
 // =============================================================================
@@ -436,27 +378,15 @@ endfunction
 function showHome()
 
     // Reset the message frame
-    set(findobj("tag","msgText"),"String","");
+    set("msgText", "String", "");
 
-    // Hide the Desc frame
-    hide("DescFrame");
-    hide("DescTitle");
-    hide("Desc");
-    hide("removeButton");
-    hide("installButton");
-    hide("updateButton");
+    //active home layer
+    set("LayerFrame", "String", "HomeFrame");
 
     // update the left listbox
-    LeftListbox             = findobj("tag","LeftListbox");
-    LeftElements            = atomsGetLeftListboxElts("filter:main");
-    LeftListbox("String")   = LeftElements("items_str");
-    LeftListbox("UserData") = LeftElements("items_mat");
-
-    // Show the Home page
-    show("HomeFrame");
-    show("HomeTitle");
-    show("HomeListbox");
-
+    LeftElements = atomsGetLeftListboxElts("filter:main");
+    set("LeftListbox", "String", LeftElements("items_str"));
+    set("LeftListbox", "UserData", LeftElements("items_mat"));
 endfunction
 
 // =============================================================================
@@ -467,19 +397,8 @@ endfunction
 
 function showDesc()
 
-    // Show the Home page
-    hide("HomeFrame");
-    hide("HomeTitle");
-    hide("HomeListbox");
-
-    // Hide the Desc frame
-    show("DescFrame");
-    show("DescTitle");
-    show("Desc");
-    show("removeButton");
-    show("installButton");
-    show("updateButton");
-
+    //active description layer
+    set("LayerFrame", "String", "DescFrame");
 endfunction
 
 
@@ -492,10 +411,8 @@ function updateStatusBar(status,msg)
 
     rhs = argn(2);
 
-    msgText = findobj("tag","msgText");
-
     if rhs==0 then
-        set(msgText,"String","");
+        set("msgText", "String", "");
         return
     end
 
@@ -518,7 +435,7 @@ function updateStatusBar(status,msg)
     str = str + "</tr></table>";
     str = str + "</html>";
 
-    set(msgText,"String",str);
+    set("msgText", "String", str);
 
 endfunction
 
index dd4b26f..62f6083 100644 (file)
@@ -24,22 +24,22 @@ function elements = atomsGetLeftListboxElts(category)
     // =========================================================================
 
     if rhs <> 1 then
-        error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"),"getLeftListboxElements",1));
+        error(msprintf(_("%s: Wrong number of input argument: %d expected.\n"),"getLeftListboxElements",1));
     end
 
     // Check input argument types
     // =========================================================================
 
     if category<>[] & type(category) <> 10 then
-        error(msprintf(gettext("%s: Wrong type for input argument #%d: Single string expected.\n"),"getLeftListboxElements",1));
+        error(msprintf(_("%s: Wrong type for input argument #%d: Single string expected.\n"),"getLeftListboxElements",1));
     end
 
     if category<>[] & type(category) <> 10 then
-        error(msprintf(gettext("%s: Wrong type for input argument #%d: Single string expected.\n"),"getLeftListboxElements",1));
+        error(msprintf(_("%s: Wrong type for input argument #%d: Single string expected.\n"),"getLeftListboxElements",1));
     end
 
     if size(category(1,:),"*") > 2 then
-        error(msprintf(gettext("%s: Wrong size for input argument #%d: mx1 or mx2 string matrix expected.\n"),"atomsIsCategory",1));
+        error(msprintf(_("%s: Wrong size for input argument #%d: mx1 or mx2 string matrix expected.\n"),"atomsIsCategory",1));
     end
 
     // Build lists
@@ -60,32 +60,17 @@ function elements = atomsGetLeftListboxElts(category)
 
         categories = atomsCategoryGet("filter:main");
 
-        thisItem  =            "<html>";
-        thisItem  = thisItem + "<table style=""background-color:#ffffff;color:#000000;""><tr>";
-        thisItem  = thisItem + "<td><img src=""file:///"+SCI+"/modules/gui/images/icons/16x16/places/user-home.png"" /></td>";
-        thisItem  = thisItem + "<td style=""width:132px;""><div style=""width:118px;text-align:left;font-weight:bold;"">"+gettext("All modules")+"</div></td>";
-        thisItem  = thisItem + "</tr></table>";
-        thisItem  = thisItem + "</html>";
-
-        items_str = [items_str ; thisItem ];
+        items_str = [items_str ; "user-home", _("All modules"), "#ffffff"];
         items_mat = [items_mat ; "category" "filter:all"];
 
         for i=1:size(categories, "*")
-
             if background == "#eeeeee" then
                 background = "#ffffff";
             else
                 background = "#eeeeee";
             end
 
-            thisItem  =            "<html>";
-            thisItem  = thisItem + "<table style=""background-color:"+background+";color:#000000;"" ><tr>";
-            thisItem  = thisItem + "<td><img src=""file:///"+SCI+"/modules/gui/images/icons/16x16/places/folder.png"" /></td>";
-            thisItem  = thisItem + "<td style=""width:132px;""><div style=""width:118px;text-align:left;"">"+categories(i)+"</div></td>";
-            thisItem  = thisItem + "</tr></table>";
-            thisItem  = thisItem + "</html>";
-
-            items_str = [items_str ; thisItem ];
+            items_str = [items_str ; "folder", _(categories(i)), background];
             items_mat = [items_mat ; "category" categories(i)];
         end
 
@@ -103,12 +88,12 @@ function elements = atomsGetLeftListboxElts(category)
 
         if category=="filter:all" then
             categories = [];
-            top_str    = gettext("Main categories");
+            top_str    = _("Main categories");
             top_mat    = ["category" "filter:main"];
 
         elseif index_start==[] then
             categories = atomsCategoryGet(category);
-            top_str    = gettext("Main categories");
+            top_str    = _("Main categories");
             top_mat    = ["category" "filter:main"];
 
         else
@@ -119,33 +104,18 @@ function elements = atomsGetLeftListboxElts(category)
 
         end
 
-        thisItem  =            "<html>";
-        thisItem  = thisItem + "<table style=""background-color:#ffffff;color:#000000;"" ><tr>";
-        thisItem  = thisItem + "<td><img src=""file:///"+SCI+"/modules/gui/images/icons/16x16/places/user-home.png"" /></td>";
-        thisItem  = thisItem + "<td style=""width:132px;""><div style=""width:118px;text-align:left;font-weight:bold;"">"+top_str+"</div></td>";
-
-        thisItem  = thisItem + "</tr></table>";
-        thisItem  = thisItem + "</html>";
-
-        items_str = [items_str ; thisItem ];
+        items_str = [items_str ; "user-home", _(top_str), "#ffffff"];
+        //items_str = [items_str ; thisItem ];
         items_mat = [items_mat ; top_mat  ];
 
         for i=1:size(categories, "*")
-
             if background == "#eeeeee" then
                 background = "#ffffff";
             else
                 background = "#eeeeee";
             end
 
-            thisItem  =            "<html>";
-            thisItem  = thisItem + "<table style=""background-color:"+background+";color:#000000;"" ><tr>";
-            thisItem  = thisItem + "<td><img src=""file:///"+SCI+"/modules/gui/images/icons/16x16/places/folder.png"" /></td>";
-            thisItem  = thisItem + "<td style=""width:132px;""><div style=""width:118px;text-align:left;"">"+gettext(categories(i))+"</div></td>";
-            thisItem  = thisItem + "</tr></table>";
-            thisItem  = thisItem + "</html>";
-
-            items_str = [items_str ; thisItem ];
+            items_str = [items_str ; "folder", _(categories(i)), background];
             items_mat = [items_mat ; "category" category+" - "+categories(i) ];
         end
 
@@ -173,14 +143,14 @@ function elements = atomsGetLeftListboxElts(category)
 
                 if atomsVersionCompare(MRVersionInstalled,MRVersionAvailable(i)) == -1 then
                     // Not up-to-date
-                    icon = "software-update-notuptodate.png";
+                    icon = "software-update-notuptodate";
                 else
                     // The Most Recent Version is already installed
-                    icon = "software-update-installed.png";
+                    icon = "software-update-installed";
                 end
 
             else
-                icon = "software-update-notinstalled.png";
+                icon = "software-update-notinstalled";
             end
 
             if background == "#eeeeee" then
@@ -189,14 +159,7 @@ function elements = atomsGetLeftListboxElts(category)
                 background = "#eeeeee";
             end
 
-            thisItem =            "<html>";
-            thisItem = thisItem + "<table style=""background-color:"+background+";color:#000000;"" ><tr>";
-            thisItem = thisItem + "<td><img src=""file:///"+SCI+"/modules/atoms/images/icons/16x16/status/"+icon+""" /></td>";
-            thisItem = thisItem + "<td style=""width:132px;""><div style=""width:118px;text-align:left;"">"+thisModuleTitle+"</div></td>";
-            thisItem = thisItem + "</tr></table>";
-            thisItem = thisItem + "</html>";
-
-            items_str = [items_str ; thisItem     ];
+            items_str = [items_str ; icon, _(thisModuleTitle), background];
             items_mat = [items_mat ; "module" modulesNames(i)];
 
         end
@@ -212,38 +175,38 @@ function elements = atomsGetLeftListboxElts(category)
     elements("items_mat") = items_mat;
 
     if category=="filter:main" then
-        elements("title") = gettext("Main categories");
+        elements("title") = _("Main categories");
     elseif category=="filter:all" then
-        elements("title") = gettext("All modules");
+        elements("title") = _("All modules");
     else
-        elements("title") = gettext(category);
+        elements("title") = _(category);
     end
 
     if %f then
         // NEVER EXECUTED ON PURPOSE
         // inlined category "filter:main" data to ease localization
-        gettext("Aerospace");
-        gettext("Contributed Scilab Binaries");
-        gettext("Data Analysis And Statistics");
-        gettext("Data Handling");
-        gettext("Editor Styles");
-        gettext("Education");
-        gettext("GUI");
-        gettext("Graphics");
-        gettext("Graphs");
-        gettext("Image Processing");
-        gettext("Instruments Control");
-        gettext("Linear algebra");
-        gettext("Modeling and Control Tools");
-        gettext("Number theory");
-        gettext("Numerical Maths");
-        gettext("Optimization");
-        gettext("Physics");
-        gettext("Real-Time");
-        gettext("Scilab development");
-        gettext("Signal Processing");
-        gettext("Technical");
-        gettext("Tests");
-        gettext("Xcos");
+        _("Aerospace");
+        _("Contributed Scilab Binaries");
+        _("Data Analysis And Statistics");
+        _("Data Handling");
+        _("Editor Styles");
+        _("Education");
+        _("GUI");
+        _("Graphics");
+        _("Graphs");
+        _("Image Processing");
+        _("Instruments Control");
+        _("Linear algebra");
+        _("Modeling and Control Tools");
+        _("Number theory");
+        _("Numerical Maths");
+        _("Optimization");
+        _("Physics");
+        _("Real-Time");
+        _("Scilab development");
+        _("Signal Processing");
+        _("Technical");
+        _("Tests");
+        _("Xcos");
     end
 endfunction