tests/TreeBuilder.vala
[app.Builder.js] / Builder4 / MainWindow.bjs
1 {
2     "name" : "MainWindow",
3     "parent" : "",
4     "title" : "",
5     "path" : "/home/alan/gitlive/app.Builder.js/Builder4/MainWindow.bjs",
6     "permname" : "",
7     "modOrder" : "",
8     "items" : [
9         {
10             "listeners" : {
11                 "delete_event" : "  (   event) => {\n    return false;\n}",
12                 "destroy" : "() =>  {\n Xcls_MainWindow.singleton().no_windows--;\n \n if (Xcls_MainWindow.singleton().no_windows < 1) {\n\n     Gtk.main_quit();\n }\n}",
13                 "show" : "  ( ) => {\n    // hide the file editing..\n   \n    //this.hideViewEditing();\n}"
14             },
15             "|             void hideAddListener" : "() {\n      _this.backbutton.el.hide();\n     _this.projectbutton.el.show(); \n          _this.projecteditbutton.el.show();\n         _this.editfilebutton.el.show();   \n     _this.addpropsview.el.save_easing_state();\n    var el = _this.rooview.el;\n    el.save_easing_state();\n\n    \n    el.set_scale(1.0f,1.0f);\n    _this.addpropsview.el.set_scale(0.0f,0.0f);\n    _this.state = \"edit\";\n\n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n     _this.addpropsview.el.restore_easing_state();  \n  }",
16             "|        void initChildren" : " () {\n    // this needs putting in a better place..\n    \n    print(\"init children\");\n    this.left_tree = new Xcls_WindowLeftTree();\n    this.left_tree.ref();\n    this.left_tree.main_window = _this;\n    this.tree.el.pack_start(this.left_tree.el,true, true,0);\n    this.left_tree.el.show_all();\n   \n    this.left_tree.before_node_change.connect(() => {\n        if (this.state != \"codeedit\") {\n            this.left_props.finish_editing();\n            return true;\n        }\n        if (!this.code_editor.saveContents()) {\n            return false;\n        }\n        return false;\n    \n    });\n    \n    this.left_tree.node_selected.connect((sel) => {\n        \n        print(\"node_selected called %s\\n\", (sel == null) ? \"NULL\" : \"a value\");\n        \n        if (sel == null) {\n            this.left_props.el.hide();\n        } \n        this.left_props.el.show();\n        this.left_props.load(this.left_tree.getActiveFile(), sel);\n        switch (this.state) {\n            case \"object\": \n                  \n                 if (sel == null) {\n                    this.rightpalete.clear();\n                    break;\n                }\n                this.rightpalete.load(_this.left_tree.getActiveFile().palete(), sel.fqn());\n                break;\n                 \n                \n           case \"addprop\":\n                if (sel == null) {\n                    this.add_props.clear();\n                    break;\n                }\n                this.add_props.show(_this.left_tree.getActiveFile().palete(), \"props\", sel.fqn());\n                break;\n                \n           case \"addlistener\":\n                if (sel == null) {\n                    this.add_props.clear();\n                    break;\n                }\n                this.add_props.show(_this.left_tree.getActiveFile().palete(), \"signals\", sel.fqn());\n                break;\n\n           case \"codeedit\":\n               \n                this.hideCodeEdit();\n                break;\n               \n                                \n        }\n        return  ;\n          \n    });\n    \n     this.left_tree.changed.connect(() => {\n       this.window_rooview.requestRedraw();\n       this.left_tree.model.file.save();\n    });\n     \n    \n\n    // left properties\n\n    this.left_props =new Xcls_LeftProps();\n    this.left_props.ref();\n    this.left_props.main_window = _this;\n    this.props.el.pack_start(this.left_props.el,true, true,0);\n    this.left_props.el.show_all();\n    \n    this.left_props.show_editor.connect( (file, node, type,  key) => {\n        this.showCodeEdit(file, node, type,  key);\n    });\n    this.left_props.stop_editor.connect( () => {\n        if (this.state != \"codeedit\") {\n            return true;\n        }\n    \n        var ret =  this.code_editor.saveContents();\n        if (!ret) {\n            return false;\n        }\n        this.hideCodeEdit();\n        return ret;\n    });\n     this.left_props.changed.connect(() => {\n          if (this.left_tree.getActiveFile().xtype == \"Roo\" ) {\n               this.window_rooview.requestRedraw();\n               \n           } else {\n              this.window_gladeview.loadFile(this.left_tree.getActiveFile());\n          }\n          this.left_tree.model.updateSelected();\n          this.left_tree.model.file.save();\n    });\n    \n\n\n\n    // left projects..\n     this.left_projects = new Xcls_WindowLeftProjects();\n     this.left_projects.ref();\n     this.leftpane.el.pack_start(this.left_projects.el,true, true,0);\n     this.left_projects.el.show_all();\n     this.left_projects.project_selected.connect((proj) => {\n        proj.scanDirs();\n        _this.clutterfiles.loadProject(proj);\n    \n     });\n    \n   \n    // project edit..\n    this.projectsettings  =new Xcls_ProjectSettings();\n    this.projectsettings.ref();  /// really?\n    ((Gtk.Container)(this.projecteditview.el.get_widget())).add(this.projectsettings.el);\n    //this.projectsettings.el.show_all();\n\n    var stage = _this.projecteditview.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n     this.projectsettings.buttonPressed.connect((btn) => {\n         if (this.left_tree.getActiveFile().xtype == \"Roo\" ) {\n         \n            if (btn == \"save\") {\n                 _this.window_rooview.view.renderJS(true);\n            }\n            if (btn == \"apply\") {\n                _this.window_rooview.view.renderJS(true);\n                return;\n            }\n        } else {\n            // do nothing for gtk..\n        }\n        if (btn == \"save\" || btn == \"apply\") {\n            _this.project.save();\n \n        }\n        \n        this.hideProjectEdit();\n         \n     });\n    \n    \n    // objects (palate..)\n    this.rightpalete  = new Xcls_RightPalete();\n    this.rightpalete.ref();  /// really?\n    ((Gtk.Container)(this.objectview.el.get_widget())).add(this.rightpalete.el);\n    //this.projectsettings.el.show_all();\n\n    stage = _this.objectview.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n    /*this.projectsettings.buttonPressed.connect((btn) => {\n        if (btn == \"save\") {\n             _this.window_rooview.view.renderJS(true);\n        }\n        if (btn == \"apply\") {\n            _this.window_rooview.view.renderJS(true);\n            return;\n        }\n        this.hideProjectEdit();\n         \n     });\n    */\n    \n    \n      \n    // Add properties\n    this.add_props  = new Xcls_WindowAddProp();\n    this.add_props.ref();  /// really?\n    ((Gtk.Container)(this.addpropsview.el.get_widget())).add(this.add_props.el);\n    //this.projectsettings.el.show_all();\n\n    stage = _this.addpropsview.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n    \n    _this.add_props.select.connect( (key,type,skel, etype) => {\n        this.left_props.addProp(etype, key, skel, type);\n    });\n    \n    // editor\n    \n    \n    this.code_editor  = new  Editor();\n    this.code_editor.ref();  /// really?\n    ((Gtk.Container)(this.codeeditview.el.get_widget())).add(this.code_editor.el);\n    //this.projectsettings.el.show_all();\n\n    stage = _this.codeeditview.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    // editor.save...\n\n    _this.code_editor.save.connect( () => {\n        this.left_tree.model.file.save();\n         this.left_tree.model.updateSelected();\n    });\n    \n     \n    \n    \n    //  roo view\n    \n     this.window_rooview  =new Xcls_WindowRooView();\n    this.window_rooview.ref();\n    ((Gtk.Container)(this.rooview.el.get_widget())).add(this.window_rooview.el);\n    this.window_rooview.el.show_all();\n\n    stage = _this.rooview.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n      \n    //  glade view\n    \n    this.window_gladeview  =new Xcls_GtkView();\n    this.window_gladeview.ref();\n\n    //((Gtk.Container)(this.rooview.el.get_widget())).add(this.window_gladeview.el);\n    ///this.window_gladeview.el.hide();\n\n   \n    \n    // clutter files\n    \n    \n    this.clutterfiles = new Xcls_ClutterFiles();\n    this.clutterfiles.ref();\n    stage.add_child(this.clutterfiles.el);\n    this.clutterfiles.el.show_all();\n\n\n    this.clutterfiles.open.connect((file) => { \n        _this.project = file.project;\n        _this.showViewEditing();\n        this.left_tree.model.loadFile(file);\n        var ctr= ((Gtk.Container)(this.rooview.el.get_widget()));\n        if (file.xtype == \"Roo\" ) { \n            ctr.foreach( (w) => { ctr.remove(w); });\n            ctr.add(this.window_rooview.el);\n            this.window_rooview.loadFile(file);\n            \n            this.window_rooview.el.show_all();\n        } else {\n            ctr.foreach( (w) => { ctr.remove(w); });\n            ctr.add(this.window_gladeview.el);\n            this.window_gladeview.loadFile(file);\n            this.window_gladeview.el.show_all();\n        }\n        print(\"OPEN : \" + file.name);\n        _this.editpane.el.set_position(_this.editpane.el.max_position);\n         \n\n    });\n\n    // new file dialog\n    this.new_file_dialog = new Xcls_DialogNewComponent();\n    // force it modal to the main window..\n    this.new_file_dialog.el.set_transient_for(this.el);\n    this.new_file_dialog.el.set_modal(true);\n    \n    this.new_file_dialog.success.connect((project,file) =>\n    {\n        _this.project = project;\n        _this.showViewEditing();\n        this.left_tree.model.loadFile(file);\n        var ctr= ((Gtk.Container)(this.rooview.el.get_widget()));\n        if (file.xtype == \"Roo\" ) { \n            ctr.foreach( (w) => { ctr.remove(w); });\n            ctr.add(this.window_rooview.el);\n            this.window_rooview.loadFile(file);\n            \n            this.window_rooview.el.show_all();\n        } else {\n            ctr.foreach( (w) => { ctr.remove(w); });\n            ctr.add(this.window_gladeview.el);\n            this.window_gladeview.loadFile(file);\n            this.window_gladeview.el.show_all();\n        }\n    \n    });\n    \n     \n\n    //w.el.show_all();\n    var tl = new Clutter.Timeline(6000);\n    tl.set_repeat_count(-1);\n    tl.start();\n    tl.ref();\n\n    this.children_loaded = true;\n\n\n\n\n}\n",
17             "# Project.Project project" : "null",
18             "# int no_windows" : 1,
19             "# bool children_loaded" : false,
20             "|             void hideCodeEdit" : "() {\n    //this.code_editor.saveContents();\n     _this.backbutton.el.hide();\n      _this.projectbutton.el.show(); \n       _this.projecteditbutton.el.show();\n       _this.editfilebutton.el.show();   \n     _this.codeeditview.el.save_easing_state();\n    var el = _this.rooview.el;\n    el.save_easing_state();\n\n    \n    el.set_scale(1.0f,1.0f);\n    _this.codeeditview.el.set_scale(0.0f,0.0f);\n    _this.state = \"edit\";\n\n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n     _this.codeeditview.el.restore_easing_state();  \n }",
21             "|             void showAddProp" : "() {\n\n     \n     var ae =      this.left_tree.getActiveElement();\n    if (ae == null) {\n        return;\n    }\n     _this.backbutton.el.show();\n       _this.projectbutton.el.hide();\n    _this.editfilebutton.el.hide();\n    _this.projecteditbutton.el.hide();    \n    \n     \n     \n    //this.rooview.el.hide();\n    this.add_props.el.show_all();\n    this.add_props.show(\n        Palete.factory(this.project.xtype), \n        \"props\",\n        ae.fqn()\n    );\n\n    _this.addpropsview.el.save_easing_state();\n        \n    var el = _this.rooview.el;\n    el.save_easing_state();\n    _this.clutterembed.setSizesAlloc(\"addprop\");\n     \n     \n\n    _this.addpropsview.el.set_scale(1.0f,1.0f);\n   \n   \n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n    _this.addpropsview.el.restore_easing_state();\n    this.state = \"addprop\";\n}",
22             "|             void showViewEditing" : "  ( )  {\n     this.editpane.el.show();\n  //   this.rooview.el.show();\n     this.left_projects.el.hide();\n    \n    _this.addprojectbutton.el.hide();   \n    _this.delprojectbutton.el.hide();\n    _this.addfilebutton.el.hide();       \n    _this.backbutton.el.hide();\n   _this.new_window.el.hide();      \n        \n        \n      _this.projectbutton.el.show();         \n    _this.editfilebutton.el.show();   \n   _this.projecteditbutton.el.show();\n  _this.objectshowbutton.el.show();\n  _this.addpropbutton.el.show();      \n  _this.addlistenerbutton.el.show();   \n\n      \n    var el = _this.rooview.el;\n        el.save_easing_state();\n  \n    \n        el.set_rotation_angle(Clutter.RotateAxis.Y_AXIS, 0.0f);\n        el.set_scale(1.0f,1.0f);\n        _this.state = \"edit\";\n       // _this.mainpane.el.set_position(_this.leftpane.lastWidth);\n        _this.clutterfiles.el.hide();\n    \n    el.restore_easing_state();\n        \n    print(\"show view editing\");\n}",
23             "border_width" : 0,
24             "|             void hideProjectEdit" : " () {\n    // return to editing state..\n       \n      _this.projectbutton.el.show();\n     _this.projecteditbutton.el.show();\n      _this.backbutton.el.hide();\n         _this.editfilebutton.el.show();   \n\n     \n     \n    //this.rooview.el.hide();\n     //this.edit_project.el.show();\n        _this.projecteditview.el.save_easing_state();\n    var el = _this.rooview.el;\n    el.save_easing_state();\n\n    \n    el.set_scale(1.0f,1.0f);\n       _this.projecteditview.el.set_scale(1.0f,0.0f);\n    _this.state = \"edit\";\n\n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n      _this.projecteditview.el.restore_easing_state();  \n  \n}\n",
25             "default_height" : 500,
26             "# Xcls_WindowLeftProjects left_projects" : "null",
27             "id" : "MainWindow",
28             "|             void showProjectEdit" : " () {\n    // make the browser smaller, and show the edit dialog\n    \n    \n     _this.projectbutton.el.hide();\n     _this.projecteditbutton.el.hide();\n     \n     _this.editfilebutton.el.hide();\n     \n    \n     \n     \n     _this.backbutton.el.show();\n     \n    //this.rooview.el.hide();\n    this.projectsettings.el.show_all();\n    this.projectsettings.show(this.project);\n    _this.projecteditview.el.save_easing_state();\n        \n    var el = _this.rooview.el;\n    el.save_easing_state();\n   \n    \n    el.set_scale(0.5f,0.5f);\n\n    _this.projecteditview.el.set_scale(1.0f,1.0f);\n   \n    _this.state = \"projectedit\";\n     \n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n    _this.projecteditview.el.restore_easing_state();\n  //  print(\"show view browsing\");\n    \n}\n",
29             "# Xcls_WindowRooView window_rooview" : "null",
30             "|             void showAddListener" : "() {\n\n     \n     \n    var ae =      this.left_tree.getActiveElement();\n    if (ae == null) {\n        return;\n    }\n     \n   _this.backbutton.el.show();\n    _this.projectbutton.el.hide();\n    _this.editfilebutton.el.hide();\n    _this.projecteditbutton.el.hide();    \n    \n    \n    //this.rooview.el.hide();\n    this.add_props.el.show_all();\n    this.add_props.show(\n        Palete.factory(this.project.xtype), \n        \"signals\",\n        ae.fqn()\n    );\n    //this.rightpalete.show(this.project);\n\n    _this.addpropsview.el.save_easing_state();\n        \n    var el = _this.rooview.el;\n    el.save_easing_state();\n   \n      _this.clutterembed.setSizesAlloc(\"addlistener\");\n\n    \n  \n\n    _this.addpropsview.el.set_scale(1.0f,1.0f);\n   \n   \n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n    _this.addpropsview.el.restore_easing_state();\n    this.state = \"addlistener\";\n}",
31             "default_width" : 800,
32             "xtype" : "Window",
33             "$ type" : "Gtk.WindowType.TOPLEVEL",
34             "|             void hideAddProp" : "() {\n      _this.backbutton.el.hide();\n     _this.projectbutton.el.show(); \n          _this.projecteditbutton.el.show();\n         _this.editfilebutton.el.show();   \n     _this.addpropsview.el.save_easing_state();\n     \n    var el = _this.rooview.el;\n    el.save_easing_state();\n\n    \n    el.set_scale(1.0f,1.0f);\n    _this.addpropsview.el.set_scale(0.0f,0.0f);\n    _this.state = \"edit\";\n\n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n     _this.addpropsview.el.restore_easing_state();  \n }",
35             "# Xcls_WindowLeftTree left_tree" : "null",
36             "# Editor code_editor" : "null",
37             "|             void showCodeEdit" : "(JsRender.JsRender file, JsRender.Node node, string ptype, string key)\n{\n    // this is a bit different,\n    // it's not called via a button - but triggered by the prop edit class signal.\n    // so it has to hide any other state..\n    \n    switch(this.state) {\n        case \"object\":\n            this.hideObject();\n            break;\n        case \"addprop\":\n            this.hideAddProp();\n            break;\n        case \"addlistener\":\n            this.hideAddListener();\n            break;\n    }\n \n   _this.backbutton.el.show();\n   \n    _this.projectbutton.el.hide();\n    _this.editfilebutton.el.hide();\n    _this.projecteditbutton.el.hide();    \n   // more?? \n     \n    //this.rooview.el.hide();\n    this.code_editor.el.show_all();\n    this.code_editor.show(\n        file,\n        node,\n        ptype,\n        key\n    );\n\n    _this.codeeditview.el.save_easing_state();\n        \n    var el = _this.rooview.el;\n    el.save_easing_state();\n    _this.clutterembed.setSizesAlloc(\"codedit\");\n   \n    _this.codeeditview.el.set_scale(1.0f,1.0f);\n   \n   \n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n    _this.codeeditview.el.restore_easing_state();\n    this.state = \"codeedit\";\n}\n",
38             "# Xcls_DialogNewComponent new_file_dialog" : "null",
39             "# Xcls_ProjectSettings projectsettings" : "null",
40             "|             void setTitle" : " (string str) {\n    this.el.set_title(this.title + \" - \" + str);\n}\n",
41             "|             void show" : "() {\n    this.left_tree =new Xcls_WindowLeftTree();\n    _this.vbox.el.pack_start(this.left_tree.el,true, true,0);\n    this.el.show_all();\n\n}",
42             "$ xns" : "Gtk",
43             "# Xcls_ClutterFiles clutterfiles" : "null",
44             "# Xcls_LeftProps left_props" : "null",
45             "# string state" : "",
46             "|             void hideViewEditing" : "  ( )   {\n\n// show the file navigation...\n  \n    if (this.left_tree.getActiveFile() != null) {\n         if (this.left_tree.getActiveFile().xtype == \"Roo\" ) {\n             this.window_rooview.createThumb();\n         } else {\n              this.window_gladeview.createThumb();\n          }\n      }\n      \n    _this.addprojectbutton.el.show();   \n    _this.addfilebutton.el.show();       \n      _this.backbutton.el.show();\n    _this.delprojectbutton.el.show();\n      _this.new_window.el.show();  \n          \n      _this.editfilebutton.el.hide();   \n      _this.projectbutton.el.hide();         \n      _this.projecteditbutton.el.hide();\n      _this.objectshowbutton.el.hide();\n      _this.addpropbutton.el.hide();      \n      _this.addlistenerbutton.el.hide();  \n\n\n\n\n          \n    // show the add file button..\n    \n          \n      \n     this.editpane.el.hide();\n    //this.rooview.el.hide();\n     this.left_projects.el.show();\n    \n    var el = _this.rooview.el;\n    el.save_easing_state();\n      el.set_easing_duration(1000);\n    // show project / file view..\n    //_this.mainpane.lastWidth = _this.leftpane.el.get_position();\n    //_this.mainpane.el.set_position(0);\n    // rotate y 180..\n    el.set_rotation_angle(Clutter.RotateAxis.Y_AXIS, 360.0f);\n    el.set_scale(0.0f,0.0f);\n   \n        _this.state = \"files\";\n    if (_this.project != null) {\n        _this.left_projects.selectProject(_this.project);\n        }\n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n        \n    print(\"show view browsing\");\n}",
47             "# Xcls_RightPalete rightpalete" : "null",
48             "# string title" : "\"Application Builder\"",
49             "# Xcls_WindowAddProp add_props" : "null",
50             "|             void showObject" : "() {\n\n     \n    // what's the active node on the left hand side..\n    \n    var n = _this.left_tree.getActiveElement();\n\n    if (_this.left_tree.model.file == null) {\n        return;\n    }\n    \n    if (n == null && _this.left_tree.model.file.tree != null) {\n        return;\n    }\n    \n     _this.backbutton.el.show();\n       _this.projectbutton.el.hide();\n    _this.editfilebutton.el.hide();\n    _this.projecteditbutton.el.hide();    \n    \n     \n    //this.rooview.el.hide();\n    this.rightpalete.el.show_all();\n    this.rightpalete.load(_this.left_tree.getActiveFile().palete(), n == null ? \"*top\" : n.fqn());\n\n    \n    //this.rightpalete.show(this.project);\n\n    _this.objectview.el.save_easing_state();\n        \n    var el = _this.rooview.el;\n    el.save_easing_state();\n   \n     _this.clutterembed.setSizesAlloc(\"object\");\n    \n\n    _this.objectview.el.set_scale(1.0f,1.0f);\n   \n   \n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n    _this.objectview.el.restore_easing_state();\n    this.state = \"object\";\n}",
51             "* init" : " this.state = \"files\";\n\t  \n    //this.el.show_all();\n    \n    ",
52             "|             void hideObject" : "() {\n      // return to editing state..\n       \n          _this.projecteditbutton.el.show();\n      _this.backbutton.el.hide();\n     _this.projectbutton.el.show(); \n         _this.editfilebutton.el.show();   \n     _this.objectview.el.save_easing_state();\n    var el = _this.rooview.el;\n    el.save_easing_state();\n\n    \n    el.set_scale(1.0f,1.0f);\n    _this.objectview.el.set_scale(0.0f,0.0f);\n    _this.state = \"edit\";\n\n \n    //_this.clutterfiles.loadProject(_this.project);\n\n    el.restore_easing_state();\n     _this.objectview.el.restore_easing_state();  \n \n\n}",
53             "# Xcls_GtkView window_gladeview" : "null",
54             "items" : [
55                 {
56                     "id" : "vbox",
57                     "* pack" : "add",
58                     "xtype" : "VBox",
59                     "$ xns" : "Gtk",
60                     "$ homogeneous" : false,
61                     "items" : [
62                         {
63                             "id" : "mainpane",
64                             "position" : 400,
65                             "* pack" : "pack_end,true,true,0",
66                             "# int lastWidth" : 0,
67                             "xtype" : "HPaned",
68                             "$ xns" : "Gtk",
69                             "items" : [
70                                 {
71                                     "id" : "leftpane",
72                                     "xtype" : "VBox",
73                                     "* pack" : "add1",
74                                     "$ xns" : "Gtk",
75                                     "items" : [
76                                         {
77                                             "id" : "editpane",
78                                             "xtype" : "VPaned",
79                                             "* pack" : "pack_start,false,true,0",
80                                             "$ xns" : "Gtk",
81                                             "items" : [
82                                                 {
83                                                     "id" : "tree",
84                                                     "xtype" : "VBox",
85                                                     "* pack" : "add1",
86                                                     "$ xns" : "Gtk"
87                                                 },
88                                                 {
89                                                     "id" : "props",
90                                                     "xtype" : "VBox",
91                                                     "* pack" : "add2",
92                                                     "$ xns" : "Gtk"
93                                                 }
94                                             ]
95                                         }
96                                     ]
97                                 },
98                                 {
99                                     "* pack" : "add2",
100                                     "xtype" : "VBox",
101                                     "$ xns" : "Gtk",
102                                     "items" : [
103                                         {
104                                             "listeners" : {
105                                                 "size_allocate" : "  (  alloc) => {\n    this.setSizes(alloc, _this.state); \n        \n}"
106                                             },
107                                             "id" : "clutterembed",
108                                             "* init" : "    var stage = this.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n    \n",
109                                             "xtype" : "Embed",
110                                             "* pack" : "pack_start,true,true,0",
111                                             "|           void setSizes" : "  (  Gtk.Allocation alloc, string state) {\n    if (!_this.children_loaded) {  return; }\n     \n    _this.clutterfiles.set_size(alloc.width-50, alloc.height);\n    \n    // project view appears at top...\n    \n    _this.projecteditview.el.set_size(alloc.width-50, alloc.height / 2.0f);\n           \n           \n    \n    var avail = alloc.width < 50.0f ? 0 :  alloc.width - 50.0f;\n \n    \n    var palsize = avail < 300.0f ? avail : 300.0f;\n    print(\"set palsize size %f\\n\", palsize);\n   // palate / props : fixed 300 pix\n            \n    _this.objectview.el.set_size(palsize, alloc.height);    \n    _this.addpropsview.el.set_size(palsize, alloc.height);\n    \n     \n    \n    // code edit min 600\n    \n    var codesize = avail < 800.0f ? avail : 800.0f;\n    print(\"set code size %f\\n\", codesize);\n\n    _this.codeeditview.el.set_size(codesize, alloc.height);\n    _this.rooview.el.set_size(alloc.width-50, alloc.height);    \n   \n    switch ( state) {\n        case \"codeedit\": \n\n\tvar scale = avail > 0.0f ? (avail - codesize -10 ) / avail : 0.0f;\n\t\n\t\n           _this.rooview.el.set_scale(scale,scale);\n           break;\n        case \"addprop\":\n        case \"addlistener\":        \n          case \"object\":   \n\tvar scale = avail > 0.0f ? (avail - palsize -10 ) / avail : 0.0f;\n           _this.rooview.el.set_scale(scale,scale);\n           break;\n    }\n        \n}",
112                                             "$ xns" : "GtkClutter",
113                                             "|           void setSizesAlloc" : "(string state) {\n\n    Gtk.Allocation alloc;\n    this.el.get_allocation(out alloc);\n    this.setSizes(alloc, state);\n}\n",
114                                             "items" : [
115                                                 {
116                                                     "id" : "rooview",
117                                                     "* init" : "{\n   \n   \n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            1.0f\n        )\n    );\n        \n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(1.0f,1.0f);\n    \n    this.el.set_size(_this.clutterembed.el.get_stage().width-50,\n            _this.clutterembed.el.get_stage().height);\n            \n}",
118                                                     "xtype" : "Actor",
119                                                     "* pack" : "get_stage().add_child",
120                                                     "$ xns" : "GtkClutter"
121                                                 },
122                                                 {
123                                                     "id" : "objectview",
124                                                     "* init" : "{\n   \n   /*\n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            0.0f\n        )\n    );\n    */\n    this.el.fixed_x = 50.0f;\n    this.el.fixed_y = 0.0f;\n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(0.0f,0.0f);\n    this.el.set_scale(0.0f,1.0f);\n    this.el.set_size((_this.clutterembed.el.get_stage().width-50)/2,\n            _this.clutterembed.el.get_stage().height);\n            \n}",
125                                                     "xtype" : "Actor",
126                                                     "* pack" : "get_stage().add_child",
127                                                     "$ xns" : "GtkClutter"
128                                                 },
129                                                 {
130                                                     "id" : "codeeditview",
131                                                     "* init" : "{\n   \n   /*\n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            0.0f\n        )\n    );\n    */\n    this.el.fixed_x = 50.0f;\n    this.el.fixed_y = 0.0f;\n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(0.0f,0.0f);\n    this.el.set_scale(0.0f,1.0f);\n    this.el.set_size((_this.clutterembed.el.get_stage().width-50)/2,\n            _this.clutterembed.el.get_stage().height);\n            \n}",
132                                                     "xtype" : "Actor",
133                                                     "* pack" : "get_stage().add_child",
134                                                     "$ xns" : "GtkClutter"
135                                                 },
136                                                 {
137                                                     "id" : "addpropsview",
138                                                     "* init" : "{\n   \n   /*\n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            0.0f\n        )\n    );\n    */\n    this.el.fixed_x = 50.0f;\n    this.el.fixed_y = 0.0f;\n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(0.0f,0.0f);\n    this.el.set_scale(0.0f,1.0f);\n    this.el.set_size((_this.clutterembed.el.get_stage().width-50)/2,\n            _this.clutterembed.el.get_stage().height);\n            \n}",
139                                                     "xtype" : "Actor",
140                                                     "* pack" : "get_stage().add_child",
141                                                     "$ xns" : "GtkClutter"
142                                                 },
143                                                 {
144                                                     "id" : "projecteditview",
145                                                     "* init" : "{\n   \n   \n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            1.0f\n        )\n    );\n        \n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(0.0f,0.0f);\n    this.el.set_scale(1.0f,0.0f);\n    this.el.set_size(_this.clutterembed.el.get_stage().width-50,\n            _this.clutterembed.el.get_stage().height /2);\n            \n}",
146                                                     "xtype" : "Actor",
147                                                     "* pack" : "get_stage().add_child",
148                                                     "$ xns" : "GtkClutter"
149                                                 },
150                                                 {
151                                                     "id" : "buttonlayout",
152                                                     "* init" : "{\n    \n    this.el.add_constraint(\n        new Clutter.AlignConstraint(\n            _this.clutterembed.el.get_stage(), \n            Clutter.AlignAxis.X_AXIS,\n            0.0f\n        )\n    );\n     \n    \n    //this.el.set_position(100,100);\n    this.el.set_pivot_point(0.5f,0.5f);\n     this.el.set_size(50,\n           _this.clutterembed.el.get_stage().height);\n     \n}",
153                                                     "xtype" : "Actor",
154                                                     "* pack" : "get_stage().add_child",
155                                                     "$ xns" : "Clutter",
156                                                     "items" : [
157                                                         {
158                                                             "$ orientation" : "Clutter.Orientation.VERTICAL",
159                                                             "xtype" : "BoxLayout",
160                                                             "$ xns" : "Clutter",
161                                                             "* prop" : "layout_manager"
162                                                         },
163                                                         {
164                                                             "id" : "backbutton",
165                                                             "* init" : "this.el.set_size(50,50);",
166                                                             "xtype" : "Actor",
167                                                             "* pack" : "add_child",
168                                                             "$ xns" : "Clutter",
169                                                             "items" : [
170                                                                 {
171                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
172                                                                     "xtype" : "Actor",
173                                                                     "* pack" : "add_child",
174                                                                     "$ xns" : "GtkClutter",
175                                                                     "items" : [
176                                                                         {
177                                                                             "listeners" : {
178                                                                                 "clicked" : "  ( ) => {\n    switch (_this.state) {\n        case \"edit\":\n        \n            _this.hideViewEditing();\n            break;  \n        case \"files\":\n            // should only occur if there is an active file..\n            _this.showViewEditing();\n            break; \n            \n          case \"addprop\":\n            _this.hideAddProp();\n\n            break;\n        case \"addlistener\":\n            _this.hideAddListener();\n\n            break;\n             \n         case \"object\":\n            _this.hideObject();\n            break;    \n         \n         case \"codeedit\":\n            \n            _this.hideCodeEdit();  \n            break;\n            \n         case  \"projectedit\":\n         // save?\n            _this.hideProjectEdit();\n            break;\n            \n        default:\n            break;\n    }\n    return  ;    \n\n}"
179                                                                             },
180                                                                             "utf8 tooltip_text" : "Back",
181                                                                             "* pack" : false,
182                                                                             "xtype" : "Button",
183                                                                             "width_request" : 50,
184                                                                             "$ xns" : "Gtk",
185                                                                             "height_request" : 50,
186                                                                             "items" : [
187                                                                                 {
188                                                                                     "utf8 icon_name" : "go-previous",
189                                                                                     "* pack" : "set_image",
190                                                                                     "xtype" : "Image",
191                                                                                     "$ xns" : "Gtk"
192                                                                                 }
193                                                                             ]
194                                                                         }
195                                                                     ]
196                                                                 }
197                                                             ]
198                                                         },
199                                                         {
200                                                             "id" : "projectbutton",
201                                                             "* init" : "this.el.set_size(50,50);",
202                                                             "xtype" : "Actor",
203                                                             "* pack" : "add_child",
204                                                             "$ xns" : "Clutter",
205                                                             "items" : [
206                                                                 {
207                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
208                                                                     "* pack" : "add_child",
209                                                                     "xtype" : "Actor",
210                                                                     "$ xns" : "GtkClutter",
211                                                                     "items" : [
212                                                                         {
213                                                                             "listeners" : {
214                                                                                 "clicked" : "  ( ) => {\n    switch (_this.state) {\n        case \"edit\":\n        \n            _this.hideViewEditing();\n            break;  \n        case \"files\":\n            _this.showViewEditing();\n            break; \n            \n          case \"addprop\":\n            _this.hideAddProp();\n            _this.hideViewEditing();\n            break;\n        case \"addlistener\":\n            _this.hideAddListener();\n            _this.hideViewEditing();\n            break;\n             \n         case \"object\":\n            _this.hideObject();\n            _this.hideViewEditing();\n            break;    \n            \n        default:\n            break;\n    }\n    return  ;    \n\n}"
215                                                                             },
216                                                                             "* pack" : false,
217                                                                             "xtype" : "Button",
218                                                                             "width_request" : 50,
219                                                                             "$ xns" : "Gtk",
220                                                                             "height_request" : 50,
221                                                                             "$ tooltop_text" : "\"Open File\"",
222                                                                             "items" : [
223                                                                                 {
224                                                                                     "xtype" : "Image",
225                                                                                     "utf8 icon_name" : "document-open",
226                                                                                     "* pack" : "set_image",
227                                                                                     "$ xns" : "Gtk"
228                                                                                 }
229                                                                             ]
230                                                                         }
231                                                                     ]
232                                                                 }
233                                                             ]
234                                                         },
235                                                         {
236                                                             "id" : "editfilebutton",
237                                                             "* init" : "this.el.set_size(50.0f,50.0f);",
238                                                             "xtype" : "Actor",
239                                                             "* pack" : "add_child",
240                                                             "$ xns" : "Clutter",
241                                                             "items" : [
242                                                                 {
243                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
244                                                                     "* pack" : "add_child",
245                                                                     "xtype" : "Actor",
246                                                                     "$ xns" : "GtkClutter",
247                                                                     "items" : [
248                                                                         {
249                                                                             "listeners" : {
250                                                                                 "clicked" : "  ( ) => {\n  \n    // create a new file in project..\n    if (_this.project == null || _this.left_tree.model.file == null) {\n        return  ;\n    }\n     \n    _this.new_file_dialog.show(_this.left_tree.model.file);\n    \n    return  ;    \n\n\n}"
251                                                                             },
252                                                                             "* pack" : false,
253                                                                             "xtype" : "Button",
254                                                                             "width_request" : 50,
255                                                                             "$ xns" : "Gtk",
256                                                                             "$ tooltip_text" : "\"File Details\"",
257                                                                             "height_request" : 50,
258                                                                             "items" : [
259                                                                                 {
260                                                                                     "* pack" : "set_image",
261                                                                                     "xtype" : "Image",
262                                                                                     "utf8 icon_name" : "document-properties",
263                                                                                     "$ xns" : "Gtk"
264                                                                                 }
265                                                                             ]
266                                                                         }
267                                                                     ]
268                                                                 }
269                                                             ]
270                                                         },
271                                                         {
272                                                             "id" : "projecteditbutton",
273                                                             "* init" : "this.el.set_size(50,50);",
274                                                             "xtype" : "Actor",
275                                                             "* pack" : "add_child",
276                                                             "$ xns" : "Clutter",
277                                                             "items" : [
278                                                                 {
279                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
280                                                                     "* pack" : "add_child",
281                                                                     "xtype" : "Actor",
282                                                                     "$ xns" : "GtkClutter",
283                                                                     "items" : [
284                                                                         {
285                                                                             "listeners" : {
286                                                                                 "clicked" : "  ( ) => {\n    switch (_this.state) {\n        case \"edit\":\n            _this.showProjectEdit();\n            break;  \n        case \"files\":\n            // _this.showViewEditing();\n            break; \n        case \"projectedit\":\n            _this.hideProjectEdit();\n            break;\n            \n            \n              \n        case \"addprop\":\n            _this.hideAddProp();\n            _this.showProjectEdit();\n            break;\n        case \"addlistener\":\n            _this.hideAddListener();\n            _this.showProjectEdit();\n            break;\n             \n         case \"object\":\n            _this.hideObject();\n            _this.showProjectEdit();    \n            break;\n        default:\n            break;\n    }\n    return  ;    \n\n\n}"
287                                                                             },
288                                                                             "* pack" : false,
289                                                                             "xtype" : "Button",
290                                                                             "width_request" : 50,
291                                                                             "$ xns" : "Gtk",
292                                                                             "$ tooltip_text" : "\"Project Details\"",
293                                                                             "height_request" : 50,
294                                                                             "items" : [
295                                                                                 {
296                                                                                     "utf8 icon_name" : "emblem-system",
297                                                                                     "* pack" : "set_image",
298                                                                                     "xtype" : "Image",
299                                                                                     "$ xns" : "Gtk"
300                                                                                 }
301                                                                             ]
302                                                                         }
303                                                                     ]
304                                                                 }
305                                                             ]
306                                                         },
307                                                         {
308                                                             "listeners" : {
309                                                                 "button_press_event" : "  ( ) => {\n    \n    \n    \n    switch (_this.state) {\n\n \n        case \"addprop\":\n            _this.hideAddProp();\n            _this.showObject();\n            break;\n    case \"addlistener\":\n            _this.hideAddListener();\n            _this.showObject();\n            break;\n\n// show            \n        case \"edit\":\n            _this.showObject();\n            break;\n            \n// hide            \n        case \"object\":\n            _this.hideObject();\n            break;\n            break;\n                        \n        default:\n            print(\"unhandled add objects from %s\\n\",_this.state);\n            break;\n    }\n    return false;    \n\n\n}",
310                                                                 "enter_event" : "(  event)  => {\n    this.el.background_color = new Clutter.Color.from_string(\"#333\");\n        return false;\n}",
311                                                                 "leave_event" : "(  event)  => {\n    this.el.background_color = new Clutter.Color.from_string(\"#000\");\n    return false;\n}"
312                                                             },
313                                                             "id" : "objectshowbutton",
314                                                             "* init" : "this.el.set_size(50,50);",
315                                                             "xtype" : "Actor",
316                                                             "* pack" : "add_child",
317                                                             "$ xns" : "Clutter",
318                                                             "items" : [
319                                                                 {
320                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
321                                                                     "* pack" : "add_child",
322                                                                     "xtype" : "Actor",
323                                                                     "$ xns" : "GtkClutter",
324                                                                     "items" : [
325                                                                         {
326                                                                             "listeners" : {
327                                                                                 "clicked" : "  ( ) => {\n    \n    \n    \n    switch (_this.state) {\n\n \n        case \"addprop\":\n            _this.hideAddProp();\n            _this.showObject();\n            break;\n    case \"addlistener\":\n            _this.hideAddListener();\n            _this.showObject();\n            break;\n\n// show            \n        case \"edit\":\n            _this.showObject();\n            break;\n            \n// hide            \n        case \"object\":\n            _this.hideObject();\n            break;\n            break;\n                        \n        default:\n            print(\"unhandled add objects from %s\\n\",_this.state);\n            break;\n    }\n    return  ;    \n\n\n}"
328                                                                             },
329                                                                             "* pack" : false,
330                                                                             "xtype" : "Button",
331                                                                             "width_request" : 50,
332                                                                             "$ xns" : "Gtk",
333                                                                             "$ tooltip_text" : "\"Add Child Element\"",
334                                                                             "height_request" : 50,
335                                                                             "items" : [
336                                                                                 {
337                                                                                     "xtype" : "Image",
338                                                                                     "utf8 icon_name" : "list-add",
339                                                                                     "* pack" : "set_image",
340                                                                                     "$ xns" : "Gtk"
341                                                                                 }
342                                                                             ]
343                                                                         }
344                                                                     ]
345                                                                 }
346                                                             ]
347                                                         },
348                                                         {
349                                                             "id" : "addpropbutton",
350                                                             "* init" : "this.el.set_size(50,50);",
351                                                             "xtype" : "Actor",
352                                                             "* pack" : "add_child",
353                                                             "$ xns" : "Clutter",
354                                                             "items" : [
355                                                                 {
356                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
357                                                                     "* pack" : "add_child",
358                                                                     "xtype" : "Actor",
359                                                                     "$ xns" : "GtkClutter",
360                                                                     "items" : [
361                                                                         {
362                                                                             "listeners" : {
363                                                                                 "clicked" : "  ( ) => {\n    \n    \n    \n    switch (_this.state) {\n        case \"edit\":\n            _this.showAddProp();\n            break;\n            \n        case \"object\":\n            _this.hideObject();\n            _this.showAddProp();\n            break;\n       \n        case \"addlistener\":\n            _this.hideAddListener();\n            _this.showAddProp();            \n            break;\n            \n            \n        case \"addprop\":\n            _this.hideAddProp();\n            break;\n            \n        default:\n            print(\"unhandled add property from %s\\n\",_this.state);\n            break;\n            \n    }\n    return  ;    \n\n\n}"
364                                                                             },
365                                                                             "* pack" : false,
366                                                                             "xtype" : "Button",
367                                                                             "width_request" : 50,
368                                                                             "$ xns" : "Gtk",
369                                                                             "$ tooltip_text" : "\"Add Property\"",
370                                                                             "height_request" : 50,
371                                                                             "items" : [
372                                                                                 {
373                                                                                     "* pack" : "set_image",
374                                                                                     "xtype" : "Image",
375                                                                                     "utf8 icon_name" : "format-justify-left",
376                                                                                     "$ xns" : "Gtk"
377                                                                                 }
378                                                                             ]
379                                                                         }
380                                                                     ]
381                                                                 }
382                                                             ]
383                                                         },
384                                                         {
385                                                             "id" : "addlistenerbutton",
386                                                             "* init" : "this.el.set_size(50,50);",
387                                                             "xtype" : "Actor",
388                                                             "* pack" : "add_child",
389                                                             "$ xns" : "Clutter",
390                                                             "items" : [
391                                                                 {
392                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
393                                                                     "* pack" : "add_child",
394                                                                     "xtype" : "Actor",
395                                                                     "$ xns" : "GtkClutter",
396                                                                     "items" : [
397                                                                         {
398                                                                             "listeners" : {
399                                                                                 "clicked" : "  ( ) => {\n    \n    \n    \n    switch (_this.state) {\n        case \"edit\":\n            _this.showAddListener();\n            break;\n            \n       \n        case \"addlistener\":\n            _this.hideAddListener();\n            break;\n\n            \n        case \"addprop\":\n            _this.hideAddProp();\n            _this.showAddListener();\n            break;\n         case \"object\":\n            _this.hideObject();\n            _this.showAddListener();\n            break;\n    \n          default:\n            print(\"unhandled add listener from %s\\n\",_this.state);\n\n            break;\n            \n    }\n    return  ;    \n\n\n}"
400                                                                             },
401                                                                             "* pack" : false,
402                                                                             "xtype" : "Button",
403                                                                             "width_request" : 50,
404                                                                             "$ xns" : "Gtk",
405                                                                             "$ tooltip_text" : "\"Add Event Code\"",
406                                                                             "height_request" : 50,
407                                                                             "items" : [
408                                                                                 {
409                                                                                     "utf8 icon_name" : "appointment-new",
410                                                                                     "* pack" : "set_image",
411                                                                                     "xtype" : "Image",
412                                                                                     "$ xns" : "Gtk"
413                                                                                 }
414                                                                             ]
415                                                                         }
416                                                                     ]
417                                                                 }
418                                                             ]
419                                                         },
420                                                         {
421                                                             "id" : "addprojectbutton",
422                                                             "* init" : "this.el.set_size(50.0f,50.0f);",
423                                                             "xtype" : "Actor",
424                                                             "* pack" : "add_child",
425                                                             "$ xns" : "Clutter",
426                                                             "items" : [
427                                                                 {
428                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
429                                                                     "* pack" : "add_child",
430                                                                     "xtype" : "Actor",
431                                                                     "$ xns" : "GtkClutter",
432                                                                     "items" : [
433                                                                         {
434                                                                             "listeners" : {
435                                                                                 "clicked" : "  ( ) => {\n  \n    // create a new file in project..\n    //Xcls_DialogNewComponent.singleton().show(\n   var  pe =     Xcls_EditProject.singleton();\n    pe.el.set_transient_for(_this.el);\n    pe.el.set_modal(true);   \n   \n    var p  = pe.show();\n\n    if (p == null) {\n        return;\n    }\n    _this.left_projects.is_loaded = false;    \n    _this.left_projects.load();\n    _this.left_projects.selectProject(p);\n    return  ;    \n\n\n}"
436                                                                             },
437                                                                             "* pack" : false,
438                                                                             "xtype" : "Button",
439                                                                             "width_request" : 50,
440                                                                             "$ xns" : "Gtk",
441                                                                             "$ tooltip_text" : "\"New\\nProj.\"",
442                                                                             "height_request" : 50,
443                                                                             "items" : [
444                                                                                 {
445                                                                                     "* pack" : "set_image",
446                                                                                     "xtype" : "Image",
447                                                                                     "utf8 icon_name" : "folder-new",
448                                                                                     "$ xns" : "Gtk"
449                                                                                 }
450                                                                             ]
451                                                                         }
452                                                                     ]
453                                                                 }
454                                                             ]
455                                                         },
456                                                         {
457                                                             "id" : "addfilebutton",
458                                                             "* init" : "this.el.set_size(50.0f,50.0f);",
459                                                             "xtype" : "Actor",
460                                                             "* pack" : "add_child",
461                                                             "$ xns" : "Clutter",
462                                                             "items" : [
463                                                                 {
464                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
465                                                                     "* pack" : "add_child",
466                                                                     "xtype" : "Actor",
467                                                                     "$ xns" : "GtkClutter",
468                                                                     "items" : [
469                                                                         {
470                                                                             "listeners" : {
471                                                                                 "clicked" : " () => {\n    // create a new file in project..\n    \n    // what's the currently selected project...\n    var proj = _this.left_projects.getSelectedProject();\n    \n    if (proj == null) {\n        return  ;\n    }\n    \n    \n    \n    var f = JsRender.JsRender.factory(proj.xtype,  proj, \"\");\n    _this.project = proj;\n    _this.new_file_dialog.show(f);\n    \n    return  ;    \n}"
472                                                                             },
473                                                                             "* pack" : false,
474                                                                             "xtype" : "Button",
475                                                                             "width_request" : 50,
476                                                                             "$ xns" : "Gtk",
477                                                                             "$ tooltip_text" : "\"Add File\"",
478                                                                             "height_request" : 50,
479                                                                             "items" : [
480                                                                                 {
481                                                                                     "xtype" : "Image",
482                                                                                     "utf8 icon_name" : "document-new",
483                                                                                     "* pack" : "set_image",
484                                                                                     "$ xns" : "Gtk"
485                                                                                 }
486                                                                             ]
487                                                                         }
488                                                                     ]
489                                                                 }
490                                                             ]
491                                                         },
492                                                         {
493                                                             "id" : "delprojectbutton",
494                                                             "* init" : "this.el.set_size(50,50);",
495                                                             "xtype" : "Actor",
496                                                             "* pack" : "add_child",
497                                                             "$ xns" : "Clutter",
498                                                             "items" : [
499                                                                 {
500                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
501                                                                     "* pack" : "add_child",
502                                                                     "xtype" : "Actor",
503                                                                     "$ xns" : "GtkClutter",
504                                                                     "items" : [
505                                                                         {
506                                                                             "listeners" : {
507                                                                                 "clicked" : "  ( ) => {\n     \n     var cd = DialogConfirm.singleton();\n     cd.el.set_transient_for(_this.el);\n    cd.el.set_modal(true);\n\n     var project =   _this.left_projects.getSelectedProject();\n    if (project == null) {\n        print(\"SKIP - no project\\n\");\n        return;\n    }\n    \n        \n     if (Gtk.ResponseType.YES != cd.show(\"Confirm\", \n        \"Are you sure you want to delete project %s\".printf(project.name))) {\n        return;\n    }\n     \n\n    // confirm?\n    Project.Project.remove(project);\n    _this.project = null;\n    \n    _this.left_projects.is_loaded =  false;\n    _this.left_projects.load();\n    _this.clutterfiles.clearFiles();\n\n}"
508                                                                             },
509                                                                             "* pack" : false,
510                                                                             "xtype" : "Button",
511                                                                             "width_request" : 50,
512                                                                             "$ xns" : "Gtk",
513                                                                             "$ tooltip_text" : "\"Delelte Project\"",
514                                                                             "height_request" : 50,
515                                                                             "items" : [
516                                                                                 {
517                                                                                     "* pack" : "set_image",
518                                                                                     "xtype" : "Image",
519                                                                                     "utf8 icon_name" : "user-trash",
520                                                                                     "$ xns" : "Gtk"
521                                                                                 }
522                                                                             ]
523                                                                         }
524                                                                     ]
525                                                                 }
526                                                             ]
527                                                         },
528                                                         {
529                                                             "id" : "new_window",
530                                                             "* init" : "this.el.set_size(50,50);",
531                                                             "xtype" : "Actor",
532                                                             "* pack" : "add_child",
533                                                             "$ xns" : "Clutter",
534                                                             "items" : [
535                                                                 {
536                                                                     "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
537                                                                     "* pack" : "add_child",
538                                                                     "xtype" : "Actor",
539                                                                     "$ xns" : "GtkClutter",
540                                                                     "items" : [
541                                                                         {
542                                                                             "listeners" : {
543                                                                                 "clicked" : "  ( ) => {\n        Xcls_MainWindow.singleton().no_windows++;\n        var w = new Xcls_MainWindow();\n        w.ref();\n\n        w.el.show_all();\n        w.initChildren();\n        w.hideViewEditing();\n}"
544                                                                             },
545                                                                             "utf8 tooltip_text" : "Open New Window",
546                                                                             "* pack" : false,
547                                                                             "xtype" : "Button",
548                                                                             "width_request" : 50,
549                                                                             "$ xns" : "Gtk",
550                                                                             "height_request" : 50,
551                                                                             "items" : [
552                                                                                 {
553                                                                                     "* pack" : "set_image",
554                                                                                     "xtype" : "Image",
555                                                                                     "utf8 icon_name" : "window-new",
556                                                                                     "$ xns" : "Gtk"
557                                                                                 }
558                                                                             ]
559                                                                         }
560                                                                     ]
561                                                                 }
562                                                             ]
563                                                         }
564                                                     ]
565                                                 }
566                                             ]
567                                         }
568                                     ]
569                                 }
570                             ]
571                         }
572                     ]
573                 }
574             ]
575         }
576     ]
577 }