Knock on effect of making enums raw type - need to detect them for pulldowns
authorAlan <alan@roojs.com>
Wed, 6 Jul 2022 07:53:41 +0000 (15:53 +0800)
committerAlan <alan@roojs.com>
Wed, 6 Jul 2022 07:53:41 +0000 (15:53 +0800)
src/Builder4/GladeView.bjs
src/Builder4/GladeView.vala
src/Builder4/WindowLeftProps.bjs
src/Builder4/WindowLeftProps.vala

index 92685ef..85eba61 100644 (file)
@@ -5,12 +5,13 @@
    "$ xns" : "Gtk",
    "items" : [
     {
+     "$ Gtk.Align halign" : "Gtk.Align.CENTER",
      "$ xns" : "Gtk",
      "* prop" : "buttons[]",
      "items" : [
       {
-       "$ Gtk.Align halign" : "",
-       "$ Gtk.ImageType storage_type" : "",
+       "$ Gtk.Align halign" : "Gtk.Align.CENTER",
+       "$ Gtk.ImageType storage_type" : "Gtk.ImageType.PIXBUF",
        "$ xns" : "Gtk",
        "* prop" : "image",
        "bool has_default" : true,
index 372b280..4ed3ff1 100644 (file)
@@ -51,6 +51,7 @@ public class GladeView : Object
             // my vars (dec)
 
             // set gobject values
+            this.el.halign = Gtk.Align.CENTER;
             this.el.label = "Label";
             var child_0 = new Xcls_Image3( _this );
             child_0.ref();
@@ -76,9 +77,9 @@ public class GladeView : Object
             // my vars (dec)
 
             // set gobject values
-            this.el.storage_type = ;
+            this.el.storage_type = Gtk.ImageType.PIXBUF;
             this.el.has_default = true;
-            this.el.halign = ;
+            this.el.halign = Gtk.Align.CENTER;
             this.el.icon_size = 33;
         }
 
index 061485c..5556949 100644 (file)
     "    if (prop.ptype == JsRender.NodePropType.METHOD) { ",
     "        use_textarea = true;",
     "    }",
-    "    if (prop.ptype == JsRender.NodePropType.RAW) { // raw string",
-    "        use_textarea = true;",
-    "    }",
+    "   // if (prop.ptype == JsRender.NodePropType.RAW) { // raw string",
+    "    //    use_textarea = true;",
+    "   // }",
     "    if ( prop.name == \"init\" && prop.ptype == JsRender.NodePropType.SPECIAL) {",
     "        use_textarea = true;",
     "    }",
     "    if (prop.val.length > 40) { // long value...",
     "        use_textarea = true;",
     "    }",
+    "    var pal = this.file.project.palete;",
     "    ",
+    "    string[] opts;",
+    "    var has_opts = pal.typeOptions(this.node.fqn(), prop.name, prop.rtype, out opts);",
     "    ",
+    "    if (!has_opts && prop.ptype == JsRender.NodePropType.RAW) {",
+    "      \tuse_textarea = true;",
+    "    ",
+    "    }",
+    "     ",
     "    ",
     "    if (use_textarea) {",
     "        GLib.debug(\"Call show editor\\n\");",
     "        return false;",
     "    }",
     "    ",
-    "     var pal = this.file.project.palete;",
     "    ",
-    "    string[] opts;",
-    "    var has_opts = pal.typeOptions(this.node.fqn(), prop.name, prop.rtype, out opts);",
     "    ",
     "    ",
     "    ",
index a3572f4..4a976dc 100644 (file)
@@ -180,6 +180,22 @@ public class Xcls_LeftProps : Object
                 -1
                 
             ); 
+    }
+    public void before_edit ()
+    {
+    
+        GLib.debug("before edit - stop editing\n");
+        
+      // these do not appear to trigger save...
+        _this.keyrender.el.stop_editing(false);
+        _this.keyrender.el.editable  =false;
+    
+        _this.valrender.el.stop_editing(false);
+        _this.valrender.el.editable  =false;    
+        
+        
+    // technicall stop the popup editor..
+    
     }
     public void deleteSelected () {
         
@@ -240,22 +256,6 @@ public class Xcls_LeftProps : Object
         });
           
         
-    }
-    public void before_edit ()
-    {
-    
-        GLib.debug("before edit - stop editing\n");
-        
-      // these do not appear to trigger save...
-        _this.keyrender.el.stop_editing(false);
-        _this.keyrender.el.editable  =false;
-    
-        _this.valrender.el.stop_editing(false);
-        _this.valrender.el.editable  =false;    
-        
-        
-    // technicall stop the popup editor..
-    
     }
     public void reload () {
        this.load(this.file, this.node);
@@ -263,74 +263,6 @@ public class Xcls_LeftProps : Object
     public void finish_editing () {
          // 
         this.before_edit();
-    }
-    public void load (JsRender.JsRender file, JsRender.Node? node) 
-    {
-       // not sure when to initialize this - we should do it on setting main window really.    
-        if (this.view.popover == null) {
-                  this.view.popover = new Xcls_PopoverProperty();
-                  this.view.popover.mainwindow = _this.main_window;
-       }
-        
-        
-        
-        
-        GLib.debug("load leftprops\n");
-        this.before_edit();
-        this.node = node;
-        this.file = file;
-        
-     
-        this.model.el.clear();
-                  
-        //this.get('/RightEditor').el.hide();
-        if (node ==null) {
-            return ;
-        }
-         
-        
-    
-        //var provider = this.get('/LeftTree').getPaleteProvider();
-        Gtk.TreeIter iter;
-        
-       
-        
-         
-        
-        // really need a way to sort the hashmap...
-        var m = this.model.el;
-        
-        var miter = node.listeners.map_iterator();
-        var i = 0;
-        
-        while(miter.next()) {
-            i++;
-            m.append(out iter,null);
-            
-            this.updateIter(iter,  miter.get_value());
-            
-             
-         }
-         
-          
-        miter = node.props.map_iterator();
-        
-        
-       while(miter.next()) {
-               i++;
-            m.append(out iter,null);
-             this.updateIter(iter, miter.get_value());
-             
-       }
-       GLib.debug("clear selection\n");
-       // clear selection?
-       this.model.el.set_sort_column_id(4,Gtk.SortType.ASCENDING); // sort by real key..
-       
-       this.view.el.get_selection().unselect_all();
-       
-       
-       
-       
     }
     public bool startEditingValue ( Gtk.TreePath path) {
     
@@ -363,17 +295,25 @@ public class Xcls_LeftProps : Object
         if (prop.ptype == JsRender.NodePropType.METHOD) { 
             use_textarea = true;
         }
-        if (prop.ptype == JsRender.NodePropType.RAW) { // raw string
-            use_textarea = true;
-        }
+       // if (prop.ptype == JsRender.NodePropType.RAW) { // raw string
+        //    use_textarea = true;
+       // }
         if ( prop.name == "init" && prop.ptype == JsRender.NodePropType.SPECIAL) {
             use_textarea = true;
         }
         if (prop.val.length > 40) { // long value...
             use_textarea = true;
         }
+        var pal = this.file.project.palete;
         
+        string[] opts;
+        var has_opts = pal.typeOptions(this.node.fqn(), prop.name, prop.rtype, out opts);
         
+        if (!has_opts && prop.ptype == JsRender.NodePropType.RAW) {
+               use_textarea = true;
+        
+        }
+         
         
         if (use_textarea) {
             GLib.debug("Call show editor\n");
@@ -389,10 +329,7 @@ public class Xcls_LeftProps : Object
             return false;
         }
         
-         var pal = this.file.project.palete;
         
-        string[] opts;
-        var has_opts = pal.typeOptions(this.node.fqn(), prop.name, prop.rtype, out opts);
         
         
         
@@ -454,6 +391,74 @@ public class Xcls_LeftProps : Object
             return false;
         });
         return false;
+    }
+    public void load (JsRender.JsRender file, JsRender.Node? node) 
+    {
+       // not sure when to initialize this - we should do it on setting main window really.    
+        if (this.view.popover == null) {
+                  this.view.popover = new Xcls_PopoverProperty();
+                  this.view.popover.mainwindow = _this.main_window;
+       }
+        
+        
+        
+        
+        GLib.debug("load leftprops\n");
+        this.before_edit();
+        this.node = node;
+        this.file = file;
+        
+     
+        this.model.el.clear();
+                  
+        //this.get('/RightEditor').el.hide();
+        if (node ==null) {
+            return ;
+        }
+         
+        
+    
+        //var provider = this.get('/LeftTree').getPaleteProvider();
+        Gtk.TreeIter iter;
+        
+       
+        
+         
+        
+        // really need a way to sort the hashmap...
+        var m = this.model.el;
+        
+        var miter = node.listeners.map_iterator();
+        var i = 0;
+        
+        while(miter.next()) {
+            i++;
+            m.append(out iter,null);
+            
+            this.updateIter(iter,  miter.get_value());
+            
+             
+         }
+         
+          
+        miter = node.props.map_iterator();
+        
+        
+       while(miter.next()) {
+               i++;
+            m.append(out iter,null);
+             this.updateIter(iter, miter.get_value());
+             
+       }
+       GLib.debug("clear selection\n");
+       // clear selection?
+       this.model.el.set_sort_column_id(4,Gtk.SortType.ASCENDING); // sort by real key..
+       
+       this.view.el.get_selection().unselect_all();
+       
+       
+       
+       
     }
     public void addProp (JsRender.NodeProp prop) {
           // info includes key, val, skel, etype..