Revert "File.js"
[app.Builder.js] / XObjectBase / GtkClutterActor.js
index a1e5de3..3698558 100644 (file)
@@ -9,28 +9,53 @@ GtkClutter = imports.gi.GtkClutter;
 // listener is added on show..
 // we should really add a hock to destroy it..
 
-GtkClutterActor = {
-    
-    onConstruct : function() {
-        this.items[0].pack = false;
+
+GtkClutterActor = XObject.define(
+    function(cfg) {
+        XObject.call(this, cfg);
+        if (!this.items.length) {
+            XObject.fatal("Actor does not have any children");
+            return;
+        }
         
-    },
+        this.items[0].pack = false;
+    }, 
+    XObject,
+    {
     
-    init : function() {
-        print ("Actor init");
-        var child = this.items[0];
-        child.init();
+        pack : function(parent, item)
+        {
+            
+            if (XObject.type(parent.xtype) == 'GtkClutterWindow') {
+                var st = parent.el.get_stage();
+                st.add_actor(this.el);
+                return;
+            }
+            XObject.fatal("do not know how to pack actor into " +  XObject.type(parent.xtype));
+            
+        },
         
-        child.parent = this;
-        //var contents = new Gtk.Button({ label: 'test' }); 
+       
         
-       // print(JSON.stringify(this.items));
-        child.el.show();
-        
-        this.el = new GtkClutter.Actor.with_contents (  child.el) ;
-        
-        XObject.prototype.init.call(this);
-        this.el.show_all();
+        init : function() {
+            print ("Actor init");
+            if (!this.items.length) {
+                print ("Actor does not have any children");
+                return;
+            }
+            var child = this.items[0];
+            child.init();
+            child.pack = false;
+            child.parent = this;
+            //var contents = new Gtk.Button({ label: 'test' }); 
+            
+           // print(JSON.stringify(this.items));
+            child.el.show();
+            
+            this.el = new GtkClutter.Actor.with_contents (  child.el) ;
+            
+            XObject.prototype.init.call(this);
+            this.el.show_all();
+        }
     }
-
-}; 
\ No newline at end of file
+); 
\ No newline at end of file