1 static Xcls_ValaCompileResults _ValaCompileResults;
3 public class Xcls_ValaCompileResults : Object
6 private Xcls_ValaCompileResults _this;
8 public static Xcls_ValaCompileResults singleton()
10 if (_ValaCompileResults == null) {
11 _ValaCompileResults= new Xcls_ValaCompileResults();
13 return _ValaCompileResults;
15 public Xcls_compile_view compile_view;
16 public Xcls_compile_tree compile_tree;
17 public Xcls_compile_result_store compile_result_store;
18 public Xcls_renderer renderer;
21 public Xcls_MainWindow window;
23 public JsRender.JsRender? file;
24 public Json.Object notices;
27 public Xcls_ValaCompileResults()
30 this.el = new Gtk.Popover( null );
36 this.el.width_request = 900;
37 this.el.height_request = 800;
39 this.el.position = Gtk.PositionType.TOP;
40 var child_0 = new Xcls_compile_view( _this );
42 this.el.add ( child_0.el );
45 // user defined functions
46 public void show (Json.Object tree, Gtk.Widget onbtn) {
52 //print("looking for %s\n", id);
53 // loop through parent childnre
56 var store = this.compile_result_store.el;
61 tree.foreach_member((obj, file, node) => {
62 // id line "display text", file
64 var title = GLib.Path.get_basename(GLib.Path.get_dirname( file)) + "/" + GLib.Path.get_basename( file) ;
66 print("Add file %s", title);
67 store.append(out iter, null);
68 var lines = tree.get_object_member(file);
69 title += " (" + lines.get_size().to_string() + ")";
70 store.set(iter, 0, file, 1, 0, 2, title, 3, file,-1);
72 lines.foreach_member((obja, line, nodea) => {
74 var ar = lines.get_array_member(line);
75 for (var i = 0 ; i < ar.get_length(); i++) {
76 msg += (msg.length > 0) ? "\n" : "";
77 msg += ar.get_string_element(i);
80 print("Add line %s", line);
81 store.append(out citer, iter);
85 2, GLib.Markup.escape_text(line + ": " + msg),
95 this.window.el.get_size(out w, out h);
97 // left tree = 250, editor area = 500?
99 var new_w = int.min(250, w-100);
100 if (new_w > (w-100)) {
103 this.el.set_size_request( int.max(100, new_w), int.max(100, h-120));
107 if (this.el.relative_to == null) {
108 this.el.set_relative_to(onbtn);
112 while(Gtk.events_pending()) {
113 Gtk.main_iteration();
115 // this.hpane.el.set_position( 0);
117 public class Xcls_compile_view : Object
120 private Xcls_ValaCompileResults _this;
126 public Xcls_compile_view(Xcls_ValaCompileResults _owner )
129 _this.compile_view = this;
130 this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
134 // set gobject values
135 this.el.homogeneous = false;
136 var child_0 = new Xcls_ScrolledWindow3( _this );
138 this.el.pack_end ( child_0.el , true,true,0 );
141 // user defined functions
143 public class Xcls_ScrolledWindow3 : Object
145 public Gtk.ScrolledWindow el;
146 private Xcls_ValaCompileResults _this;
152 public Xcls_ScrolledWindow3(Xcls_ValaCompileResults _owner )
155 this.el = new Gtk.ScrolledWindow( null, null );
159 // set gobject values
160 var child_0 = new Xcls_compile_tree( _this );
162 this.el.add ( child_0.el );
167 this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
173 // user defined functions
175 public class Xcls_compile_tree : Object
177 public Gtk.TreeView el;
178 private Xcls_ValaCompileResults _this;
184 public Xcls_compile_tree(Xcls_ValaCompileResults _owner )
187 _this.compile_tree = this;
188 this.el = new Gtk.TreeView();
192 // set gobject values
193 var child_0 = new Xcls_compile_result_store( _this );
195 this.el.set_model ( child_0.el );
196 var child_1 = new Xcls_column( _this );
198 this.el.append_column ( child_1.el );
203 var description = new Pango.FontDescription();
204 description.set_size(8000);
205 this.el.override_font(description);
210 this.el.button_press_event.connect( ( ev) => {
212 Gtk.TreeViewColumn col;
216 if (!this.el.get_path_at_pos((int)ev.x, (int) ev.y, out path, out col, out cell_x, out cell_y )) {
217 print("nothing selected on click");
219 return false; //not on a element.
224 if (ev.type != Gdk.EventType.2BUTTON_PRESS || ev.button != 1 ) {
231 var mod = _this.compile_result_store.el;
232 mod.get_iter (out iter, path);
238 _this.compile_result_store.el.get_value(iter, 3, out value);
239 var fname = (string)value;
241 //_this.compile_result_store.el.get_value(iter, 1, out lvalue);
242 //var line = (int) lvalue;
247 var regex = new Regex("\\.vala$");
250 bjsf = regex.replace(fname,fname.length , 0 , ".bjs");
251 } catch (GLib.RegexError e) {
254 var p = _this.window.project;
258 var jsr = p.getByPath(bjsf);
260 _this.window.windowstate.fileViewOpen(jsr);
266 var pf = JsRender.JsRender.factory("PlainFile", p, fname);
267 _this.window.windowstate.fileViewOpen(pf);
269 // try hiding the left nav..
276 // user defined functions
278 public class Xcls_compile_result_store : Object
280 public Gtk.TreeStore el;
281 private Xcls_ValaCompileResults _this;
287 public Xcls_compile_result_store(Xcls_ValaCompileResults _owner )
290 _this.compile_result_store = this;
291 this.el = new Gtk.TreeStore( 4, typeof(string), typeof(int), typeof(string), typeof(string) );
295 // set gobject values
298 // user defined functions
301 public class Xcls_column : Object
303 public Gtk.TreeViewColumn el;
304 private Xcls_ValaCompileResults _this;
310 public Xcls_column(Xcls_ValaCompileResults _owner )
313 this.el = new Gtk.TreeViewColumn();
317 // set gobject values
318 this.el.title = "Compile output";
319 var child_0 = new Xcls_renderer( _this );
321 this.el.pack_start ( child_0.el , true );
326 this.el.add_attribute(_this.renderer.el , "markup", 2 );
331 // user defined functions
333 public class Xcls_renderer : Object
335 public Gtk.CellRendererText el;
336 private Xcls_ValaCompileResults _this;
342 public Xcls_renderer(Xcls_ValaCompileResults _owner )
345 _this.renderer = this;
346 this.el = new Gtk.CellRendererText();
350 // set gobject values
353 // user defined functions