src/Builder4/MainWindow.bjs
[app.Builder.js] / src / Builder4 / MainWindow.bjs
1 {
2  "name" : "MainWindow",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/alan/gitlive/app.Builder.js/src/Builder4/MainWindow.bjs",
6  "permname" : "",
7  "modOrder" : "",
8  "build_module" : "builder",
9  "items" : [
10   {
11    "listeners" : {
12     "delete_event" : "  (   event) => {\n    return false;\n}",
13     "destroy" : "() =>  {\n Xcls_MainWindow.singleton().no_windows--;\n \n Resources.singleton().disconnect(_this.statusbar.handler_id);\n \n \n if (Xcls_MainWindow.singleton().no_windows < 1) {\n\n     Gtk.main_quit();\n }\n}",
14     "show" : "  ( ) => {\n    // hide the file editing..\n   \n    //this.hideViewEditing();\n    _this.statusbar.el.hide();\n     _this.statusbar_errors.el.hide();\n    _this.statusbar_warnings.el.hide();\n    _this.statusbar_depricated.el.hide();\n    \n  \n    Resources.singleton().checkResources();\n\n}"
15    },
16    "id" : "MainWindow",
17    "default_width" : 800,
18    "* init" : " \n\t  \n    //this.el.show_all();\n    \n     ",
19    "# Project.Project project" : "null",
20    "# string title" : "\"Application Builder\"",
21    "xtype" : "Window",
22    "# int no_windows" : 1,
23    "default_height" : 500,
24    "|        void initChildren" : " () {\n    // this needs putting in a better place..\n    this.windowstate = new WindowState(this);\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    \n\n\n\n}\n",
25    "$ xns" : "Gtk",
26    "|             void show" : "() {\n   \n    this.el.show_all();\n\n}",
27    "# WindowState windowstate" : "null",
28    "border_width" : 0,
29    "$ type" : "Gtk.WindowType.TOPLEVEL",
30    "|             void setTitle" : " (string str) {\n    this.headerbar.el.set_title(this.title + \" - \" + str);\n} \n",
31    "items" : [
32     {
33      "id" : "headerbar",
34      "xtype" : "HeaderBar",
35      "* pack" : "set_titlebar",
36      "bool show_close_button" : true,
37      "$ xns" : "Gtk",
38      "string title" : "Application Builder",
39      "items" : [
40       {
41        "* pack" : "pack_start",
42        "xtype" : "Box",
43        "$ xns" : "Gtk",
44        "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
45        "items" : [
46         {
47          "bool use_popover" : false,
48          "xtype" : "MenuButton",
49          "* pack" : "add",
50          "$ xns" : "Gtk",
51          "items" : [
52           {
53            "id" : "topbarmenu",
54            "* init" : "{\n    this.el.show_all();\n}\n",
55            "xtype" : "Menu",
56            "* pack" : "set_popup",
57            "$ xns" : "Gtk",
58            "items" : [
59             {
60              "listeners" : {
61               "activate" : "  ( ) => {\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.windowstate.switchState(WindowState.State.FILES);\n}"
62              },
63              "string label" : "Open a new Window",
64              "* pack" : "append",
65              "xtype" : "MenuItem",
66              "$ xns" : "Gtk"
67             },
68             {
69              "* pack" : "append",
70              "xtype" : "SeparatorMenuItem",
71              "$ xns" : "Gtk"
72             },
73             {
74              "listeners" : {
75               "activate" : " ( ) => {\n         Resources.singleton().fetchStart();\n}"
76              },
77              "xtype" : "MenuItem",
78              "string label" : "Download updated Resources",
79              "* pack" : "append",
80              "$ xns" : "Gtk"
81             },
82             {
83              "listeners" : {
84               "activate" : "() => {\n    About.singleton().el.show();\n    }"
85              },
86              "* pack" : "append",
87              "xtype" : "MenuItem",
88              "string label" : "About the Builder",
89              "$ xns" : "Gtk"
90             }
91            ]
92           },
93           {
94            "utf8 icon_name" : "help-about",
95            "* pack" : "set_image",
96            "xtype" : "Image",
97            "$ xns" : "Gtk"
98           }
99          ]
100         }
101        ]
102       }
103      ]
104     },
105     {
106      "id" : "vbox",
107      "* pack" : "add",
108      "xtype" : "Box",
109      "$ xns" : "Gtk",
110      "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
111      "$ homogeneous" : false,
112      "items" : [
113       {
114        "id" : "mainpane",
115        "position" : 400,
116        "* pack" : "pack_start,true,true,0",
117        "# int lastWidth" : 0,
118        "xtype" : "Paned",
119        "$ xns" : "Gtk",
120        "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
121        "items" : [
122         {
123          "id" : "leftpane",
124          "xtype" : "Box",
125          "* pack" : "add1",
126          "$ xns" : "Gtk",
127          "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
128          "items" : [
129           {
130            "id" : "editpane",
131            "xtype" : "Paned",
132            "* pack" : "pack_start,false,true,0",
133            "$ xns" : "Gtk",
134            "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
135            "items" : [
136             {
137              "id" : "tree",
138              "xtype" : "Box",
139              "* pack" : "add1",
140              "$ xns" : "Gtk"
141             },
142             {
143              "id" : "props",
144              "xtype" : "VBox",
145              "* pack" : "add2",
146              "$ xns" : "Gtk"
147             }
148            ]
149           }
150          ]
151         },
152         {
153          "* pack" : "add2",
154          "xtype" : "VBox",
155          "$ xns" : "Gtk",
156          "items" : [
157           {
158            "listeners" : {
159             "size_allocate" : "  (  alloc) => {\n    if (_this.windowstate == null) {\n        return;\n    }\n    _this.windowstate.resizeCanvas(); \n        \n}"
160            },
161            "id" : "clutterembed",
162            "* init" : "    var stage = this.el.get_stage();\n    stage.set_background_color(  Clutter.Color.from_string(\"#000\"));\n    \n    \n",
163            "xtype" : "Embed",
164            "* pack" : "pack_start,true,true,0",
165            "$ xns" : "GtkClutter",
166            "items" : [
167             {
168              "id" : "rooview",
169              "* 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}",
170              "xtype" : "Actor",
171              "* pack" : "get_stage().add_child",
172              "$ xns" : "GtkClutter"
173             },
174             {
175              "id" : "objectview",
176              "* 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}",
177              "xtype" : "Actor",
178              "* pack" : "get_stage().add_child",
179              "$ xns" : "GtkClutter"
180             },
181             {
182              "id" : "codeeditview",
183              "* 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}",
184              "xtype" : "Actor",
185              "* pack" : "get_stage().add_child",
186              "$ xns" : "GtkClutter"
187             },
188             {
189              "id" : "addpropsview",
190              "* 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}",
191              "xtype" : "Actor",
192              "* pack" : "get_stage().add_child",
193              "$ xns" : "GtkClutter"
194             },
195             {
196              "id" : "projecteditview",
197              "* 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}",
198              "xtype" : "Actor",
199              "* pack" : "get_stage().add_child",
200              "$ xns" : "GtkClutter"
201             },
202             {
203              "id" : "buttonlayout",
204              "* 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}",
205              "xtype" : "Actor",
206              "* pack" : "get_stage().add_child",
207              "$ xns" : "Clutter",
208              "items" : [
209               {
210                "$ orientation" : "Clutter.Orientation.VERTICAL",
211                "xtype" : "BoxLayout",
212                "$ xns" : "Clutter",
213                "* prop" : "layout_manager"
214               },
215               {
216                "id" : "backbutton",
217                "* init" : "this.el.set_size(50,50);",
218                "xtype" : "Actor",
219                "* pack" : "add_child",
220                "$ xns" : "Clutter",
221                "items" : [
222                 {
223                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
224                  "xtype" : "Actor",
225                  "* pack" : "add_child",
226                  "$ xns" : "GtkClutter",
227                  "items" : [
228                   {
229                    "listeners" : {
230                     "clicked" : "  ( ) => {\n  \n    _this.windowstate.switchState(WindowState.State.PREVIEW);\n    \n\n}"
231                    },
232                    "utf8 tooltip_text" : "Back",
233                    "* pack" : false,
234                    "xtype" : "Button",
235                    "width_request" : 50,
236                    "$ xns" : "Gtk",
237                    "height_request" : 50,
238                    "items" : [
239                     {
240                      "xtype" : "Image",
241                      "utf8 icon_name" : "go-previous",
242                      "* pack" : "set_image",
243                      "$ xns" : "Gtk"
244                     }
245                    ]
246                   }
247                  ]
248                 }
249                ]
250               },
251               {
252                "id" : "projectbutton",
253                "* init" : "this.el.set_size(50,50);",
254                "xtype" : "Actor",
255                "* pack" : "add_child",
256                "$ xns" : "Clutter",
257                "items" : [
258                 {
259                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
260                  "* pack" : "add_child",
261                  "xtype" : "Actor",
262                  "$ xns" : "GtkClutter",
263                  "items" : [
264                   {
265                    "listeners" : {
266                     "clicked" : "  ( ) => {\n   _this.windowstate.switchState(WindowState.State.FILES);\n      \n\n}"
267                    },
268                    "* pack" : false,
269                    "xtype" : "Button",
270                    "width_request" : 50,
271                    "$ xns" : "Gtk",
272                    "height_request" : 50,
273                    "$ tooltop_text" : "\"Open File\"",
274                    "items" : [
275                     {
276                      "* pack" : "set_image",
277                      "xtype" : "Image",
278                      "utf8 icon_name" : "document-open",
279                      "$ xns" : "Gtk"
280                     }
281                    ]
282                   }
283                  ]
284                 }
285                ]
286               },
287               {
288                "id" : "editfilebutton",
289                "* init" : "this.el.set_size(50.0f,50.0f);",
290                "xtype" : "Actor",
291                "* pack" : "add_child",
292                "$ xns" : "Clutter",
293                "items" : [
294                 {
295                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
296                  "* pack" : "add_child",
297                  "xtype" : "Actor",
298                  "$ xns" : "GtkClutter",
299                  "items" : [
300                   {
301                    "listeners" : {
302                     "clicked" : "  ( ) => {\n  \n    // create a new file in project..\n    if (_this.project == null || _this.windowstate.left_tree.model.file == null) {\n        return  ;\n    }\n     _this.windowstate.file_details.show(\n        _this.windowstate.left_tree.model.file, this.el\n    );\n     \n    return  ;    \n\n\n}"
303                    },
304                    "* pack" : false,
305                    "xtype" : "Button",
306                    "width_request" : 50,
307                    "$ xns" : "Gtk",
308                    "$ tooltip_text" : "\"File Details\"",
309                    "height_request" : 50,
310                    "items" : [
311                     {
312                      "utf8 icon_name" : "document-properties",
313                      "* pack" : "set_image",
314                      "xtype" : "Image",
315                      "$ xns" : "Gtk"
316                     }
317                    ]
318                   }
319                  ]
320                 }
321                ]
322               },
323               {
324                "id" : "projecteditbutton",
325                "* init" : "this.el.set_size(50,50);",
326                "xtype" : "Actor",
327                "* pack" : "add_child",
328                "$ xns" : "Clutter",
329                "items" : [
330                 {
331                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
332                  "* pack" : "add_child",
333                  "xtype" : "Actor",
334                  "$ xns" : "GtkClutter",
335                  "items" : [
336                   {
337                    "listeners" : {
338                     "clicked" : "  ( ) => {\n     _this.windowstate.switchState(WindowState.State.PROJECT);\n   \n\n\n}"
339                    },
340                    "* pack" : false,
341                    "xtype" : "Button",
342                    "width_request" : 50,
343                    "$ xns" : "Gtk",
344                    "$ tooltip_text" : "\"Project Details\"",
345                    "height_request" : 50,
346                    "items" : [
347                     {
348                      "xtype" : "Image",
349                      "utf8 icon_name" : "emblem-system",
350                      "* pack" : "set_image",
351                      "$ xns" : "Gtk"
352                     }
353                    ]
354                   }
355                  ]
356                 }
357                ]
358               },
359               {
360                "listeners" : {
361                 "enter_event" : "(  event)  => {\n    this.el.background_color = new Clutter.Color.from_string(\"#333\");\n        return false;\n}",
362                 "leave_event" : "(  event)  => {\n    this.el.background_color = new Clutter.Color.from_string(\"#000\");\n    return false;\n}"
363                },
364                "id" : "objectshowbutton",
365                "* init" : "this.el.set_size(50,50);",
366                "xtype" : "Actor",
367                "* pack" : "add_child",
368                "$ xns" : "Clutter",
369                "items" : [
370                 {
371                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
372                  "* pack" : "add_child",
373                  "xtype" : "Actor",
374                  "$ xns" : "GtkClutter",
375                  "items" : [
376                   {
377                    "listeners" : {
378                     "clicked" : "  ( ) => {\n    \n     _this.windowstate.switchState(WindowState.State.OBJECT);\n  \n \n}"
379                    },
380                    "* pack" : false,
381                    "xtype" : "Button",
382                    "width_request" : 50,
383                    "$ xns" : "Gtk",
384                    "$ tooltip_text" : "\"Add Child Element\"",
385                    "height_request" : 50,
386                    "items" : [
387                     {
388                      "* pack" : "set_image",
389                      "xtype" : "Image",
390                      "utf8 icon_name" : "list-add",
391                      "$ xns" : "Gtk"
392                     }
393                    ]
394                   }
395                  ]
396                 }
397                ]
398               },
399               {
400                "id" : "addpropbutton",
401                "* init" : "this.el.set_size(50,50);",
402                "xtype" : "Actor",
403                "* pack" : "add_child",
404                "$ xns" : "Clutter",
405                "items" : [
406                 {
407                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
408                  "* pack" : "add_child",
409                  "xtype" : "Actor",
410                  "$ xns" : "GtkClutter",
411                  "items" : [
412                   {
413                    "listeners" : {
414                     "clicked" : "  ( ) => {\n    \n     _this.windowstate.switchState(WindowState.State.PROP);\n \n\n}"
415                    },
416                    "* pack" : false,
417                    "xtype" : "Button",
418                    "width_request" : 50,
419                    "$ xns" : "Gtk",
420                    "$ tooltip_text" : "\"Add Property\"",
421                    "height_request" : 50,
422                    "items" : [
423                     {
424                      "utf8 icon_name" : "format-justify-left",
425                      "* pack" : "set_image",
426                      "xtype" : "Image",
427                      "$ xns" : "Gtk"
428                     }
429                    ]
430                   }
431                  ]
432                 }
433                ]
434               },
435               {
436                "id" : "addlistenerbutton",
437                "* init" : "this.el.set_size(50,50);",
438                "xtype" : "Actor",
439                "* pack" : "add_child",
440                "$ xns" : "Clutter",
441                "items" : [
442                 {
443                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
444                  "* pack" : "add_child",
445                  "xtype" : "Actor",
446                  "$ xns" : "GtkClutter",
447                  "items" : [
448                   {
449                    "listeners" : {
450                     "clicked" : "  ( ) => {\n    \n    _this.windowstate.switchState(WindowState.State.LISTENER);\n  \n\n\n}"
451                    },
452                    "* pack" : false,
453                    "xtype" : "Button",
454                    "width_request" : 50,
455                    "$ xns" : "Gtk",
456                    "$ tooltip_text" : "\"Add Event Code\"",
457                    "height_request" : 50,
458                    "items" : [
459                     {
460                      "xtype" : "Image",
461                      "utf8 icon_name" : "appointment-new",
462                      "* pack" : "set_image",
463                      "$ xns" : "Gtk"
464                     }
465                    ]
466                   }
467                  ]
468                 }
469                ]
470               },
471               {
472                "id" : "addprojectbutton",
473                "* init" : "this.el.set_size(50.0f,50.0f);",
474                "xtype" : "Actor",
475                "* pack" : "add_child",
476                "$ xns" : "Clutter",
477                "items" : [
478                 {
479                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
480                  "* pack" : "add_child",
481                  "xtype" : "Actor",
482                  "$ xns" : "GtkClutter",
483                  "items" : [
484                   {
485                    "listeners" : {
486                     "clicked" : "  ( ) => {\n  \n    // create a new file in project..\n    //Xcls_DialogNewComponent.singleton().show(\n   var  pe =      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    \n    \n    _this.windowstate.left_projects.is_loaded = false;    \n    _this.windowstate.left_projects.load();\n    _this.windowstate.left_projects.selectProject(p);\n    return  ;    \n\n\n}"
487                    },
488                    "* pack" : false,
489                    "xtype" : "Button",
490                    "width_request" : 50,
491                    "$ xns" : "Gtk",
492                    "$ tooltip_text" : "\"New\\nProj.\"",
493                    "height_request" : 50,
494                    "items" : [
495                     {
496                      "utf8 icon_name" : "folder-new",
497                      "* pack" : "set_image",
498                      "xtype" : "Image",
499                      "$ xns" : "Gtk"
500                     }
501                    ]
502                   }
503                  ]
504                 }
505                ]
506               },
507               {
508                "id" : "addfilebutton",
509                "* init" : "this.el.set_size(50.0f,50.0f);",
510                "xtype" : "Actor",
511                "* pack" : "add_child",
512                "$ xns" : "Clutter",
513                "items" : [
514                 {
515                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
516                  "* pack" : "add_child",
517                  "xtype" : "Actor",
518                  "$ xns" : "GtkClutter",
519                  "items" : [
520                   {
521                    "listeners" : {
522                     "clicked" : " () => {\n    // create a new file in project..\n    \n    // what's the currently selected project...\n    var proj = _this.windowstate.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    \n     _this.windowstate.file_details.show(\n       f, this.el\n    );\n    \n    \n    return  ;    \n}"
523                    },
524                    "* pack" : false,
525                    "xtype" : "Button",
526                    "width_request" : 50,
527                    "$ xns" : "Gtk",
528                    "$ tooltip_text" : "\"Add File\"",
529                    "height_request" : 50,
530                    "items" : [
531                     {
532                      "* pack" : "set_image",
533                      "xtype" : "Image",
534                      "utf8 icon_name" : "document-new",
535                      "$ xns" : "Gtk"
536                     }
537                    ]
538                   }
539                  ]
540                 }
541                ]
542               },
543               {
544                "id" : "delprojectbutton",
545                "* init" : "this.el.set_size(50,50);",
546                "xtype" : "Actor",
547                "* pack" : "add_child",
548                "$ xns" : "Clutter",
549                "items" : [
550                 {
551                  "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);",
552                  "* pack" : "add_child",
553                  "xtype" : "Actor",
554                  "$ xns" : "GtkClutter",
555                  "items" : [
556                   {
557                    "listeners" : {
558                     "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.windowstate.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.windowstate.left_projects.is_loaded =  false;\n    _this.windowstate.left_projects.load();\n    _this.windowstate.clutterfiles.clearFiles();\n\n}"
559                    },
560                    "* pack" : false,
561                    "xtype" : "Button",
562                    "width_request" : 50,
563                    "$ xns" : "Gtk",
564                    "$ tooltip_text" : "\"Delete Project\"",
565                    "height_request" : 50,
566                    "items" : [
567                     {
568                      "utf8 icon_name" : "user-trash",
569                      "* pack" : "set_image",
570                      "xtype" : "Image",
571                      "$ xns" : "Gtk"
572                     }
573                    ]
574                   }
575                  ]
576                 }
577                ]
578               }
579              ]
580             }
581            ]
582           }
583          ]
584         }
585        ]
586       },
587       {
588        "bool homogeneous" : false,
589        "xtype" : "HBox",
590        "* pack" : "pack_end,false,true,0",
591        "$ xns" : "Gtk",
592        "items" : [
593         {
594          "* pack" : "pack_start,true,true,0",
595          "xtype" : "Label",
596          "string label" : "   ",
597          "$ xns" : "Gtk"
598         },
599         {
600          "bool show_text" : true,
601          "id" : "statusbar",
602          "ulong handler_id" : "-1",
603          "* init" : "{\n     this.handler_id = Resources.singleton().updateProgress.connect((pos,total) => {\n        if (pos < 1) {\n            this.el.hide();\n            _this.mainpane.el.set_sensitive(true);\n            \n            return;\n        }\n         _this.mainpane.el.set_sensitive(false);\n         this.el.show();\n         this.el.set_fraction ((1.0f * pos) / (1.0f * total));\n         this.el.set_text(\"Fetching Resource : %s/%s\".printf(pos.to_string(), total.to_string()));\n       \n     });\n}\n",
604          "xtype" : "ProgressBar",
605          "* pack" : "pack_start,true,true,0",
606          "$ xns" : "Gtk"
607         },
608         {
609          "* pack" : "pack_end,false,true,0",
610          "xtype" : "MenuBar",
611          "$ xns" : "Gtk",
612          "items" : [
613           {
614            "xtype" : "MenuItem",
615            "string label" : "Compile Status:",
616            "* pack" : "add",
617            "$ xns" : "Gtk"
618           },
619           {
620            "listeners" : {
621             "button_press_event" : "() => {\n    if (this.popup == null) {\n        this.popup = new Xcls_ValaCompileErrors();\n        this.popup.window = _this;\n    }\n   \n    \n    this.popup.show(this.notices, this.el);\n    return true;\n}"
622            },
623            "bool always_show_image" : true,
624            "id" : "statusbar_errors",
625            "| void setNotices" : "(Json.Object nots, int qty) {\n    this.el.show();\n    this.el.label = qty.to_string() + \" Errors\";\n    this.notices = nots;\n\n}\n",
626            "Xcls_ValaCompileErrors popup" : "",
627            "string label" : "Errors",
628            "* pack" : "add",
629            "xtype" : "ImageMenuItem",
630            "# Json.Object notices" : "new Json.Object() ",
631            "$ xns" : "Gtk",
632            "items" : [
633             {
634              "xtype" : "Image",
635              "utf8 icon_name" : "dialog-error",
636              "* pack" : "set_image",
637              "$ xns" : "Gtk"
638             }
639            ]
640           },
641           {
642            "listeners" : {
643             "button_press_event" : "() => {\n    if (this.popup == null) {\n        this.popup = new Xcls_ValaCompileErrors();\n        this.popup.window = _this;\n    }\n    \n    this.popup.show(this.notices, this.el);\n    return true;\n}"
644            },
645            "bool always_show_image" : true,
646            "id" : "statusbar_warnings",
647            "| void setNotices" : "(Json.Object nots, int qty) {\n    this.el.show();\n    this.el.label = qty.to_string() + \" Warnings\";\n    this.notices = nots;\n\n}\n",
648            "Xcls_ValaCompileErrors popup" : "",
649            "* pack" : "add",
650            "string label" : "Warnings",
651            "xtype" : "ImageMenuItem",
652            "# Json.Object notices" : "new Json.Object()",
653            "$ xns" : "Gtk",
654            "items" : [
655             {
656              "* pack" : "set_image",
657              "xtype" : "Image",
658              "utf8 icon_name" : "dialog-warning",
659              "$ xns" : "Gtk"
660             }
661            ]
662           },
663           {
664            "listeners" : {
665             "button_press_event" : "() => {\n    if (this.popup == null) {\n        this.popup = new Xcls_ValaCompileErrors();\n        this.popup.window = _this;\n    }\n    \n    \n    this.popup.show(this.notices, this.el);\n    return true;\n}"
666            },
667            "bool always_show_image" : true,
668            "id" : "statusbar_depricated",
669            "| void setNotices" : "(Json.Object nots, int qty) {\n    this.el.show();\n    this.el.label = qty.to_string() + \" Depricated\";\n    this.notices = nots;\n\n}\n",
670            "Xcls_ValaCompileErrors popup" : "",
671            "string label" : "Depricated",
672            "* pack" : "add",
673            "xtype" : "ImageMenuItem",
674            "# Json.Object notices" : "new Json.Object()",
675            "$ xns" : "Gtk",
676            "items" : [
677             {
678              "utf8 icon_name" : "dialog-information",
679              "* pack" : "set_image",
680              "xtype" : "Image",
681              "$ xns" : "Gtk"
682             }
683            ]
684           }
685          ]
686         }
687        ]
688       }
689      ]
690     }
691    ]
692   }
693  ]
694 }