Builder4/GtkView.bjs.VWG5LX
authorAlan Knowles <alan@roojs.com>
Wed, 10 Sep 2014 08:44:32 +0000 (16:44 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 10 Sep 2014 08:44:32 +0000 (16:44 +0800)
Builder4/GtkView.bjs
Builder4/GtkView.js.48F5LX
Builder4/GtkView.js
Builder4/GtkView.vala.ZRK5LX
Builder4/GtkView.vala

Builder4/GtkView.bjs
Builder4/GtkView.js
Builder4/GtkView.vala

index b3f0155..b7a11d2 100644 (file)
@@ -10,7 +10,7 @@
             "xtype" : "Viewport",
             "string id" : "GtkView",
             "$ xns" : "Gtk",
-            "| void addNode" : "(Object? parent, JsRender.Node node) {  \n\n    var type = GLib.Type.from_name(node.fqn());\n    if (type < 1) {\n        return;\n    }\n    // some types can not be created -- eg. dialogs...\n    \n    var  child = new Object(type);\n\n    var pack = \"\";\n    if (parent  == null) {\n        pack = \"add\";\n        parent = this.container.el;\n    }\n    var node_pack = node.get(\"* pack\");\n    string[] args = {}'\n    if (pack.length < 1 && node_pack.length > 0) {\n        var ar = pack.split(\",\");\n        pack = ar[0];\n        for (var i =1; i < ar.length; i++) {\n            args += ar[i];\n        }\n    }\n    switch(pack) {\n        case \"add\":\n            parent.add(child);\n            break;\n        case \"pack_start\":\n            \n        default:\n            print(\"unknown pack: \" + pack);\n            return;\n    }\n    \n    \n    var iter = node.items.list_iterator();\n    while (iter.next()) {\n        this.addNode(child, iter.get());\n    }\n    \n    \n\n}",
+            "| void addNode" : "(Object? parent, JsRender.Node node) {  \n\n    var type = GLib.Type.from_name(node.fqn());\n    if (type < 1) {\n        return;\n    }\n    // some types can not be created -- eg. dialogs...\n    \n    var  child = new Object(type);\n\n    var pack = \"\";\n    if (parent  == null) {\n        pack = \"add\";\n        parent = this.container.el;\n    }\n    var node_pack = node.get(\"* pack\");\n    string[] args = {}'\n    if (pack.length < 1 && node_pack.length > 0) {\n        var ar = pack.split(\",\");\n        pack = ar[0];\n        for (var i =1; i < ar.length; i++) {\n            args += ar[i];\n        }\n    }\n    switch(pack) {\n        case \"add\":\n            ((Gtk.Container) parent).add(child);\n            break;\n        case \"pack_start\":\n            ((Gtk.Box) parent).pack_start(\n                child, \n                args.length > 0 && args[0].down() == \"false\" ? false : true\n                args.length > 1 && args[1].down() == \"true\" ? true : false\n                args.length > 2 ?  uint64.parse(args[2])\n            );\n            break;\n        case \"pack_end\":\n            ((Gtk.Box) parent).pack_end(\n                child, \n                args.length > 0 && args[0].down() == \"false\" ? false : true\n                args.length > 1 && args[1].down() == \"true\" ? true : false\n                args.length > 2 ?  uint64.parse(args[2])\n            );            \n            \n            \n            \n        default:\n            print(\"unknown pack: \" + pack);\n            return;\n    }\n    \n    \n    var iter = node.items.list_iterator();\n    while (iter.next()) {\n        this.addNode(child, iter.get());\n    }\n    \n    \n\n}",
             "items" : [
                 {
                     "* pack" : "add",
index b0874a1..2c45a49 100644 (file)
@@ -39,9 +39,25 @@ GtkView=new XObject({
         }
         switch(pack) {
             case "add":
-                parent.add(child);
+                ((Gtk.Container) parent).add(child);
                 break;
             case "pack_start":
+                ((Gtk.Box) parent).pack_start(
+                    child, 
+                    args.length > 0 && args[0].down() == "false" ? false : true
+                    args.length > 1 && args[1].down() == "true" ? true : false
+                    args.length > 2 ?  uint64.parse(args[2])
+                );
+                break;
+            case "pack_end":
+                ((Gtk.Box) parent).pack_end(
+                    child, 
+                    args.length > 0 && args[0].down() == "false" ? false : true
+                    args.length > 1 && args[1].down() == "true" ? true : false
+                    args.length > 2 ?  uint64.parse(args[2])
+                );            
+                
+                
                 
             default:
                 print("unknown pack: " + pack);
index 5dce2c2..49ccb64 100644 (file)
@@ -56,9 +56,25 @@ public class GtkView : Object
         }
         switch(pack) {
             case "add":
-                parent.add(child);
+                ((Gtk.Container) parent).add(child);
                 break;
             case "pack_start":
+                ((Gtk.Box) parent).pack_start(
+                    child, 
+                    args.length > 0 && args[0].down() == "false" ? false : true
+                    args.length > 1 && args[1].down() == "true" ? true : false
+                    args.length > 2 ?  uint64.parse(args[2])
+                );
+                break;
+            case "pack_end":
+                ((Gtk.Box) parent).pack_end(
+                    child, 
+                    args.length > 0 && args[0].down() == "false" ? false : true
+                    args.length > 1 && args[1].down() == "true" ? true : false
+                    args.length > 2 ?  uint64.parse(args[2])
+                );            
+                
+                
                 
             default:
                 print("unknown pack: " + pack);