2 "build_module" : "builder",
6 "Gtk.PositionType position" : "Gtk.PositionType.TOP",
7 "JsRender.JsRender? file" : "",
8 "Json.Object notices" : "",
9 "Xcls_MainWindow window" : "",
10 "bool active" : false,
11 "bool hexpand" : false,
13 "id" : "ValaCompileErrors",
14 "int height_request" : 800,
15 "int width_request" : 900,
20 "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
21 "bool hexpand" : false,
22 "gboolean homogeneous" : false,
23 "id" : "compile_view",
27 "* pack" : "pack_start,false,false,0",
28 "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
32 "* pack" : "pack_start,true,true,0",
33 "utf8 label" : "Compile and Run ",
43 " this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);",
49 "* pack" : "pack_end,true,true,0",
55 " var description = new Pango.FontDescription();",
56 " description.set_size(8000);",
57 " this.el.override_font(description);",
63 "id" : "compile_tree",
67 "* pack" : "set_model",
68 "columns" : " typeof(string), typeof(int), typeof(string), typeof(string) ",
70 "id" : "compile_result_store",
77 " this.el.add_attribute(_this.renderer.el , \"markup\", 2 );",
82 "* pack" : "append_column",
86 "* pack" : "pack_start,true",
88 "xtype" : "CellRendererText"
91 "string id" : "column",
92 "utf8 title" : "Compile output",
93 "xtype" : "TreeViewColumn"
97 "button_press_event" : [
100 " Gtk.TreeViewColumn col;",
103 " Gtk.TreePath path;",
104 " if (!this.el.get_path_at_pos((int)ev.x, (int) ev.y, out path, out col, out cell_x, out cell_y )) {",
105 " print(\"nothing selected on click\");",
107 " return false; //not on a element.",
112 " if (ev.type != Gdk.EventType.2BUTTON_PRESS || ev.button != 1 ) { ",
118 " Gtk.TreeIter iter;",
119 " var mod = _this.compile_result_store.el;",
120 " mod.get_iter (out iter, path);",
124 " // var val = \"\";",
125 " GLib.Value value;",
126 " _this.compile_result_store.el.get_value(iter, 3, out value);",
127 " var fname = (string)value;",
128 " GLib.Value lvalue;",
129 " _this.compile_result_store.el.get_value(iter, 1, out lvalue);",
130 " var line = (int) lvalue;",
132 " print(\"open %s @ %d\\n\", fname, line);",
137 " var regex = new Regex(\"\\\\.vala$\");",
140 " bjsf = regex.replace(fname,fname.length , 0 , \".bjs\");",
141 " } catch (GLib.RegexError e) {",
144 " var p = _this.window.project;",
148 " var jsr = p.getByPath(bjsf);",
149 " if (jsr != null) {",
150 " _this.window.windowstate.fileViewOpen(jsr, true, line);",
156 " var pf = JsRender.JsRender.factory(\"PlainFile\", p, fname);",
157 " _this.window.windowstate.fileViewOpen(pf, true, line);",
159 " // try hiding the left nav..",
170 "xtype" : "ScrolledWindow"
178 "(Json.Object tree, Gtk.Widget onbtn) {",
181 " this.file = null;",
182 " this.notices = tree;",
184 " //print(\"looking for %s\\n\", id);",
185 " // loop through parent childnre",
188 " var store = this.compile_result_store.el; ",
193 " tree.foreach_member((obj, file, node) => {",
194 " // id line \"display text\", file",
196 " var title = GLib.Path.get_basename(GLib.Path.get_dirname( file)) + \"/\" + GLib.Path.get_basename( file) ;",
197 " Gtk.TreeIter iter;",
198 " print(\"Add file %s\", title);",
199 " store.append(out iter, null);",
200 " var lines = tree.get_object_member(file);",
201 " title += \" (\" + lines.get_size().to_string() + \")\";",
202 " store.set(iter, 0, file, 1, -1, 2, title, 3, file,-1);",
204 " lines.foreach_member((obja, line, nodea) => {",
206 " var ar = lines.get_array_member(line);",
207 " for (var i = 0 ; i < ar.get_length(); i++) {",
208 "\t\t msg += (msg.length > 0) ? \"\\n\" : \"\";",
209 "\t\t msg += ar.get_string_element(i);",
211 " Gtk.TreeIter citer; ",
212 " print(\"Add line %s\", line);",
213 " store.append(out citer, iter);",
214 " store.set(citer, ",
215 " 0, file + \":\" + line, ",
216 " 1, int.parse(line), ",
217 " 2, GLib.Markup.escape_text(line + \": \" + msg), ",
227 " this.window.el.get_size(out w, out h);",
229 " // left tree = 250, editor area = 500?",
232 " var new_w = int.min(450, w-100);",
233 " if (new_w > (w-100)) {",
236 " this.el.set_size_request( int.max(100, new_w), int.max(100, h-120));",
240 " if (this.el.relative_to == null) {",
241 " this.el.set_relative_to(onbtn);",
243 " this.el.show_all();",
245 " while(Gtk.events_pending()) { ",
246 " Gtk.main_iteration();",
248 " // this.hpane.el.set_position( 0);",
255 "name" : "ValaCompileErrors",
257 "path" : "/home/alan/gitlive/roobuilder/src/Builder4/ValaCompileErrors.bjs",