XObjectBase/GtkTreeModelFilter.js
[app.Builder.js] / XObjectBase / GtkTreeModelFilter.js
1
2 //<Script type="Text/javascript">
3
4 XObject = imports.XObject.XObject
5  
6 GObject = imports.gi.GObject;
7 //GtkClutter.Embed..
8 Gtk= imports.gi.Gtk;
9
10 // children are not added at init / but at show stage..
11 // listener is added on show..
12 // we should really add a hock to destroy it..
13 GtkTreeModelFilter = XObject.define(
14     function(cfg) {
15         XObject.call(this, cfg);
16         // this is an example...
17        
18     }, 
19     XObject,
20     {
21         pack :  'set_model',
22         init : function() 
23         {
24             // 
25             this.items[0].pack = false;
26             this.el = new Gtk.TreeModelFilter(this.items[0].el, null);
27             XObject.prototype.init.call(this);
28           
29         },
30         append : function( values ) {
31             var iter = new Gtk.TreeIter();
32             this.el.append(iter);
33             for (var i = 0; i < values.length; i++) {
34                 this.el.set_value(iter,i,values[i]);
35             }
36             
37         },
38         getValue  : function ( path, col)
39         {
40             // not very type safe...
41             var tpath = path;
42             if (typeof(path) == 'string' ) {
43                 tpath = new Gtk.TreePath.from_string(path);
44             }
45             
46             var iter = new Gtk.TreeIter();
47             this.el.get_iter (iter, tpath) ;
48             var gval = new GObject.Value(  [this.el.get_column_type(col), null ]);
49             this.el.get_value( iter, col, gval);
50             print("GET VALUE RETURNED: " + gval.value);
51             return gval.value;
52         },
53         setValue  : function ( path, col, val)
54         {
55             var tpath = path;
56             if (typeof(path) == 'string' ) {
57                 tpath = new Gtk.TreePath.from_string(path);
58             }
59             var iter = new Gtk.TreeIter();
60             this.el.get_iter (iter, tpath) ;
61             this.el.set_value(iter,col,val);
62         }
63                 
64         
65     }
66 );