1 //<Script type="text/javascript">
4 GLib = imports.gi.GLib;
5 GObject = imports.gi.GObject;
6 Pango = imports.gi.Pango ;
10 XObject = imports.XObject.XObject;
11 console = imports.console;
14 Roo = imports.Builder.Provider.Palete.Roo.Roo;
20 * Properties and events tree - that hides and shows when you press buttons on the left....
24 MidPropTree = new XObject({
27 xtype: Gtk.ScrolledWindow,
29 pack : [ 'pack_end', false, true, 0 ],
31 activeElement : false, // used by left tree to set what list to show.
32 shadow_type : Gtk.ShadowType.IN,
34 XObject.prototype.init.call(this);
35 this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
36 this.el.set_size_request ( 150, -1 );
40 hideWin : function() {
46 var Window = imports.Builder.Window.Window;
47 if (Window.get('left').el.position < 160) {
50 Window.get('left').el.position = Window.get('left').el.position - 150;
61 enable_tree_lines : true,
63 headers_visible : false,
64 // selection -- set by init..
66 XObject.prototype.init.call(this);
70 this.selection = this.el.get_selection();
71 this.selection.set_mode( Gtk.SelectionMode.SINGLE);
75 var description = new Pango.FontDescription.c_new();
76 description.set_size(8000);
77 this.el.modify_font(description);
79 // this.column.add_attribute(this.column.items[1], "text", 1);
87 'cursor-changed' : function () {
88 var iter = new Gtk.TreeIter();
90 //console.log('changed');
91 var m = this.get('model');
92 var s = this.selection;
93 s.get_selected(m.el, iter);
94 var tp = m.el.get_path(iter).to_string();
99 var key = m.getValue(tp, 0);
101 var type = m.getValue(tp, 1);
102 var skel = m.getValue(tp, 3);
103 var etype = m.getValue(tp, 5);
106 MidPropTree.hideWin();
107 var LeftPanel = imports.Builder.LeftPanel.LeftPanel;
108 if (type == 'function') {
110 if (etype != 'events') {
114 LeftPanel.get('model').add({
123 if (type.indexOf('.') > -1 ||
128 LeftPanel.get('model').add( {
142 pack : [ 'set_model' ],
143 xtype : Gtk.ListStore,
146 XObject.prototype.init.call(this);
147 this.el.set_column_types ( 6, [
148 GObject.TYPE_STRING, // real key
149 GObject.TYPE_STRING, // real type
150 GObject.TYPE_STRING, // docs ?
151 GObject.TYPE_STRING, // visable desc
152 GObject.TYPE_STRING, // function desc
153 GObject.TYPE_STRING // element type (event|prop)
158 getValue : function(treepath, col)
160 var tp = new Gtk.TreePath.from_string (treepath);
161 var iter = new Gtk.TreeIter();
162 this.el.get_iter (iter, tp);
163 var value = new GObject.Value('');
164 this.el.get_value(iter, col, value);
173 var LeftTree = imports.Builder.LeftTree.LeftTree;
174 var fullpath = LeftTree.get('model').file.guessName(ar);
175 var palete = LeftTree.getPaleteProvider();
178 this.currentData = false;
179 if (!fullpath.length) {
182 palete.getProperties()
184 this.currentData = Roo.proplist[fullpath];
194 showData : function (type)
197 if (!MidPropTree.activeElement || !type) {
198 return; // no active element
200 var LeftTree = imports.Builder.LeftTree.LeftTree;
201 var fullpath = LeftTree.get('model').file.guessName(MidPropTree.activeElement);
202 var palete = LeftTree.getPaleteProvider();
206 Seed.print('Showing right?');
207 if (!MidPropTree.shown) {
208 var Window = imports.Builder.Window.Window;
209 Window.get('left').el.position = Window.get('left').el.position + 150;
210 MidPropTree.el.show();
211 MidPropTree.shown = true;
214 var elementList = palete.getPropertiesFor(fullpath, type);
215 print ("GOT " + elementList.length + " items for " + fullpath + "|" + type);
216 console.dump(elementList);
219 var iter = new Gtk.TreeIter();
220 for(var i =0 ; i < elementList.length; i++) {
221 var p=elementList[i];
222 this.el.append(iter);
223 // console.log( '<b>' + p.name +'</b> ['+p.type+']');
224 //GObject.TYPE_STRING, // real key
225 // GObject.TYPE_STRING, // real type
226 // GObject.TYPE_STRING, // docs ?
227 // GObject.TYPE_STRING // func def?
230 this.el.set_value(iter, 0, p.name);
231 this.el.set_value(iter, 1, p.type);
232 this.el.set_value(iter, 2, '<span size="small"><b>' + p.name +'</b> ['+p.type+']</span>' + "\n" + p.desc);
233 this.el.set_value(iter, 3, p.sig ? p.sig : '');
234 this.el.set_value(iter, 4, '<span size="small"><b>' + p.name +'</b> ['+p.type+']</span>');
235 this.el.set_value(iter, 5, type);
250 xtype: Gtk.TreeViewColumn,
251 pack : ['append_column'],
253 XObject.prototype.init.call(this);
256 this.el.add_attribute(this.items[0].el , 'markup', 4 );
260 xtype : Gtk.CellRendererText,
261 pack : ['pack_start'],