bfd3b3043c89356aa029e6c67fb93ca1ef79c31a
[gnome.introspection-doc-generator] / Introspect / Constant.js
1 //<script type="text/javascript">
2 //Gtk = imports.gi.Gtk;
3 GI      = imports.gi.GIRepository;
4 GLib    = imports.gi.GLib;
5 xml     = imports.libxml;
6
7
8 XObject     = imports.XObject.XObject;
9 console     = imports.console.console;
10 NameSpace   = imports.NameSpace.NameSpace;
11
12 Basic        = imports.Basic.Basic;
13
14  
15  
16
17 /**
18  * Constant
19  *
20  *    <union name="Argument" c:type="GIArgument">
21
22  * NEEDS <function name="constant_info_get_value"
23               c:identifier="g_constant_info_get_value"
24               introspectable="1">
25           <type name="Argument" c:type="GIArgument*"/>
26
27  */
28
29
30 Constant = XObject.define(
31     function(prop, memberOf, saveto, keylist) {
32           
33         this.name  =  prop.get_name();
34         var tif    = GI.constant_info_get_type(prop);
35         var ty = GI.type_tag_to_string( GI.type_info_get_tag(tif));
36         this.type  = this.typeToName(GI.constant_info_get_type(prop));
37         
38         ///this.flags =  GI.property_info_get_flags(prop),
39         
40         
41         this.value= 'UNKNOWN';
42         
43         
44         if (ty != 'interface') {
45             
46             var argm = new GI._Argument();
47             GI.constant_info_get_value ?
48                 GI.constant_info_get_value ( prop ,argm) :
49                 prop.get_value(argm);
50                 
51             if (ty != 'utf8') {
52                 this.value = argm.v_long;
53             } else {
54                 this.value = argm.v_string;
55             }
56         } 
57         
58         this.desc = NameSpace.doc(memberOf.alias + '.' + this.name)
59         
60         memberOf[saveto].push(this);
61         keylist.push(this.name);
62     },
63     Basic,
64     { }
65 );