move introspect
[gnome.introspection-doc-generator] / Introspect / Signal.js
diff --git a/Introspect/Signal.js b/Introspect/Signal.js
new file mode 100644 (file)
index 0000000..9524512
--- /dev/null
@@ -0,0 +1,68 @@
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI      = imports.gi.GIRepository;
+
+XObject     = imports.XObject.XObject;
+console     = imports.console.console;
+NameSpace   = imports.NameSpace.NameSpace;
+
+Basic        = imports.Basic.Basic;
+
+  
+
+Signal = XObject.define(
+    function(sig, memberOf, saveto, keylist) {
+
+        this.propertyType  = 'Signal';
+        
+        var params = this.argsToArrays(sig);
+        // add a reference to self...
+        params.unshift({
+            name : 'self',
+            type : memberOf.alias,
+            direction : 'in',
+            be_null :  false
+                
+        });
+        var n_original  = GI.base_info_get_name(sig);
+        
+        XObject.extend(this,{
+            name : n_original.replace(/-/g,'_'),
+            params : params,
+            memberOf : memberOf.alias,
+            exceptions : [],
+            returns :   [ { type :  this.typeToName(GI.callable_info_get_return_type(sig)) } ],
+            desc : NameSpace.doc(memberOf.alias + '.signal.' + n_original)
+        });
+        memberOf[saveto].push(this);
+        keylist.push(this.name);
+        
+        var addedto = [ memberOf.alias ]; // do not add to self...
+       
+        for(var i =1; i < params.length;i++) {
+            var ty = params[i].type;
+            if (typeof(ty) != 'string' || ty.indexOf('.') < 0) {
+                continue;
+            }
+            if (addedto.indexOf(ty) > -1) {
+                continue;
+            }
+            
+            
+            
+            NameSpace.references[ty] = NameSpace.references[ty] || [];
+            NameSpace.references[ty].push(this);
+            addedto.push(ty);
+        }
+        
+        
+        
+        
+        
+    },
+    Basic
+);
+
+
+