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') {
109 if (etype != 'events') {
113 LeftPanel.get('model').add({
122 LeftPanel.get('model').add( {
136 pack : [ 'set_model' ],
137 xtype : Gtk.ListStore,
140 XObject.prototype.init.call(this);
141 this.el.set_column_types ( 6, [
142 GObject.TYPE_STRING, // real key
143 GObject.TYPE_STRING, // real type
144 GObject.TYPE_STRING, // docs ?
145 GObject.TYPE_STRING, // visable desc
146 GObject.TYPE_STRING, // function desc
147 GObject.TYPE_STRING // element type (event|prop)
152 getValue : function(treepath, col)
154 var tp = new Gtk.TreePath.from_string (treepath);
155 var iter = new Gtk.TreeIter();
156 this.el.get_iter (iter, tp);
157 var value = new GObject.Value('');
158 this.el.get_value(iter, col, value);
167 var LeftTree = imports.Builder.LeftTree.LeftTree;
168 var fullpath = LeftTree.get('model').file.guessName(ar);
169 var palete = LeftTree.getPaleteProvider();
172 this.currentData = false;
173 if (!fullpath.length) {
176 palete.getProperties()
178 this.currentData = Roo.proplist[fullpath];
188 showData : function (type)
191 if (!MidPropTree.activeElement || !type) {
192 return; // no active element
194 var LeftTree = imports.Builder.LeftTree.LeftTree;
195 var fullpath = LeftTree.get('model').file.guessName(MidPropTree.activeElement);
196 var palete = LeftTree.getPaleteProvider();
200 Seed.print('Showing right?');
201 if (!MidPropTree.shown) {
202 var Window = imports.Builder.Window.Window;
203 Window.get('left').el.position = Window.get('left').el.position + 150;
204 MidPropTree.el.show();
205 MidPropTree.shown = true;
208 var elementList = palete.getPropertiesFor(fullpath, type);
209 print ("GOT " + elementList.length + " items for " + fullpath + "|" + type);
210 console.dump(elementList);
213 var iter = new Gtk.TreeIter();
214 for(var i =0 ; i < elementList.length; i++) {
215 var p=elementList[i];
216 this.el.append(iter);
217 // console.log( '<b>' + p.name +'</b> ['+p.type+']');
218 //GObject.TYPE_STRING, // real key
219 // GObject.TYPE_STRING, // real type
220 // GObject.TYPE_STRING, // docs ?
221 // GObject.TYPE_STRING // func def?
224 this.el.set_value(iter, 0, p.name);
225 this.el.set_value(iter, 1, p.type);
226 this.el.set_value(iter, 2, '<span size="small"><b>' + p.name +'</b> ['+p.type+']</span>' + "\n" + p.desc);
227 this.el.set_value(iter, 3, p.sig ? p.sig : '');
228 this.el.set_value(iter, 4, '<span size="small"><b>' + p.name +'</b> ['+p.type+']</span>');
229 this.el.set_value(iter, 5, type);
244 xtype: Gtk.TreeViewColumn,
245 pack : ['append_column'],
247 XObject.prototype.init.call(this);
250 this.el.add_attribute(this.items[0].el , 'markup', 4 );
254 xtype : Gtk.CellRendererText,
255 pack : ['pack_start']