Builder4/Editor.bjs
[app.Builder.js] / Builder4 / Editor.bjs
1 {
2     "id": "file-gtk-14",
3     "name": "Editor",
4     "parent": "",
5     "title": false,
6     "path": "/home/alan/gitlive/app.Builder.js/Builder4/Editor.bjs",
7     "items": [
8         {
9             "listeners": {
10                 "delete_event": "function (self, event) {\n    if (!this.get('/Editor.RightEditor').save()) {\n        // no hiding with errors.\n        return true;\n    }\n    this.el.hide();\n    this.get('/Editor').activePath = false;\n    return true;\n}\n/*--\n\n(event) => {\n    if (!Editor.RightEditor.save()) {\n        // no hiding with errors.\n        return true;\n    }\n    _this.hide();\n    _this.activePath = false;\n    return true;\n}\n\n*/",
11                 "configure_event": "function (self, object) {\n    this.pos = this.el.get_position();\n\n    return false;\n}\n/*--\n (self, object) {\n    _this.pos = this.get_position();\n\n\n    return false;\n}\n*/\n",
12                 "show": "function (self) {\n    if (this.pos) {\n        this.el.set_uposition(this.pos.root_x,this.pos.root_y);\n    }\n}\n/*--\n () => {\n    if (this.pos) {\n        this.set_uposition(this.pos_root_x,this.pos_root_y);\n    }\n}\n\n*/"
13             },
14             ".pos_root_y": "int",
15             ".pos": "bool",
16             ".pos_root_x": "int",
17             "height_request": 300,
18             "id": "EditorWindow",
19             "title": "Application Builder - Editor",
20             "width_request": 500,
21             "xtype": "Window",
22             "|init": "function() {\n    XObject.prototype.init.call(this);\n   // this.show_all();\n}\n",
23             "|save": "function (self, event) {\n    if (!this.get('/Editor.RightEditor').save()) {\n        // no hiding with errors.\n        return true;\n    }\n    this.get('/Editor').activePath = false;\n    this.el.hide();\n    return true;\n}",
24             "|xns": "Gtk",
25             "items": [
26                 {
27                     "pack": "add",
28                     "xtype": "VBox",
29                     "|xns": "Gtk",
30                     "items": [
31                         {
32                             "pack": "pack_start,false,true",
33                             "xtype": "Toolbar",
34                             "|xns": "Gtk",
35                             "items": [
36                                 {
37                                     "listeners": {
38                                         "clicked": "function (self) {\n\n  this.get('/Editor.RightEditor').save();\n}"
39                                     },
40                                     "id": "save_button",
41                                     "label": "Save",
42                                     "xtype": "ToolButton",
43                                     "|xns": "Gtk"
44                                 }
45                             ]
46                         },
47                         {
48                             "id": "RightEditor",
49                             "pack": "add",
50                             "xtype": "ScrolledWindow",
51                             "|save": "function() {\n    // make sure we have an active path..\n     if (!this.get('/Editor').activePath) {\n        return true;\n     }\n     \n     var str = this.get('/Editor.buffer').toString();\n     if (!this.get('/Editor.buffer').checkSyntax()) {\n         this.get('/StandardErrorDialog').show(\"Fix errors in code and save..\"); \n         return false;\n     }\n     \n     this.get('/LeftPanel.model').changed(  str , false);\n     this.get('/Editor').dirty = false;\n     this.get('/Editor.save_button').el.sensitive = false;\n     return true;\n}\n",
52                             "|xns": "Gtk",
53                             "items": [
54                                 {
55                                     "listeners": {
56                                         "key_release_event": "function (self, event) {\n    \n    if (event.key.keyval == 115 && (event.key.state & Gdk.ModifierType.CONTROL_MASK ) ) {\n        print(\"SAVE: ctrl-S  pressed\");\n        this.save();\n        return false;\n    }\n   // print(event.key.keyval)\n    \n    return false;\n}"
57                                     },
58                                     "id": "view",
59                                     "indent_width": 4,
60                                     "pack": "add",
61                                     "xtype": "View",
62                                     "|auto_indent": true,
63                                     "|init": "function() {\n    XObject.prototype.init.call(this);\n     var description = Pango.Font.description_from_string(\"monospace\")\n    description.set_size(8000);\n    this.el.modify_font(description);\n\n}\n",
64                                     "|insert_spaces_instead_of_tabs": true,
65                                     "|load": "function(str) {\n\n// show the help page for the active node..\n   //this.get('/Help').show();\n\n\n  // this.get('/BottomPane').el.set_current_page(0);\n    this.el.get_buffer().set_text(str, str.length);\n    var lm = GtkSource.LanguageManager.get_default();\n    \n    this.el.get_buffer().set_language(lm.get_language('js'));\n    var buf = this.el.get_buffer();\n    var cursor = buf.get_mark(\"insert\");\n    var iter= new Gtk.TextIter;\n    buf.get_iter_at_mark(iter, cursor);\n    iter.set_line(1);\n    iter.set_line_offset(4);\n    buf.move_mark(cursor, iter);\n    \n    \n    cursor = buf.get_mark(\"selection_bound\");\n    iter= new Gtk.TextIter;\n    buf.get_iter_at_mark(iter, cursor);\n    iter.set_line(1);\n    iter.set_line_offset(4);\n    buf.move_mark(cursor, iter);\n    this.get('/Editor').dirty = false;\n    this.el.grab_focus();\n     this.get('/Editor.save_button').el.sensitive = false;\n}",
66                                     "|save": "function() {\n    \n    return this.get('/Editor.RightEditor').save();\n}\n",
67                                     "|show_line_numbers": true,
68                                     "|xns": "GtkSource",
69                                     "items": [
70                                         {
71                                             "listeners": {
72                                                 "changed": "function (self) {\n\n    if(this.checkSyntax()) {\n        this.get('/Editor.save_button').el.sensitive = true;\n    }\n   // print(\"EDITOR CHANGED\");\n    this.get('/Editor').dirty = true;\n\n    // this.get('/LeftPanel.model').changed(  str , false);\n    return false;\n}"
73                                             },
74                                             "id": "buffer",
75                                             "pack": "set_buffer",
76                                             "xtype": "Buffer",
77                                             "|checkSyntax": "function() {\n    var str = this.toString();\n    var res = '';\n    try {\n      //  print('var res = ' + str);\n        Seed.check_syntax('var res = ' + str);\n        \n       \n    } catch (e) {\n        \n        this.get('/RightEditor.view').el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({\n            red: 0xFFFF, green: 0xCCCC , blue : 0xCCCC\n           }));\n        print(\"SYNTAX ERROR IN EDITOR\");   \n        print(e);\n        // print(str);\n        //console.dump(e);\n        return false;\n    }\n     this.get('/RightEditor.view').el.modify_base(Gtk.StateType.NORMAL, new Gdk.Color({\n        red: 0xFFFF, green: 0xFFFF , blue : 0xFFFF\n       }));\n    \n    return true;\n}\n",
78                                             "|toString": "function() {\n    \n    var s = new Gtk.TextIter();\n    var e = new Gtk.TextIter();\n    this.el.get_start_iter(s);\n    this.el.get_end_iter(e);\n    var ret = this.el.get_text(s,e,true);\n    //print(\"TO STRING? \" + ret);\n    return ret;\n}\n",
79                                             "|xns": "GtkSource"
80                                         }
81                                     ]
82                                 }
83                             ]
84                         }
85                     ]
86                 }
87             ]
88         }
89     ],
90     "permname": "",
91     "modOrder": ""
92 }