JSDOC/ScopeParser.js
[gnome.introspection-doc-generator] / Introspect / Signal.js
1 //<script type="text/javascript">
2 //Gtk = imports.gi.Gtk;
3 GI      = imports.gi.GIRepository;
4
5 XObject     = imports.XObject.XObject;
6 console     = imports.console.console;
7 NameSpace   = imports.NameSpace.NameSpace;
8
9 Basic        = imports.Basic.Basic;
10
11   
12  
13
14 Signal = XObject.define(
15     function(sig, memberOf, saveto, keylist) {
16
17         this.propertyType  = 'Signal';
18         
19         var params = this.argsToArrays(sig);
20         // add a reference to self...
21         params.unshift({
22             name : 'self',
23             type : memberOf.alias,
24             direction : 'in',
25             be_null :  false
26                 
27         });
28         var n_original  = GI.base_info_get_name(sig);
29         
30         XObject.extend(this,{
31             name : n_original.replace(/-/g,'_'),
32             params : params,
33             memberOf : memberOf.alias,
34             exceptions : [],
35             returns :   [ { type :  this.typeToName(GI.callable_info_get_return_type(sig)) } ],
36             desc : NameSpace.doc(memberOf.alias + '.signal.' + n_original)
37         });
38         memberOf[saveto].push(this);
39         keylist.push(this.name);
40         
41         var addedto = [ memberOf.alias ]; // do not add to self...
42        
43         for(var i =1; i < params.length;i++) {
44             var ty = params[i].type;
45             if (typeof(ty) != 'string' || ty.indexOf('.') < 0) {
46                 continue;
47             }
48             if (addedto.indexOf(ty) > -1) {
49                 continue;
50             }
51             
52             
53             
54             NameSpace.references[ty] = NameSpace.references[ty] || [];
55             NameSpace.references[ty].push(this);
56             addedto.push(ty);
57         }
58         
59         
60         
61         
62         
63     },
64     Basic
65 );
66
67
68