1 static Xcls_PopoverAddProp _PopoverAddProp;
3 public class Xcls_PopoverAddProp : Object
6 private Xcls_PopoverAddProp _this;
8 public static Xcls_PopoverAddProp singleton()
10 if (_PopoverAddProp == null) {
11 _PopoverAddProp= new Xcls_PopoverAddProp();
13 return _PopoverAddProp;
15 public Xcls_model model;
16 public Xcls_namecol namecol;
17 public Xcls_namerender namerender;
18 public Xcls_type type;
19 public Xcls_typerender typerender;
20 public Xcls_from from;
21 public Xcls_fromrender fromrender;
24 public JsRender.NodePropType ptype;
25 public signal void select (JsRender.NodeProp prop);
26 public Xcls_MainWindow mainwindow;
30 public Xcls_PopoverAddProp()
33 this.el = new Gtk.Popover( null );
39 this.el.width_request = 900;
40 this.el.height_request = 800;
41 this.el.hexpand = false;
43 this.el.position = Gtk.PositionType.RIGHT;
44 var child_0 = new Xcls_ScrolledWindow2( _this );
46 this.el.add ( child_0.el );
49 // user defined functions
50 public void show (Palete.Palete pal, JsRender.NodePropType ptype, string xtype, Gtk.Widget onbtn) {
52 /// what does this do?
53 //if (this.prop_or_listener != "" && this.prop_or_listener == prop_or_listener) {
54 // this.prop_or_listener = "";
63 this.model.el.clear();
66 var elementList = pal.getPropertiesFor( xtype, ptype);
68 //print ("GOT " + elementList.length + " items for " + fullpath + "|" + type);
69 // console.dump(elementList);
71 var miter = elementList.map_iterator();
72 while (miter.next()) {
73 var p = miter.get_value();
75 this.model.el.append(out iter);
77 var prop = p.toNodeProp();
81 this.model.el.set(iter,
83 1, prop.to_property_option_markup(),
84 2, prop.to_property_option_tooltip(),
91 this.model.el.set_sort_column_id(3,Gtk.SortType.ASCENDING);
97 this.mainwindow.el.get_size(out w, out h);
99 // left tree = 250, editor area = 500?
103 this.el.set_size_request( 550, h);
107 if (this.el.relative_to == null) {
108 this.el.set_relative_to(onbtn);
112 while(Gtk.events_pending()) {
113 Gtk.main_iteration(); // why?
115 // this.hpane.el.set_position( 0);
117 public void clear () {
118 this.model.el.clear();
120 public void hide () {
121 this.ptype = JsRender.NodePropType.NONE;
124 public class Xcls_ScrolledWindow2 : Object
126 public Gtk.ScrolledWindow el;
127 private Xcls_PopoverAddProp _this;
133 public Xcls_ScrolledWindow2(Xcls_PopoverAddProp _owner )
136 this.el = new Gtk.ScrolledWindow( null, null );
140 // set gobject values
141 this.el.shadow_type = Gtk.ShadowType.IN;
142 var child_0 = new Xcls_TreeView3( _this );
144 this.el.add ( child_0.el );
148 this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
151 // user defined functions
153 public class Xcls_TreeView3 : Object
155 public Gtk.TreeView el;
156 private Xcls_PopoverAddProp _this;
162 public Xcls_TreeView3(Xcls_PopoverAddProp _owner )
165 this.el = new Gtk.TreeView();
169 // set gobject values
170 this.el.tooltip_column = 2;
171 this.el.enable_tree_lines = true;
172 this.el.headers_visible = true;
173 var child_0 = new Xcls_model( _this );
175 this.el.set_model ( child_0.el );
176 var child_1 = new Xcls_namecol( _this );
178 this.el.append_column ( child_1.el );
179 var child_2 = new Xcls_type( _this );
181 this.el.append_column ( child_2.el );
182 var child_3 = new Xcls_from( _this );
184 this.el.append_column ( child_3.el );
189 var description = new Pango.FontDescription();
190 description.set_size(10000);
191 this.el.override_font(description);
193 this.el.get_selection().set_mode( Gtk.SelectionMode.SINGLE);
202 this.el.row_activated.connect( (path, column) => {
209 m.el.get_iter(out iter,path);
212 var prop = m.getValue(iter);
224 // user defined functions
226 public class Xcls_model : Object
228 public Gtk.ListStore el;
229 private Xcls_PopoverAddProp _this;
235 public Xcls_model(Xcls_PopoverAddProp _owner )
239 this.el = new Gtk.ListStore( 6,
240 typeof(JsRender.NodeProp), // 0 real key
241 typeof(string), // text display
242 typeof(string), // tooltip
243 typeof(string), // sortable string
244 typeof(string), // prop type
245 typeof(string) // from interface
251 // set gobject values
254 // user defined functions
255 public JsRender.NodeProp getValue (Gtk.TreeIter iter)
259 this.el.get_value(iter, 0, out value);
261 return (JsRender.NodeProp)value;
266 public class Xcls_namecol : Object
268 public Gtk.TreeViewColumn el;
269 private Xcls_PopoverAddProp _this;
275 public Xcls_namecol(Xcls_PopoverAddProp _owner )
278 _this.namecol = this;
279 this.el = new Gtk.TreeViewColumn();
283 // set gobject values
284 this.el.sort_column_id = 3;
285 this.el.title = "Double click to add";
286 var child_0 = new Xcls_namerender( _this );
288 this.el.pack_start ( child_0.el , true );
292 this.el.add_attribute(_this.namerender.el , "text", 1 );
294 this.el.add_attribute(_this.namerender.el , "tooltip", 2 );
297 // user defined functions
299 public class Xcls_namerender : Object
301 public Gtk.CellRendererText el;
302 private Xcls_PopoverAddProp _this;
308 public Xcls_namerender(Xcls_PopoverAddProp _owner )
311 _this.namerender = this;
312 this.el = new Gtk.CellRendererText();
316 // set gobject values
319 // user defined functions
323 public class Xcls_type : Object
325 public Gtk.TreeViewColumn el;
326 private Xcls_PopoverAddProp _this;
332 public Xcls_type(Xcls_PopoverAddProp _owner )
336 this.el = new Gtk.TreeViewColumn();
340 // set gobject values
341 this.el.sort_column_id = 4;
342 this.el.title = "Type";
343 var child_0 = new Xcls_typerender( _this );
345 this.el.pack_start ( child_0.el , true );
349 this.el.add_attribute(_this.typerender.el , "text", 4 );
352 // user defined functions
354 public class Xcls_typerender : Object
356 public Gtk.CellRendererText el;
357 private Xcls_PopoverAddProp _this;
363 public Xcls_typerender(Xcls_PopoverAddProp _owner )
366 _this.typerender = this;
367 this.el = new Gtk.CellRendererText();
371 // set gobject values
374 // user defined functions
378 public class Xcls_from : Object
380 public Gtk.TreeViewColumn el;
381 private Xcls_PopoverAddProp _this;
387 public Xcls_from(Xcls_PopoverAddProp _owner )
391 this.el = new Gtk.TreeViewColumn();
395 // set gobject values
396 this.el.sort_column_id = 5;
397 this.el.title = "From";
398 var child_0 = new Xcls_fromrender( _this );
400 this.el.pack_start ( child_0.el , true );
404 this.el.add_attribute(_this.fromrender.el , "text", 5);
407 // user defined functions
409 public class Xcls_fromrender : Object
411 public Gtk.CellRendererText el;
412 private Xcls_PopoverAddProp _this;
418 public Xcls_fromrender(Xcls_PopoverAddProp _owner )
421 _this.fromrender = this;
422 this.el = new Gtk.CellRendererText();
426 // set gobject values
429 // user defined functions