Test.GtkWriter.vala.c
[app.Builder.js] / Palete / Gtk.js
index 5dc9122..98faa2e 100644 (file)
@@ -2,6 +2,7 @@
  
 Gio = imports.gi.Gio;
 GIRepository  = imports.gi.GIRepository;
+GObject= imports.gi.GObject;
 xml     = imports.libxml;
 console = imports.console;
 XObject = imports.XObject.XObject;
@@ -91,7 +92,7 @@ Gtk = XObject.define(
             }
 
             console.log("LOAD DOCS: " + ns);
-            var gi = GIRepository.IRepository.get_default();
+            var gi = GIRepository.Repository.get_default();
             var ver = gi.get_version(ns);
             if (!ver) {
                 this.comments[ns] = {};
@@ -150,7 +151,7 @@ Gtk = XObject.define(
                 }
             }
             
-            var pth = GIRepository.IRepository.get_search_path ();
+            var pth = GIRepository.Repository.get_search_path ();
             
             
             var gir_path = pth[0].replace(/lib\/girepository-1.0/, 'share\/gir-1.0');
@@ -184,14 +185,14 @@ Gtk = XObject.define(
   
         getPropertiesFor: function(ename, type)
         {
-            print("Loading for " + ename);
+            //print("Loading for " + ename);
             
             if (typeof(this.proplist[ename]) != 'undefined') {
-                print("using cache");
+                //print("using cache");
                 return this.proplist[ename][type];
             }
             // use introspection to get lists..
-            var gi = GIRepository.IRepository.get_default();
+            var gi = GIRepository.Repository.get_default();
             var es = ename.split('.');
             
             imports.gi[es[0]];
@@ -201,8 +202,8 @@ Gtk = XObject.define(
                 print("COULND NOT FIND BY NAME");
                 return [];
             }
-            var etype = GIRepository.base_info_get_type(bi);
-            var meth = etype == GIRepository.IInfoType.INTERFACE ?
+            var etype = bi.get_type();;
+            var meth = etype == GIRepository.InfoType.INTERFACE ?
                 [ 
                     'interface_info_get_n_properties',
                     'interface_info_get_property',
@@ -239,13 +240,14 @@ Gtk = XObject.define(
             
             // properties.. -- and parent ones...!!!
             for (var i =0;i <  GIRepository[meth[0]](bi); i++) {
-                var prop = GIRepository[meth[1]](bi, i);  
-                var n_original =  GIRepository.base_info_get_name(prop);
+                var prop = GIRepository[meth[1]](bi,i);  
+                var n_original =  prop.get_name();
                 
                 var flags =  GIRepository.property_info_get_flags(prop); // check for readonly..
                 
                 
                 var ty = this.typeToName(GIRepository.property_info_get_type(prop));
+                var flags = GIRepository.property_info_get_flags(prop);
                 print (n_original +":"+ ty);
                 if (ty === false) {
                     continue;
@@ -254,7 +256,8 @@ Gtk = XObject.define(
                      name :  n_original.replace(/\-/g, '_'),
                      type :  ty,
                      desc : this.doc(ename + '.' + n_original),
-                     sig : ''
+                     sig : '',
+                     ctor_only : (flags  & GObject.ParamFlags.CONSTRUCT_ONLY) > 0
                 }
                 plist.push(add)
             }
@@ -266,8 +269,8 @@ Gtk = XObject.define(
             // signals..
             
             for (var i =0;i <  GIRepository[meth[2]](bi); i++) {
-                var prop = GIRepository[meth[3]](bi, i);  
-                var n_original =  GIRepository.base_info_get_name(prop);
+                var prop =GIRepository[meth[3]](bi,i);  
+                var n_original =  prop.get_name();
                 // print ('signal: ' + n_original); 
                 var add = {
                     name :  n_original.replace(/\-/g, '_'),
@@ -280,22 +283,33 @@ Gtk = XObject.define(
             // methods
             
             for (var i =0;i <  GIRepository[meth[4]](bi); i++) {
-                var prop = GIRepository[meth[5]](bi, i);  
-                var n_original =  GIRepository.base_info_get_name(prop);
-                print(ename +": ADD : " + n_original );
-                var flags = GIRepository.function_info_get_flags (prop);
-                if (flags & GIRepository.IFunctionInfoFlags.IS_CONSTRUCTOR) {
-                    continue;
-                }
-                if (!(flags & GIRepository.IFunctionInfoFlags.IS_METHOD)) {
+                var prop = GIRepository[meth[5]](bi,i);  
+                var n_original =  prop.get_name();
+                print(ename +": ADD method: " + n_original );
+                //var flags = GIRepository.property_info_get_flags(prop);
+                
+                if (n_original.match(/^new/)) {
+                    var add = {
+                        name :  n_original.replace(/\-/g, '_'),
+                        type : 'ctor', //???
+                        desc : '',
+                        //desc : this.doc(ename + "."+ n_original)
+                    };
+                    this.genParams(prop,add);
+                    mlist.push(add);
                     continue;
                 }
+                continue;
+                // not sure why we need all the other ones...
+                //if (!(flags & GIRepository.FunctionInfoFlags.IS_METHOD)) {
+                //    continue;
+                //}
                 // print ('signal: ' + n_original); 
                 var add = {
                     name :  n_original.replace(/\-/g, '_'),
                     type : 'function', //???
-                    desc : this.doc(ename + '.signal.' + n_original),
-                }
+                    desc : '', //this.doc(ename + '.' + n_original)
+                };
                 this.genParams(prop,add);
                 mlist.push(add);
             }
@@ -305,7 +319,7 @@ Gtk = XObject.define(
             
             
             
-            if (etype == GIRepository.IInfoType.INTERFACE ) {
+            if (etype == GIRepository.InfoType.INTERFACE ) {
                // print("SKIPPING PARENT - it's an interface?!?!");
                   return;
             }
@@ -316,8 +330,7 @@ Gtk = XObject.define(
             if (pi) {
                 
                    
-                var pname = GIRepository.base_info_get_namespace(pi) + '.' +
-                    GIRepository.base_info_get_name(pi);
+                var pname = pi.get_namespace() + '.' + pi.get_name();
                 this.getPropertiesFor(pname, 'props');
                 
                 
@@ -338,8 +351,7 @@ Gtk = XObject.define(
             for(var i =0; i < GIRepository.object_info_get_n_interfaces(bi); i++) {
                  
                 var prop = GIRepository.object_info_get_interface(bi,i);
-                var iface = GIRepository.base_info_get_namespace(prop) +'.'+ 
-                    GIRepository.base_info_get_name(prop);
+                var iface = prop.get_namespace() +'.'+ prop.get_name();
                 if ( ilist.indexOf(iface) > -1) {
                     continue;
                 }
@@ -370,10 +382,11 @@ Gtk = XObject.define(
             meth.params = [];
             for(var a_i  =0; a_i   < GIRepository.callable_info_get_n_args(sig); a_i++) {
                 var arg = GIRepository.callable_info_get_arg(sig, a_i);
-                 
+                print(arg.get_name());
+                print(arg.get_type());
                 meth.params.push({
-                    name : GIRepository.base_info_get_name(arg),
-                    type : this.typeToName(GIRepository.property_info_get_type(arg), true)
+                    name  : arg.get_name(),
+                    type : this.typeToName(arg.get_type(), true)
                 });
             }
             
@@ -393,7 +406,7 @@ Gtk = XObject.define(
             for(var a_i  =0; a_i   < GIRepository.callable_info_get_n_args(sig); a_i++) {
                 var arg = GIRepository.callable_info_get_arg(sig, a_i);
                 
-                args.push(GIRepository.base_info_get_name(arg));
+                args.push(arg.get_name());
             }
             return 'function (' + args.join(', ') + ") {\n" + ret + "}"; 
                 
@@ -402,7 +415,15 @@ Gtk = XObject.define(
         },
         typeToName  : function (type_info, allow_iface) // find type for properties or arguments.
         {
-           var ty = GIRepository.type_tag_to_string( GIRepository.type_info_get_tag(type_info));
+            print(type_info);
+            if (type_info == 17) {
+                return 'integer';
+            }
+             
+            var x = GIRepository.type_info_get_tag(type_info);
+            print(x);
+            var ty = GIRepository.type_tag_to_string( GIRepository.type_info_get_tag(type_info));
+            print(ty);
            
             if ((ty == 'void') && GIRepository.type_info_is_pointer(type_info)) {
                 return false;
@@ -414,14 +435,13 @@ Gtk = XObject.define(
                 return ty;
             }
             // we can accept enum types here..
-            var interface_info = GIRepository.type_info_get_interface (type_info);        
-            var interface_type = GIRepository.base_info_get_type (interface_info);
+            var interface_info = GIRepository.type_info_get_interface(type_info);
+            var interface_type = interface_info.get_type();
             
-            if (!allow_iface && interface_type != GIRepository.IInfoType.ENUM) {
+            if (!allow_iface && interface_type != GIRepository.InfoType.ENUM) {
                 return false;
             }
-            return GIRepository.base_info_get_namespace(interface_info) + '.' +
-                    GIRepository.base_info_get_name(interface_info);
+            return interface_info.get_namespace() + '.' + interface_info.get_name();
             
         },
         /**
@@ -491,21 +511,21 @@ Gtk = XObject.define(
             if (es.length !=2) {
                 return Base.prototype.findOptions(ename);
             }
-            var gi = GIRepository.IRepository.get_default();
+            var gi = GIRepository.Repository.get_default();
             var bi = gi.find_by_name(es[0], es[1]);
-            var etype = GIRepository.base_info_get_type(bi);
-            if (etype != GIRepository.IInfoType.ENUM) {
+            var etype = GIRepository.object_info_get_type(bi);
+            if (etype != GIRepository.InfoType.ENUM) {
                 console.log("Options not handled yet!!!");
                 return false;
             }
             var ret = [];
             // got an enum.. let's return the values..
-            for(var i =0; i < GIRepository.enum_info_get_n_values(bi); i++) {
+            for(var i =0; i < bi.get_n_values(); i++) {
                  
-                  var prop = GIRepository.enum_info_get_value(bi,i);
+                  var prop = bi.get_value(i);
                    
                 
-                  ret.push( ename + '.' + GIRepository.base_info_get_name(prop).toUpperCase() ) 
+                  ret.push( ename + '.' + prop.get_name().toUpperCase() ) 
             }
             return ret;
         },