rename loader.sce to start.sce, a first impl of frame border ( titled + etched ) 34/17934/1
Antoine ELIAS [Wed, 16 Mar 2016 08:41:53 +0000 (09:41 +0100)]
Change-Id: I51904e965aec1423acc1a9392187d45159aad6e0

scilab/modules/graphic_objects/src/cpp/webutils.cpp
scilab/modules/graphic_objects/src/cpp/webutils.hxx
scilab/modules/graphics/src/c/getHandleProperty/set_constraints_property.c
scilab/node/html/index.html
scilab/node/scilab_server.js
scilab/node/start.sce [moved from scilab/node/loader.sce with 81% similarity]

index 7be262f..881463f 100644 (file)
@@ -25,6 +25,7 @@ extern "C"
 #include "graphicObjectProperties.h"
 #include "LayoutType.h"
 #include "BorderLayoutType.h"
+#include "FrameBorderType.h"
 }
 
 WebUtils::SETTER WebUtils::setter;
@@ -236,7 +237,7 @@ void WebUtils::setParent(int uid, std::ostringstream& ostr, bool append)
     if (getUILayout(parent) == LAYOUT_BORDER && hasStyle(parent, __GO_UI_TAB__) == false)
     {
         //force update of border position, especially for center
-        addInWaitingQueue(uid, __GO_UI_BORDER_PREFERREDSIZE__);
+        addInWaitingQueue(uid, __GO_UI_BORDER_POSITION__);
     }
 
     setWaitingProperties(uid, ostr, true);
@@ -695,7 +696,7 @@ void WebUtils::setUILayout(int uid, std::ostringstream& ostr, bool append)
                 ostr << "__bottom__.id = " << getIdString(uid, "_bottom") << ";" << std::endl;
                 ostr << "__bottom__.style.width = '100%';" << std::endl;
 
-                //hierarchie
+                //hierarchy
                 ostr << "__middle__.appendChild(__left__);" << std::endl;
                 ostr << "__middle__.appendChild(__center__);" << std::endl;
                 ostr << "__middle__.appendChild(__right__);" << std::endl;
@@ -1040,6 +1041,41 @@ void WebUtils::setUIGridBag(int uid, std::ostringstream& ostr, bool append)
     ostr << tricktoforcerefresh << std::endl;
 }
 
+void WebUtils::setUIFrameBorder(int uid, std::ostringstream& ostr, bool append)
+{
+    std::string title;
+    int border = getIntProperty(uid, __GO_UI_FRAME_BORDER__);
+    int style = getIntProperty(border, __GO_UI_FRAME_BORDER_STYLE__);
+
+    if (style == TITLED)
+    {
+        title = getStringProperty(border, __GO_TITLE__);
+    }
+
+    if (append == false)
+    {
+        ostr << "var __child__ = " << getElementById(uid) << std::endl;
+    }
+
+
+    //One style with or without title
+    createCommonIUControl(border, "DIV", "GO_UI_FRAME_BORDER", ostr);
+    ostr << "var __fieldset__ = " + createElement("FIELDSET");
+    ostr << "__fieldset__.id = " << getIdString(uid, "_fieldset") << ";" << std::endl;
+    ostr << "var __legend__ = " + createElement("LEGEND");
+    ostr << "__legend__.id = " << getIdString(uid, "_legend") << ";" << std::endl;
+    ostr << "__legend__.innerHTML = '" << title << "';" << std::endl;
+
+    //hierarchy
+
+    int parent = getParent(uid);
+    ostr << "__fieldset__.appendChild(__legend__);" << std::endl;
+    ostr << "__fieldset__.appendChild(__child__);" << std::endl;
+    ostr << "__temp__.appendChild(__fieldset__);" << std::endl;
+    ostr << "var __parent__ = " << getElementById(parent) << std::endl;
+    ostr << "__parent__.appendChild(__temp__);" << std::endl;
+}
+
 bool WebUtils::hasCallback(int uid)
 {
     return getStringProperty(uid, __GO_CALLBACK__) != "";
@@ -1514,9 +1550,10 @@ void WebUtils::fillSetter()
     setter[__GO_UI_SLIDERSTEP__] = WebUtils::setUIStep;
     setter[__GO_UI_VALUE__] = WebUtils::setUIValue;
     //preferred size is the last property to be set for border constraints
-    setter[__GO_UI_BORDER_PREFERREDSIZE__] = WebUtils::setUIBorder;
+    setter[__GO_UI_BORDER_POSITION__] = WebUtils::setUIBorder;
     //preferred size is the last property to be set for gridbag constraints
-    setter[__GO_UI_GRIDBAG_PREFERREDSIZE__] = WebUtils::setUIGridBag;
+    setter[__GO_UI_GRIDBAG_GRID__] = WebUtils::setUIGridBag;
+    setter[__GO_UI_FRAME_BORDER__] = WebUtils::setUIFrameBorder;
     //setter[__GO_CALLBACK__] = WebUtils::setCallback;
 }
 
index 9de38b8..3cb14af 100644 (file)
@@ -149,6 +149,9 @@ public:
     static void getUIGridBagGrid(int uid, std::vector<int>& vect);
     static void setUIGridBag(int uid, std::ostringstream& ostr, bool append = false);
 
+    static void getUIFrameBorder(int uid, std::vector<int>& vect);
+    static void setUIFrameBorder(int uid, std::ostringstream& ostr, bool append = false);
+
     static bool hasCallback(int uid);
     static void setCallback(int uid, std::ostringstream& ostr, bool append = false);
 
index 17db2e4..8d6620e 100644 (file)
@@ -152,8 +152,8 @@ int set_constraints_property(void* _pvCtx, int iObjUID, void* _pvData, int value
             piPreferredSize[1] = (int)pdblPreferredSize[1];
 
             freeAllocatedSingleString(pstPos);
-            setGraphicObjectProperty(iObjUID, __GO_UI_BORDER_POSITION__, &iPos, jni_int, 1);
             setGraphicObjectProperty(iObjUID, __GO_UI_BORDER_PREFERREDSIZE__, piPreferredSize, jni_int_vector, 2);
+            setGraphicObjectProperty(iObjUID, __GO_UI_BORDER_POSITION__, &iPos, jni_int, 1);
         }
         else if (strcmp(pstType, "GridConstraints") == 0)
         {
@@ -353,12 +353,12 @@ int set_constraints_property(void* _pvCtx, int iObjUID, void* _pvData, int value
             piPreferredSize[0] = (int)pdblPreferredSize[0];
             piPreferredSize[1] = (int)pdblPreferredSize[1];
 
-            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_GRID__, piGrid, jni_int_vector, 4);
-            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_WEIGHT__, pdblWeight, jni_double_vector, 2);
-            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_FILL__, &iFill, jni_int, 1);
-            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_ANCHOR__, &iAnchor, jni_int, 1);
-            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_PADDING__, piPadding, jni_int_vector, 2);
             setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_PREFERREDSIZE__, piPreferredSize, jni_int_vector, 2);
+            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_PADDING__, piPadding, jni_int_vector, 2);
+            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_ANCHOR__, &iAnchor, jni_int, 1);
+            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_FILL__, &iFill, jni_int, 1);
+            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_WEIGHT__, pdblWeight, jni_double_vector, 2);
+            setGraphicObjectProperty(iObjUID, __GO_UI_GRIDBAG_GRID__, piGrid, jni_int_vector, 4);
         }
         else
         {
index 1496241..868f1f0 100644 (file)
@@ -52,7 +52,6 @@ body {
     position: absolute;
     background-color : white;
     text-align:center;
-    overflow : hidden;
     font-family: Tahoma, Verdana, Segoe, sans-serif;
     font-size:11px;
     //border : 1px rgb(0,0,0) solid;
@@ -228,6 +227,14 @@ body {
     position: inherit;
     flex:1;
 }
+
+.GO_UI_FRAME_BORDER {
+}
+
+.GO_UI_FRAME_BORDER fieldset {
+    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
+}
+
 .window {
     /*
         "position" must be relative or absolute 
@@ -274,7 +281,7 @@ body {
         
         <!--  style="width:100%;height:100%" !-->
         
-        <table width=200 height=100 style="padding: 0px;border-collapse: collapse;">
+        <!--table width=200 height=100 style="padding: 0px;border-collapse: collapse;">
             <tr>
                 <td><div style="width:100%;height:100%;background-color:red"></div></td>
                 <td rowspan="2"><div style="width:100%;height:100%;background-color:yellow"></div></td>
@@ -287,7 +294,7 @@ body {
             <tr>
                 <td colspan="2"><div style="width:100%;height:100%;background-color:blue"></div></td>
             </tr>
-        </table>
+        </table!-->
         
         <div id='infobar'></div>
         <h3>Logger:</h3>
index 5882ab1..31ed2b3 100644 (file)
@@ -12,7 +12,7 @@ var fork = require('child_process').fork;
 
 server.listen(1337);
 
-var script = '/loader';
+var script = '/start';
 
 app.use('/favicon.ico', express.static('./favicon.ico'));
 app.get("/favicon.ico", function(req, res) {
@@ -23,7 +23,7 @@ app.get("*", function(req, res) {
     if(req.url != "/") {
         script = req.url;
     } else {
-        script = '/loader';
+        script = '/start';
     }
 });
 
similarity index 81%
rename from scilab/node/loader.sce
rename to scilab/node/start.sce
index 42d3b4e..f485069 100644 (file)
@@ -1,4 +1,17 @@
-if 0 then
+//1 +/-
+//2 damier
+//3 spinner and sliders
+//4 demo uicontrol
+//5 RGB
+//6 border layout
+//7 gridbag layout
+//8 tab
+//9 visible
+//10 opticlim
+
+demo = 10
+
+if demo == 1 then
     f1 = createWindow();
     f1.position(3:4) = [250, 100];
 
@@ -7,7 +20,7 @@ if 0 then
     uicontrol(f1, "position", [175 25 50 50], "string", "-1", "callback", "v = eval(get(''num'', ''string''));set(''num'', ''string'', string(v - 1));");
 end
 
-if 0 then
+if demo == 2 then
     f2 = createWindow();
     f2.visible = %f;
     f2.position(3:4) = [500, 600];
@@ -21,7 +34,7 @@ if 0 then
     f2.visible = %t;
 end
 
-if 0 then
+if demo == 3 then
     xdel(winsid());
     clear;
     
@@ -64,7 +77,7 @@ if 0 then
 end
 
 
-if 0 then
+if demo == 4 then
     f = createWindow();
     f.position = [200 200 240 470];
     f.figure_name = "";
@@ -82,7 +95,7 @@ if 0 then
     combo = uicontrol(fr1, "style", "popupmenu", "string", "popupmenu1|popupmenu2", "position", [10 10 200 30], "backgroundcolor", [0.8 0.8 0.8]);
 end
 
-if 0 then
+if demo == 5 then
     xdel(winsid());
     clear;
 
@@ -112,7 +125,7 @@ if 0 then
 end
 
 //border layout
-if 0 then
+if demo == 6 then
     
     f = createWindow();
     f.layout = "border";
@@ -169,7 +182,7 @@ if 0 then
 end
 
 //gridbag layout
-if 0 then
+if demo == 7 then
     f = createWindow();
     f.position = [200 200 200 100];
     f.layout = "gridbag";
@@ -222,7 +235,7 @@ end
 
 
 //tab
-if 1 then
+if demo == 8 then
     f = createWindow();
     f.position = [200 200 400 300];
     f.layout = "border";
@@ -237,8 +250,36 @@ if 1 then
     tab2 = uicontrol(tab, "style", "frame", "string", "tab 2", "layout", "border", "backgroundcolor", [0 1 0]);
     tab1 = uicontrol(tab, "style", "frame", "string", "tab 1", "layout", "border", "backgroundcolor", [1 0 0]);
     
-    uicontrol(tab1, "style", "pushbutton", "string", "tab1", "constraints", c);
-    uicontrol(tab2, "style", "pushbutton", "string", "tab2", "constraints", c);
-    uicontrol(tab3, "style", "pushbutton", "string", "tab3", "constraints", c);
+    //uicontrol(tab1, "style", "pushbutton", "string", "tab1", "constraints", c);
+    //uicontrol(tab2, "style", "pushbutton", "string", "tab2", "constraints", c);
+    //uicontrol(tab3, "style", "pushbutton", "string", "tab3", "constraints", c);
+    
+end
+
+if demo == 9 then
+
+    fig_pregui = createWindow();
+    fig_pregui.visible = "off";
+    fig_pregui.figure_name = _d("OPTICLIM", "OPTICLIM - site and weather selection");
+    fig_pregui.position = [200 200 500 170];
+    fig_pregui.layout = "border";
+    fig_pregui.background = color(244,244,244);
+    fig_pregui.tag = "figure_preopticlim";
+        
+    //sleep(500);
+
+    b1 = createBorder("titled", createBorder("etched"), _d("OPTICLIM", "Choose your site")+":", "left", "top", createBorderFont("", 11, "bold"), "black");
     
+    f = uicontrol(fig_pregui, "style", "frame", "layout", "gridbag", "fontsize", 11);
+    f1 = uicontrol(f, "style", "frame", "layout", "gridbag", "border", b1, "constraints", createConstraints("gridbag", [1 1 3 1], [1 1], "both", "left"), "fontsize", 11);
+    uicontrol(f1, "style", "popupmenu", "string", [], "fontsize", 11, "horizontalAlignment", "center", "margins", [0,5,0,5], "tag", "site_list", "callback", "cbChangeSite", "constraints", createConstraints("gridbag", [1 1 1 1], [5 1], "horizontal", "left", [0,0], [330,22]));
+    uicontrol(f1, "style", "pushbutton", "string", "", "fontsize", 11, "horizontalAlignment", "center", "margins", [0,5,0,5], "callback", "cbAddSite", "constraints", createConstraints("gridbag", [2 1 1 1], [1 1], "horizontal", "left"));
+
+    fig_pregui.visible = "on";
+end
+
+//opticlim
+if demo == 10 then
+    exec("E:\git\toolbox\sanofi-opticlim\loader.sce");
+    OpticlimStart();
 end