src/Builder4/ValaCompileErrors.bjs
[app.Builder.js] / src / Builder4 / ValaCompileErrors.bjs
1 {
2  "name" : "ValaCompileErrors",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/alan/gitlive/app.Builder.js/src/Builder4/ValaCompileErrors.bjs",
6  "permname" : "",
7  "modOrder" : "",
8  "build_module" : "builder",
9  "items" : [
10   {
11    "listeners" : {
12     "closed" : "() => {\n  /*  if (this.active) {\n        this.el.show();\n        return;\n    }\n   */\n}"
13    },
14    "int height_request" : 800,
15    "id" : "ValaCompileErrors",
16    "Xcls_MainWindow window" : "",
17    "| void show" : "(Json.Object tree, Gtk.Widget onbtn) {\n\n        \n        this.file = null;\n        this.notices = tree;\n       \n         //print(\"looking for %s\\n\", id);\n        // loop through parent childnre\n          \n        \n        var store = this.compile_result_store.el;    \n        \n        store.clear();\n     \n        \n        tree.foreach_member((obj, file, node) => {\n            // id line \"display text\", file\n            \n            var title = GLib.Path.get_basename(GLib.Path.get_dirname( file)) + \"/\" +  GLib.Path.get_basename( file) ;\n            Gtk.TreeIter iter;\n            print(\"Add file %s\", title);\n            store.append(out iter, null);\n            var lines = tree.get_object_member(file);\n            title += \" (\" + lines.get_size().to_string() + \")\";\n            store.set(iter, 0, file, 1, 0, 2, title, 3, file,-1);\n            \n            lines.foreach_member((obja, line, nodea) => {\n                var msg  = \"\";\n                var ar = lines.get_array_member(line);\n                for (var i = 0 ; i < ar.get_length(); i++) {\n    \t\t    msg += (msg.length > 0) ? \"\\n\" : \"\";\n    \t\t    msg += ar.get_string_element(i);\n\t        }\n                Gtk.TreeIter citer;  \n                print(\"Add line %s\", line);\n                store.append(out citer, iter);\n                store.set(citer, \n                    0, file + \":\" + line, \n                    1, int.parse(line), \n                    2, GLib.Markup.escape_text(line + \": \" + msg), \n                    3, file,-1);\n            \n            });\n            \n            \n        \n        });\n        \n    int w,h;\n    this.window.el.get_size(out w, out h);\n    \n    // left tree = 250, editor area = 500?\n    \n    var new_w = int.min(250, w-100);\n    if (new_w > (w-100)) {\n        new_w = w-100;\n    }\n    this.el.set_size_request( int.max(100, new_w), int.max(100, h-120));\n\n    \n\n    if (this.el.relative_to == null) {\n        this.el.set_relative_to(onbtn);\n    }\n    this.el.show_all();\n   \n    while(Gtk.events_pending()) { \n            Gtk.main_iteration();\n    }       \n //   this.hpane.el.set_position( 0);\n}\n",
18    "xtype" : "Popover",
19    "Gtk.PositionType position" : "Gtk.PositionType.TOP",
20    "bool active" : false,
21    "int width_request" : 900,
22    "$ xns" : "Gtk",
23    "JsRender.JsRender? file" : "",
24    "Json.Object notices" : "",
25    "bool modal" : false,
26    "items" : [
27     {
28      "id" : "compile_view",
29      "xtype" : "VBox",
30      "* pack" : "add",
31      "gboolean homogeneous" : false,
32      "$ xns" : "Gtk",
33      "items" : [
34       {
35        "xtype" : "HBox",
36        "* pack" : "pack_start,false,false,0",
37        "$ xns" : "Gtk",
38        "items" : [
39         {
40          "* pack" : "pack_start,true,true,0",
41          "xtype" : "Button",
42          "$ xns" : "Gtk",
43          "utf8 label" : "Compile and Run "
44         }
45        ]
46       },
47       {
48        "* init" : "{\n this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n \n\n}\n",
49        "xtype" : "ScrolledWindow",
50        "* pack" : "add",
51        "$ xns" : "Gtk",
52        "items" : [
53         {
54          "listeners" : {
55           "button_press_event" : "  ( ev)  => {\n \n    Gtk.TreeViewColumn col;\n    int cell_x;\n    int cell_y;\n    Gtk.TreePath path;\n    if (!this.el.get_path_at_pos((int)ev.x, (int) ev.y, out path, out col, out cell_x, out cell_y )) {\n        print(\"nothing selected on click\");\n        \n        return false; //not on a element.\n    }\n    \n     \n     // right click.\n     if (ev.type == Gdk.EventType.2BUTTON_PRESS  && ev.button == 1  ) {    \n        // show popup!.   \n          \n         \n        return false;\n    }\n  }\n    ",
56           "cursor_changed" : "() => {\n    var sel = this.el.get_selection();\n\n    if (sel.count_selected_rows() < 1) {\n\n        print(\"selected rows < 1\\n\");\n        //??this.mo \n        return  ;\n    }\n        \n        //console.log('changed');\n     \n     Gtk.TreeIter iter;\n     Gtk.TreeModel mod;\n    sel.get_selected(out mod, out iter);\n    /*\n     store.set(citer, \n            0, file + \":\" + line, \n            1, int.parse(line), \n            2, GLib.Markup.escape_text(line + \": \" + msg), \n            3, file,-1);\n    \n    });\n    */\n    \n    \n    \n    // var val = \"\";\n    GLib.Value value;\n    _this.compile_result_store.el.get_value(iter, 3, out value);\n    var fname = (string)value;\n    GLib.Value lvalue;\n    _this.compile_result_store.el.get_value(iter, 1, out lvalue);\n    var line = (int) lvalue;\n    \n    \n    \n \n    \n    \n    print (\"loadfile %s : %d\", fname,line);\n    \n   // _this.sourceview.loadFile(fname, line);\n    /*\n        var f = _this.sourceview.curfname;\n                \n        Regex regex = new Regex(\"\\\\.vala$\");\n    \n        var bjsf = regex.replace(f,f.length , 0 , \".bjs\");\n        \n        var p = _this.window.project;\n        \n        \n        \n        var jsr = p.getByPath(bjsf);\n        if (jsr != null) {\n            _this.window.windowstate.fileViewOpen(jsr);\n            \n            return;\n        \n        }\n         */   \n            \n}\n             "
57          },
58          "id" : "compile_tree",
59          "* init" : "{\n var description = new Pango.FontDescription();\n    description.set_size(8000);\n    this.el.modify_font(description);\n\n}\n",
60          "* pack" : "add",
61          "xtype" : "TreeView",
62          "$ xns" : "Gtk",
63          "items" : [
64           {
65            "gint n_columns" : 4,
66            "id" : "compile_result_store",
67            "columns" : "  typeof(string), typeof(int), typeof(string), typeof(string) ",
68            "* pack" : "set_model",
69            "xtype" : "TreeStore",
70            "$ xns" : "Gtk"
71           },
72           {
73            "utf8 title" : "Compile output",
74            "* init" : "{\n  this.el.add_attribute(_this.renderer.el , \"markup\", 2 );\n \n}\n",
75            "xtype" : "TreeViewColumn",
76            "* pack" : "append_column",
77            "string id" : "column",
78            "$ xns" : "Gtk",
79            "items" : [
80             {
81              "id" : "renderer",
82              "* pack" : "pack_start,true",
83              "xtype" : "CellRendererText",
84              "$ xns" : "Gtk"
85             }
86            ]
87           }
88          ]
89         }
90        ]
91       }
92      ]
93     }
94    ]
95   }
96  ]
97 }