--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+//GObject = imports.gi.GObject;
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+
+NameSpace = imports.NameSpace.NameSpace;
+Basic = imports.Basic.Basic;
+
+
+
+
+/**
+ * Base types methods/interfaces/structs/unions etc.
+ */
+
+
+
+
+Base = XObject.define(
+ function(ns, name) {
+ // fake should not happen?
+
+
+ if (typeof(name) == 'undefined') {
+ var ar = ns.split('.');
+ ns = ar[0];
+ name = ar[1];
+ }
+ this.ns = ns;
+ this.name = name;
+ this.alias = ns + '.' + name;
+ //console.log("CREATE(Base) " + this.alias);
+ this._loaded = false;
+
+
+ // reset all of these..
+ this.signals = [];
+ this.methods = [];
+ this.constructors = [];
+ this.functions= [];
+
+ this.values = []; // for enum;g;
+ this.constants = [];
+
+ this.properties = [];
+ this.implementInterfaces = []; // obect - which interface it implements.
+ this.implementedBy = []; // interface - which object uses it.
+ this.extendsClasses = []; // what it extends...
+ this.childClasses = []; // what
+ this.desc = NameSpace.doc(this.alias );
+
+
+ var gi = GI.IRepository.get_default();
+ var ver = gi.get_version(ns);
+ var pth = GI.IRepository.get_search_path ();
+ var gir_path = pth[0].replace(/lib\/girepository-1.0/, 'share\/gir-1.0');
+ //console.log(fn);
+ this.gir_file = gir_path + '/'+ ns + '-' + ver + '.gir';
+ this.gir_filename = ns + '-' + ver + '.gir';
+
+
+ },
+ Basic,
+ {
+ titleType: 'Unknown',
+ name : '',
+ ns : '',
+
+ signals : [],
+ methods : [],
+ constructors : [],
+ functions: [],
+
+ values : [], // for enum
+ constants : [],
+
+ properties : [],
+ implementInterfaces : [], // obect - which interface it implements.
+ implementedBy : [], // interface - which object uses it.
+ extendsClasses : [], // what it extends...
+ childClasses : [], // what
+
+
+
+
+ getBI : function() {
+
+ var gi = GI.IRepository.get_default();
+ return gi.find_by_name(this.ns, this.name);
+ },
+ // on, getwhat, simple list (name), variable to add to.
+ genericBuildList : function( onwhat, type, keylist, saveto)
+ {
+
+ //console.log(this.alias +" - ADDING :" + type);
+ //if (this[saveto].length) {
+ // Seed.print( "EROROR = it's alreayd loaded why?");
+ //throw "oops";
+ // }
+ var bb = this.getBI();
+ var _this = this;
+ //console.log("ADD " + type[0].toUpperCase() + type.substring(1));
+ var clname = type[0].toUpperCase() + type.substring(1);
+ var cls = imports[clname][clname];
+ if (!cls) {
+ console.log("COULD NOT FIND Introspect: " + type[0].toUpperCase() + type.substring(1));
+ }
+
+ var plural = type + 's';
+ plural = plural == 'propertys' ? 'properties' : plural;
+
+
+ for(var i =0; i < GI[onwhat + '_info_get_n_' + plural ](bb); i++) {
+ var add= new cls(GI[onwhat + '_info_get_' + type ](bb,i), this, saveto, keylist);
+ //console.log("CLS :" + this.alias + " EL: " + add.name);
+ }
+
+
+ },
+ // loop through and add stuff from extends..
+ genericExtends : function( keylist, saveto)
+ {
+ // do not overlay gobject props or methods etc.
+
+ if (!this.extendsClasses.length) {
+ return;
+ }
+ if (this.extendsClasses[0].alias == 'GObject.Object') {
+ return;
+ }
+
+
+ var _this = this;
+
+ this.extendsClasses[0].load();
+ this.extendsClasses[0][saveto].map(function(prop) {
+ if (keylist.indexOf(prop.name) < 0) {
+ _this[saveto].push(prop);
+ keylist.push(prop.name);
+ }
+ },this);
+
+ },
+ // loop through and add stuff from implements..
+ genericImplements : function( keylist, saveto) {
+
+ var _this = this;
+ this.implementInterfaces.map(function(iface) {
+
+ iface.load();
+
+ iface[saveto].map( function(prop) {
+ if (keylist.indexOf(prop.name) < 0) {
+ _this[saveto].push(prop);
+ keylist.push(prop.name);
+ }
+ },this);
+
+ }, this);
+
+ },
+
+
+
+});
+
+
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+//GObject = imports.gi.GObject;
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+
+
+
+/**
+ * Base class for Properties, functions, methods etc.
+ */
+
+
+Basic = XObject.define(
+ function( ) {
+ // never called?
+ },
+ Object,
+ {
+
+ typeToName : function (type_info) {
+ var ty = GI.type_tag_to_string( GI.type_info_get_tag(type_info));
+
+ if ((ty == 'void') && GI.type_info_is_pointer(type_info)) {
+ return 'void*'; // it's a fake string?!?!!? - slightly naughty...
+ }
+ if (ty == 'array') {
+ // array of what!?!?
+ var param_type = GI.type_info_get_param_type (type_info, 0);
+ var atype = GI.type_info_get_tag(param_type);
+ if (atype == GI.ITypeTag.UINT8) {
+ return 'utf8';
+ }
+
+
+ return ty;
+ }
+ if (ty != 'interface') {
+ return ty;
+ }
+ var interface_info = GI.type_info_get_interface (type_info);
+ var interface_type = GI.base_info_get_type (interface_info);
+ if (interface_type == GI.IInfoType.CALLBACK) {
+ // callback..
+ var Callback = imports.Callback.Callback ;
+ var ret= new Callback(interface_info, this, false, false);
+ ret.alias = GI.base_info_get_namespace(interface_info) + '.' + GI.base_info_get_name(interface_info);
+ return ret;
+
+
+ }
+
+ return GI.base_info_get_namespace(interface_info) + '.' + GI.base_info_get_name(interface_info);
+
+ },
+
+ directions : [ "in", "out"," inout"],
+
+ argsToArrays : function(m, returnArray)
+ {
+
+ var outIntoReturn = false;
+ if (returnArray && returnArray.length == 1 && returnArray[0].type == 'void') {
+ outIntoReturn = true;
+ }
+
+ var outArg = {
+ name : 'out_values',
+ ns : '',
+ type : 'Object',
+ direction : 'out',
+ be_null : true, // in theory..
+ desc : "Return Object, use an empty Object, and the properties will get set as follows",
+ properties : []
+ };
+
+ var args = [];
+ var firstOut = -1;
+ for(var a_i =0; a_i < GI.callable_info_get_n_args(m); a_i++) {
+ var arg = GI.callable_info_get_arg(m, a_i);
+
+ var direction = this.directions[GI.arg_info_get_direction(arg)];
+
+ var add = {
+ name : GI.base_info_get_name(arg),
+ ns : GI.base_info_get_namespace(arg),
+ type : this.typeToName(GI.arg_info_get_type(arg)),
+ direction : direction,
+ be_null : GI.arg_info_may_be_null(arg) || GI.arg_info_is_optional(arg),
+ desc : GI.base_info_get_attribute(arg, 'doc') || ''
+ };
+
+
+ add.alias = add.ns + '.' + add.name;
+
+ if (direction == 'out') {
+ firstOut = firstOut > -1 ? firstOut : a_i;
+ if (outIntoReturn) {
+ returnArray.push(add);
+ } else {
+ outArg.properties.push(add);
+ }
+ }
+
+
+ args.push(add);
+ }
+
+ // drop all the 'out args from the end of args..
+ if (returnArray) {
+
+ while (true) {
+ if (!args.length) {
+ break;
+ }
+ var l = args.pop(); // drop!
+ if (l.direction == 'out') {
+ // got an out arg..
+ continue;
+ }
+ args.push(l); // put it back in (it's not a out).
+ break;
+
+ }
+ }
+ if (outArg.properties.length) {
+ // put the out arg in there...
+ if (firstOut >= args.length) {
+ args.push(outArg);
+ } else {
+ args[firstOut] = outArg;
+ }
+ }
+
+
+ // remove void return....
+
+ if (returnArray && returnArray.length > 1 && returnArray[0].type == 'void') {
+ returnArray.shift();
+ }
+
+ return args;
+ }
+});
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+//GObject = imports.gi.GObject;
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+
+
+NameSpace = imports.NameSpace.NameSpace;
+Basic = imports.Basic.Basic;
+
+
+
+Callback = XObject.define(
+ function(sig, memberOf, saveto, keylist) {
+
+
+ var params = this.argsToArrays(sig);
+ // add a reference to self...
+ /*params.unshift({
+ name : 'self',
+ type : memberOf.alias,
+ direction : 'in',
+ be_null : false
+
+ });
+ */
+
+ XObject.extend(this,{
+ name : GI.base_info_get_name(sig),
+ params : params,
+ //memberOf : memberOf.alias,
+ exceptions : [],
+ returns : [ { type : this.typeToName(GI.callable_info_get_return_type(sig)) } ]
+
+ });
+ this.desc = NameSpace.doc(memberOf.alias + '.' + this.name);
+ //memberOf[saveto].push(this);
+ //keylist.push(this.name);
+
+ },
+ Basic,
+ {}
+);
+
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+//GObject = imports.gi.GObject;
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Base = imports.Base.Base;
+
+
+
+
+/**
+ * Class
+ */
+
+
+
+
+Class = XObject.define(
+ function(ns, name) {
+ Base.call(this, ns, name);
+ this.loadExtends();
+ this.loadImplements();
+ //console.log("CREATED(Class) " + this.alias);
+ },
+ Base,
+ {
+ titleType : 'Class',
+
+ loadExtends : function()
+ {
+ var bi = this.getBI();
+
+ var pi = GI.object_info_get_parent(bi);
+ this.extendsClasses = [];
+ if (!pi) {
+ return;
+ }
+ this.parent = NameSpace.factory(
+ 'Class',
+ GI.base_info_get_namespace(pi),
+ GI.base_info_get_name(pi)
+ );
+
+ this.extendsClasses = [ this.parent ];
+
+
+ this.parent.extendsClasses.map(function(p) {
+ this.extendsClasses.push(p);
+ },this);
+
+
+
+ },
+ loadImplements : function()
+ {
+ var bb = this.getBI();
+ this.implementInterfaces = [];
+
+ var iflist = [];
+ for(var i =0; i < GI.object_info_get_n_interfaces(bb); i++) {
+
+ var prop = GI.object_info_get_interface(bb,i);
+
+
+ var iface = NameSpace.factory(
+ 'Interface',
+ GI.base_info_get_namespace(prop) , GI.base_info_get_name(prop)
+ );
+
+
+ if (iflist.indexOf(iface.alias) < 0) {
+ //console.log("ADDING IFACE " + iface.alias);
+ iflist.push(iface.alias);
+ this.implementInterfaces.push(iface);
+ }
+ }
+ // ask the first of the parents.. - which will have it loaded already
+ if (this.extendsClasses.length) {
+
+ //this.extendsClasses[0].loadImplements();
+
+ this.extendsClasses[0].implementInterfaces.map( function(si) {
+
+ if (iflist.indexOf(si.alias) < 0) {
+ //console.log("From extends ("+ si.alias + ") IFACE " + si.alias);
+ iflist.push(si.alias);
+ this.implementInterfaces.push(si);
+ }
+ },this);
+
+ }
+ //console.dump(iflist);
+ if (this.alias == 'Atk.NoOpObject') {
+ // throw "exut";
+ }
+ // console.dump(this.implementInterfaces);
+ },
+
+
+
+
+ load : function()
+ {
+ if (this._loaded) {
+ return; // already loaded..
+ }
+
+ if (this.parent) { // load up parents first
+ this.parent.load();
+ }
+ this.implementInterfaces.map(function(iface) {
+ iface.load();
+ });
+
+
+ //console.log("load(Class) " + this.alias);
+ // my props..
+ var props = [];
+ this.genericBuildList('object', 'property', props, 'properties');
+ this.genericBuildList('object', 'field', props, 'properties');
+
+ this.genericExtends( props, 'properties');
+ this.genericImplements( props, 'properties');
+
+ var signals = [];
+ this.genericBuildList('object', 'signal', signals, 'signals');
+ this.genericExtends( signals, 'signals');
+ this.genericImplements( signals, 'signals');
+
+
+ NameSpace.references[this.alias] = NameSpace.references[this.alias] || [];
+ if (this.alias == 'GObject.Object') {
+ this._loaded = true;
+ return;
+ }
+
+
+ this.constructors.push({
+ name : '', // not really...
+ params: this.properties.length ? [ { type : 'Object', be_null : true, name : 'properties' } ] : [],
+ returns : [],
+ isConstructor : true,
+ isStatic : false,
+ memberOf : this.alias,
+ exceptions : [],
+ // in theory..
+ desc : ''
+ });
+
+
+ var methods = [];
+ this.genericBuildList('object', 'method', methods, 'methods');
+ // dont inherit functiosn or consturctors...
+
+ this.genericExtends( methods, 'methods');
+ this.genericImplements( methods, 'methods');
+
+
+
+ //console.log("loaded(Class) " + this.alias);
+
+ this._loaded = true;
+ }
+
+
+
+
+
+});
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Basic = imports.Basic.Basic;
+
+
+
+
+/**
+ * Constant
+ */
+
+
+Constant = XObject.define(
+ function(prop, memberOf, saveto, keylist) {
+
+ this.name = GI.base_info_get_name(prop);
+ var tif = GI.constant_info_get_type(prop);
+ var ty = GI.type_tag_to_string( GI.type_info_get_tag(tif));
+ this.type = this.typeToName(GI.constant_info_get_type(prop));
+
+ ///this.flags = GI.property_info_get_flags(prop),
+
+
+ this.value= 'UNKNOWN';
+
+
+ if (ty != 'interface') {
+
+ var argm = new GI.Argument();
+ GI.constant_info_get_value ( prop ,argm);
+ if (ty != 'utf8') {
+ this.value = argm.v_long;
+ } else {
+ this.value = argm.v_string;
+ }
+ }
+
+ this.desc = NameSpace.doc(memberOf.alias + '.' + this.name)
+
+ memberOf[saveto].push(this);
+ keylist.push(this.name);
+ },
+ Basic,
+ { }
+);
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Base = imports.Base.Base;
+
+
+
+
+
+
+
+Enum = XObject.define(
+ function(ns, name) {
+ Base.call(this, ns, name);
+ },
+ Base,
+ {
+ titleType: 'Enum',
+ _loaded : false,
+ load : function()
+ {
+ if (this._loaded) {
+ return; // already loaded..
+ }
+
+ this.desc = NameSpace.doc(this.alias);
+ var bi = this.getBI();
+
+ for(var i =0; i < GI.enum_info_get_n_values(bi); i++) {
+
+ var prop = GI.enum_info_get_value(bi,i);
+
+
+ this.values.push({
+ name : GI.base_info_get_name(prop).toUpperCase() ,
+ type : GI.type_tag_to_string(GI.enum_info_get_storage_type(bi)),
+ value: GI.value_info_get_value(prop) ,
+ memberOf : this.alias
+ });
+ }
+
+ this._loaded = true;
+
+
+
+
+ }
+});
+
+
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Basic = imports.Basic.Basic;
+
+
+
+
+/**
+ * Field
+ */
+
+Field = XObject.define(
+ function(prop, memberOf, saveto, keylist) {
+
+ this.name = GI.base_info_get_name(prop) ,
+ this.type = this.typeToName(GI.field_info_get_type(prop)),
+ this.flags = GI.field_info_get_flags(prop),
+ this.memberOf = memberOf.alias
+ memberOf[saveto].push(this);
+ keylist.push(this.name);
+
+ },
+ Basic,
+ {}
+);
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Base = imports.Base.Base;
+
+
+
+
+/**
+ * Interface
+ */
+
+Interface = XObject.define(
+ function(ns, name) {
+ Base.call(this, ns, name);
+
+ },
+
+ Base,
+ {
+ titleType: 'Interface',
+ _loaded : false,
+ load : function()
+ {
+ if (this._loaded) {
+ return; // already loaded..
+ }
+ // my props..
+ var props = [];
+ this.genericBuildList('interface', 'property', props, 'properties');
+
+
+ var signals = [];
+ this.genericBuildList('interface', 'signal', signals, 'signals');
+
+
+ var methods = [];
+ this.genericBuildList('interface', 'method', methods, 'methods');
+
+
+ NameSpace.ifaceList[this.alias] = NameSpace.ifaceList[this.alias] || [];
+ this.implementedBy = NameSpace.ifaceList[this.alias];
+
+
+
+ this._loaded = true;
+ },
+
+
+});
--- /dev/null
+//<script type="text/javascript">
+
+console = imports.console.console;
+
+XObject = imports.XObject.XObject
+
+
+/** Handle the creation of HTML links to documented symbols.
+ @constructor
+ *
+ *
+ *
+*/
+
+
+Link = XObject.define({
+ function() {
+ this.alias = "";
+ this.src = "";
+ this.file = "";
+ this.text = "";
+ this.innerName = "";
+ this.classLink = false;
+ this.targetName = "";
+
+ // statics..
+ Link.symbolsDir = Link.symbolsDir || '';
+ Link.base = Link.base || '';
+ Link.ext= Link.ext || '';
+ Link.srcDir= Link.srcDir || '';
+
+
+ },
+ Object, {
+
+ alias : "",
+ src : "",
+ file : "",
+ text : "",
+ innerName : "",
+ classLink : false,
+ targetName : "",
+
+
+
+ toString : function() {
+ var linkString;
+ var thisLink = this;
+
+ if (this.none) {
+ return 'none';
+ }
+ if (this.alias) {
+
+ if (typeof(this.builtins[this.alias]) != 'undefined') {
+ this.text = this.alias;
+ return thisLink._makeExternLink(this.builtins[this.alias]);
+ }
+
+
+ return thisLink._makeSymbolLink(this.alias);
+
+ /*
+
+ linkString = this.alias.replace(/(^|[^a-z$0-9_#.:-])([|a-z$0-9_#.:-]+)($|[^a-z$0-9_#.:-])/i,
+ function(match, prematch, symbolName, postmatch) {
+ var symbolNames = symbolName.split("|");
+ var links = [];
+ for (var i = 0, l = symbolNames.length; i < l; i++) {
+ thisLink.alias = symbolNames[i];
+ links.push(thisLink._makeSymbolLink(symbolNames[i]));
+ }
+ return prematch+links.join("|")+postmatch;
+ }
+ );
+ */
+ }
+ else if (this.extern) {
+ linkString = thisLink._makeExternLink(this.extern);
+ }
+ else if (this.src) {
+ linkString = thisLink._makeSrcLink(this.src);
+ }
+ else if (this.file) {
+ linkString = thisLink._makeFileLink(this.file);
+ }
+
+ return linkString;
+ },
+
+ builtins : {
+ 'Object' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Object',
+ //'Object...' : 'http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Object',
+ 'Array' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array',
+ 'Function' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Function',
+ 'String' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String',
+ 'Number' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Number',
+ 'Boolean' : 'https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Boolean',
+ 'HTMLElement' : 'http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-58190037'
+ },
+
+
+ toGnome: function(alias)
+ {
+ this.file = "#";
+ var pr = alias.split('.');
+ var aa = alias;
+ var site = 'library.gnome.org';
+ var extra = '';
+ switch(pr[0]) {
+ case 'GIRepository':
+ this.extern = 'http://live.gnome.org/GObjectIntrospection';
+ aa = pr[0];
+ break;
+ case 'Gio':
+ case 'GLib':
+ case 'GObject':
+ aa = pr.length > 1 ? 'G' + pr[1] : pr[0];
+ break;
+ case 'GdkPixbuf':
+ aa = pr.length > 1 ? 'Gdk' + pr[1] : pr[0];
+ break;
+ case 'GtkSource':
+ aa = pr.length > 1 ? pr[0] + pr[1] : 'GtkSourceView';
+ break;
+
+ case 'Gst':
+ aa = pr.length > 1 ? pr[0] + pr[1] : 'GStreamer';
+ break;
+
+ case 'Pango':
+ extra = ' GTK-Doc';
+ break;
+ case 'GstController':
+ case 'GstApp':
+ case 'GstAudio':
+ case 'GstBase':
+ case 'GstCheck':
+ case 'GstFft':
+ case 'GstInterfaces':
+ case 'GstNet':
+ case 'GstNetbuffer':
+ case 'GstPbutils':
+ case 'GstRiff':
+ case 'GstRtp':
+ case 'GstRtsp':
+ case 'GstSdp':
+ case 'GstTag':
+ case 'GstVideo':
+
+ aa = pr.length > 1 ? 'Gst' + pr[1] : pr[0];
+ break;
+
+ case 'Epiphany':
+ aa = pr.length > 1 ? pr[1] : pr[0];
+ break;
+ case 'WebKit':
+ site = 'webkitgtk.org';
+
+ default:
+
+ aa = alias.replace('.', '');
+
+ break;
+
+ }
+ if (!this.extern) {
+ this.extern = 'http://www.google.com/search?hl=en&' +
+ 'q=site%3A' + site + '+' + aa + extra +
+ '&btnI=I%27m+Feeling+Lucky&meta=&aq=f&oq=';
+ }
+
+ this.text = aa;
+ return this;
+ },
+
+ target : function(targetName) {
+ if (typeof(targetName) != 'undefined') this.targetName = targetName;
+ return this;
+ },
+ inner : function(inner) {
+ if (typeof(inner) != 'undefined') this.innerName = inner;
+ return this;
+ },
+ withText: function(text) {
+ if (typeof(text) != 'undefined') this.text = text;
+ return this;
+ },
+ toSrc :function(filename) {
+ if (typeof(filename) != 'undefined') this.src = filename;
+ return this;
+ },
+
+ toSymbolLong : function(alias)
+ {
+ this.show_full = true;
+ return this.toSymbol(alias)
+ },
+ toSymbol : function(alias) {
+
+
+ switch(alias) {
+ case 'boolean' : this.alias = 'Boolean'; return this;
+ case 'int' : this.alias = 'Number'; return this;
+ case 'uint' : this.alias = 'Number'; return this;
+
+ case 'long' : this.alias = 'Number'; return this;
+ case 'ulong' : this.alias = 'Number'; return this;
+
+
+ case 'uint8' : this.alias = 'Number'; return this;
+ case 'int8' : this.alias = 'Number'; return this;
+
+ case 'uint16' : this.alias = 'Number'; return this;
+ case 'uint16' : this.alias = 'Number'; return this;
+
+ case 'int32' : this.alias = 'Number'; return this;
+ case 'uint32' : this.alias = 'Number'; return this;
+
+ case 'uint64' : this.alias = 'Number'; return this;
+ case 'int64' : this.alias = 'Number'; return this;
+
+
+ case 'GType' : this.alias = 'Number'; return this;
+ case 'size' : this.alias = 'Number'; return this;
+ case 'ssize' : this.alias = 'Number'; return this;
+
+ case 'float' : this.alias = 'Number'; return this;
+ case 'double' : this.alias = 'Number'; return this;
+ case 'time_t' : this.alias = 'Number'; return this;
+ // fixme - should find out more details..
+ case 'array' : this.alias = 'Array'; return this;
+ case 'gslist' : this.alias = 'Array'; return this;
+ case 'glist' : this.alias = 'Array'; return this; // homefully.
+ case 'ghash' : this.alias = 'Object'; return this; // homefully.
+
+
+ case 'error' : this.alias = 'Object'; return this; // homefully.
+ case 'filename' : this.alias = 'String'; return this; // hopefully..
+ case 'utf8' : this.alias = 'String'; return this;
+
+ case 'void' : this.none = true; return this;
+
+
+ }
+
+
+ if (typeof(alias) != 'undefined') {
+ this.alias = new String(alias);
+ }
+ return this;
+ },
+ toClass : function(alias) {
+ this.classLink = true;
+ return this.toSymbol(alias);
+ },
+ toFile : function(file) {
+ if (typeof(file) != 'undefined') this.file = file;
+ return this;
+ },
+
+
+
+
+ /** prefixed for hashes */
+
+
+ /** Appended to the front of relative link paths. */
+
+
+ symbolNameToLinkName : function(symbol) {
+ var linker = "";
+ if (symbol.isStatic) linker = ".";
+ else if (symbol.isInner) linker = "-";
+
+ return linker+symbol.name;
+ },
+
+
+
+
+ /** Create a link to a snother symbol. */
+ _makeSymbolLink : function(alias)
+ {
+ var target = '';
+ var txt = this.show_full ? alias : alias.split('.').pop();
+ return "<a href=\"./"+alias+".html\""+target+">"+txt+"</a>";
+
+ /*
+ // look for '/' in alias..
+ if (/\//.test(alias)) {
+ var bits = alias.split('/');
+ var ret = "";
+ for(var i=0; i < bits.length; i++) {
+ if (i > 0) {
+ ret +="/";
+ }
+ ret += this._makeSymbolLink(bits[i]);
+ }
+ return ret;
+
+ }
+
+
+ */
+
+ var linkBase = Link.base + Link.symbolsDir;
+ //var linkTo = Link.symbolSet.getSymbol(alias);
+ linkTo = "FIXME";
+ var linkPath;
+ var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
+
+ // is it an internal link?
+ if (alias.charAt(0) == "#") {
+ linkPath = alias;
+ fullLinkPath = alias;
+
+ // if there is no symbol by that name just return the name unaltered
+ } else if (!linkTo) {
+
+ if (typeof(this.builtins[alias]) != 'undefined') {
+ return "<a href=\""+ this.builtins[alias]+"\""+target+">"+alias+"</a>";
+ }
+
+ return this.text || alias;
+
+
+ // it's a symbol in another file
+ } else {
+
+ if (!linkTo.isConstructor && !linkTo.isNamespace) { // it's a method or property
+ linkPath = escape(linkTo.memberOf) || "_global_";
+ linkPath += Link.ext + "#" + this.symbolNameToLinkName(linkTo);
+ }
+ else {
+ linkPath = escape(linkTo.alias);
+ linkPath += Link.ext + (this.classLink? "":"#" + "constructor");
+ }
+ //linkPath = linkBase + linkPath;
+ fullLinkPath = linkBase + linkPath;
+ }
+
+ var linkText = this.text || alias;
+
+ var link = {linkPath: linkPath, linkText: linkText, fullLinkPath: fullLinkPath};
+
+ //if (typeof PluginManager != "undefined") {
+ // JSDOC.PluginManager.run("onSymbolLink", link);
+ //}
+
+ return "<a href=\""+link.fullLinkPath+"\""+target+">"+link.linkText+"</a>";
+ },
+
+
+ /** Create a link to a source file. */
+ _makeSrcLink : function(srcFilePath) {
+ var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
+
+ // transform filepath into a filename
+ var srcFile = srcFilePath.replace(/\.\.?[\\\/]/g, "").replace(/[:\\\/]/g, "."); // was _
+ var lsrcFile = srcFilePath.replace(/\.\.?[\\\/]/g, "").replace(/[:\\\/]/g, ".");
+ var outFilePath = Link.base + Link.srcDir + srcFile.replace(/.js$/, '') + Link.ext;
+
+ if (!this.text) this.text = FilePath.fileName(srcFilePath);
+ return "<a href=\""+outFilePath+"\""+target+">"+this.text+"</a>";
+ },
+
+ /** Create a link to a source file. */
+ _makeFileLink : function(filePath) {
+ var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
+
+ var outFilePath = Link.base + filePath;
+
+ if (!this.text) this.text = filePath;
+ return "<a href=\""+outFilePath+"\""+target+">"+this.text+"</a>";
+ },
+
+ /** Create a link to a source file. */
+ _makeExternLink : function(filePath) {
+ var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
+
+ if (!this.text) this.text = filePath;
+ return "<a href=\""+filePath+"\""+target+">"+this.text+"</a>";
+ }
+
+});
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+
+GI = imports.gi.GIRepository;
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Basic = imports.Basic.Basic;
+
+
+/**
+ * Methods, functions or consturctors
+ */
+
+
+
+
+Method = XObject.define(
+ function(m, memberOf, saveto, keylist) {
+ this.propertyType = 'Method';
+
+ var flags = GI.function_info_get_flags (m);
+ var n = GI.base_info_get_name(m);
+ var n_original = n + '';
+ // posibly add: sink,
+ if (n.match(/_(ref|unref)$/) || n.match(/^(ref|unref|weakref|weakunref)$/)) {
+ return false; // skip these!
+ }
+
+ if (n == 'new') {
+ n = 'c_new';
+ }
+
+
+ var retval = [ {
+ name : 0,
+ type : this.typeToName(GI.callable_info_get_return_type(m)),
+ desc : NameSpace.doc(memberOf.alias + '.' + n_original + '.return-value')
+ } ];
+
+
+
+ var args = this.argsToArrays(m, retval);
+
+
+ if ((n == 'c_new') && !args.length && memberOf.constructors.length) {
+
+ memberOf.constructors[0].doc = NameSpace.doc(memberOf.alias + '.' + n_original);
+
+ return false; // skip.
+ }
+
+
+
+
+
+ //console.log(GI.base_info_get_name(m));
+ // console.dump(GI.base_info_get_attribute(m, 'doc') );
+
+ // this is a bit messy, as we probably loose the doc's on new..
+
+
+ XObject.extend(this, {
+ name : n,
+ params: args,
+ returns : retval,
+ isConstructor : flags & GI.IFunctionInfoFlags.IS_CONSTRUCTOR,
+ isStatic : !(flags & GI.IFunctionInfoFlags.IS_METHOD),
+ memberOf : memberOf.alias,
+ exceptions : [],
+ desc : NameSpace.doc(memberOf.alias + '.' + n_original)
+ });
+ // add descriptions to the arguments..
+ this.params.map(function(p) {
+
+
+ p.desc = NameSpace.doc(memberOf.alias + '.' + n_original + '.' + p.name);
+ //Seed.print(memberOf.alias + '.' + n_original + '.' + p.name + ':' + p.desc);
+
+ });
+
+
+ // collect references...
+ var addedto = [ memberOf.alias ]; // do not add to self...
+
+ for(var i =0; i < args.length;i++) {
+ var ty = args[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);
+ }
+
+
+ // decide what to add to...
+
+ if (this.isConstructor) {
+
+ if (this.name.match(/^new_/)) {
+ this.name = this.name.substring(4);
+ }
+
+
+ memberOf.constructors.push(this);
+ return;
+ }
+ // return values = only applicable to non-constructors..
+ for(var i =0; i < retval.length;i++) {
+ var ty = retval[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);
+ }
+
+
+ if (this.isStatic) {
+
+ memberOf.functions.push(this);
+ return;
+ }
+
+
+ memberOf.methods.push(this);
+ keylist.push(this.name);
+
+
+
+ },
+ Basic,
+ { }
+);
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+//Gtk = imports.gi.Gtk;
+GI = imports.gi.GIRepository;
+GLib = imports.gi.GLib;
+xml = imports.libxml;
+
+
+XObject = imports.XObject.XObject;
+
+console = imports.console.console;
+
+
+
+NameSpace = {
+
+
+ references : { },
+
+ namespaces : function(ns)
+ {
+ // this should be a class of it's own...
+ this.references[ns] = []; // technically not needed - but fills in files..
+ // get this from GI... (it's the path..)
+ var ret = [];
+
+ function scanGir(dir)
+ {
+ if (!GLib.file_test(dir, GLib.FileTest.EXISTS)) {
+ return;
+ }
+ var gdir = GLib.dir_open(dir,0);
+
+ while (true) {
+
+ var fn = gdir.read_name ? gdir.read_name () : GLib.dir_read_name(gdir);
+ // console.log('trying ' + fn);
+ if (!fn) {
+ gdir.close ? gdir.close() : GLib.dir_close(gdir);
+ return;;
+ }
+ if (!fn.match(/.typelib$/)) {
+ continue;
+ }
+ var par = fn.split('-').shift();
+ //console.log('trying ' + par);
+ if (ret.indexOf(par) > -1) {
+ continue;
+ }
+ ret.push(par);
+
+
+ }
+ }
+ var gi = GI.IRepository.get_default();
+ var pth = GI.IRepository.get_search_path ();
+
+ scanGir(pth[0]);
+ ret.sort();
+ console.dump(ret);
+ return ret;
+
+ },
+
+
+ ns: function(ns) {
+ var gi = GI.IRepository.get_default();
+ ret = {
+ titleType: 'Namespace',
+ ns: ns,
+ name : ns,
+ alias : ns,
+ objects : [],
+ functions : [],
+ enums : [],
+ structs: [],
+ constants : [],
+ unions : [],
+
+ // so ns looks like class..
+
+ extendsClasses : [], // what it extends...
+ childClasses : [], // what uses it..
+ properties : [],
+ constructors : [],
+ methods : [],
+ values : [], /// really constants.
+ signals : [],
+ interfaces: [],
+ };
+
+ for (var i=0; i < gi.get_n_infos (ns); i++ ) {
+ var info = gi.get_info (ns, i);
+
+ var info_type = GI.base_info_get_type (info);
+ switch(info_type) {
+ case GI.IInfoType.OBJECT:
+ ret.objects.push(GI.base_info_get_name(info));
+ this.clsGatherInterfaces(ns , GI.base_info_get_name(info));
+ continue;
+ case GI.IInfoType.INTERFACE:
+ ret.interfaces.push(GI.base_info_get_name(info));
+ continue;
+ case GI.IInfoType.FUNCTION:
+ new imports.Method.Method(info, ret, 'functions', []);
+ continue;
+
+ case GI.IInfoType.CALLBACK:
+ // new Introspect.Callback(info, ret, 'callbacks', []);
+ continue;
+
+ case GI.IInfoType.ENUM:
+ case GI.IInfoType.FLAGS:
+ ret.enums.push(GI.base_info_get_name(info));
+ continue;
+ case GI.IInfoType.STRUCT:
+ if (GI.struct_info_is_gtype_struct (info)) {
+ continue;
+ }
+
+ ret.structs.push(GI.base_info_get_name(info));
+ continue;
+ case GI.IInfoType.UNION:
+ ret.unions.push(GI.base_info_get_name(info));
+ continue;
+ case GI.IInfoType.CONSTANT:
+ new imports.Constant.Constant(info, ret, 'values', []);
+
+ continue;
+
+
+ default:
+ continue;
+ }
+ }
+
+
+ var gi = GI.IRepository.get_default();
+ var ver = gi.get_version(ns);
+ var pth = GI.IRepository.get_search_path ();
+ var gir_path = pth[0].replace(/lib\/girepository-1.0/, 'share\/gir-1.0');
+ //console.log(fn);
+ ret.gir_file = gir_path + '/'+ ns + '-' + ver + '.gir';
+ ret.gir_filename = ns + '-' + ver + '.gir';
+
+ //console.dump(this.ifaceList);
+ return ret;
+
+ },
+
+
+
+ // store all the interfaces, so we can show a list of them later...
+ // called when you list the namespace
+ clsGatherInterfaces : function(ns, cls)
+ {
+ var gi = GI.IRepository.get_default();
+ var bb = gi.find_by_name(ns, cls);
+ var fullname = ns+'.'+cls;
+ this.ifaceList = this.ifaceList || { };
+
+
+ for(var i =0; i < GI.object_info_get_n_interfaces(bb); i++) {
+
+ var prop = GI.object_info_get_interface(bb,i);
+
+ var add = GI.base_info_get_namespace(prop) +'.' + GI.base_info_get_name(prop);
+ this.ifaceList[add] = this.ifaceList[add] || [];
+ if (this.ifaceList[add].indexOf(fullname) < 0) {
+ this.ifaceList[add].push(fullname);
+ }
+
+ }
+
+
+
+ },
+
+
+
+
+ doc : function(what) {
+ var ns = what.split('.').shift();
+ this.commentLoad(ns);
+ return typeof(this.comments[ns][what]) == 'undefined' ? '' : this.comments[ns][what];
+
+ },
+
+
+
+ comments : {},
+
+ commentLoad : function(ns)
+ {
+
+ if (typeof(this.comments[ns]) != 'undefined') {
+ return;
+ }
+
+ console.log("LOAD DOCS: " + ns);
+ var gi = GI.IRepository.get_default();
+ var ver = gi.get_version(ns);
+ if (!ver) {
+ this.comments[ns] = {};
+ return;
+ }
+ var ret = { };
+
+ // no idea why this is broken on my build system.
+ var getAttribute = function(n, name){
+ var properties = n.properties;
+ while (properties){
+ if (properties.name == name)
+ return properties.children.content;
+ properties = properties.next
+ }
+ return null;
+ }
+
+
+ function walk (element, path) {
+
+
+ if (!element) {
+ return;
+ }
+
+ var n = getAttribute(element, 'name') ;
+ //console.log("WALK" + n);
+ if (element.name == 'signal') {
+ path += '.signal';
+ }
+
+ if (n) {
+ path += path.length ? '.' : '';
+ path += n;
+ }
+ if (element.name == 'return-value') {
+ path += '.return-value';
+ }
+
+ var d = getAttribute(element,'doc');
+ if (d) {
+ // Seed.print(path + ':' + d);
+ ret[path] = d;
+ }
+
+ var child = element.children;
+
+ while (child){
+ //console.log(child.tag);
+ if (child.type == "element"){
+ walk (child, path);
+ }
+ child = child.next;
+ }
+ }
+
+ var pth = GI.IRepository.get_search_path ();
+
+
+ var gir_path = pth[0].replace(/lib\/girepository-1.0/, 'share\/gir-1.0');
+
+
+ //console.log(fn);
+ var fn = gir_path + '/'+ ns + '-' + ver + '.gir';
+ // console.log(fn);
+
+ if (!GLib.file_test(fn, GLib.FileTest.EXISTS)) {
+ console.log('missing docc file ' + fn);
+ this.comments[ns] = {};
+
+ return;
+ }
+ var doc = xml.parseFile(fn);
+ //console.log("xmldoc?" + doc);
+ walk (doc.root, '');
+ //console.dump(ret);
+ this.comments[ns] = ret;
+
+ },
+ registry : { },
+ factory : function(type, ns, name) {
+ if (typeof (this.registry[ns +'.' + name]) == 'undefined') {
+ this.registry[ns +'.' + name] = new imports[type][type](ns,name);
+ this.registry[ns +'.' + name].load();
+ }
+
+ return this.registry[ns +'.' + name];
+ }
+
+});
+
+
+
--- /dev/null
+//<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;
+
+
+
+
+/**
+ * Property
+ */
+
+Property = XObject.define(
+ function(prop, memberOf, saveto, keylist) {
+ this.propertyType = 'Property';
+ var n_original = GI.base_info_get_name(prop);
+ this.name = n_original.replace(/\-/g, '_') ,
+ this.type = this.typeToName(GI.property_info_get_type(prop)),
+ this.flags = GI.property_info_get_flags(prop),
+ this.memberOf = memberOf.alias
+ memberOf[saveto].push(this);
+ keylist.push(this.name);
+ this.desc = NameSpace.doc(this.memberOf + '.' + n_original);
+
+
+ if (typeof(this.type) == 'string' && this.type.indexOf('.') > -1) {
+
+ NameSpace.references[this.type] = NameSpace.references[this.type] || [];
+ NameSpace.references[this.type].push(this);
+ }
+
+ },
+ Basic
+);
--- /dev/null
+//<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
+);
+
+
+
--- /dev/null
+//<script type="text/javascript">
+
+GI = imports.gi.GIRepository;
+
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+NameSpace = imports.NameSpace.NameSpace;
+
+Base = imports.Base.Base;
+
+
+
+/**
+ * Struct
+ */
+
+Struct = XObject.define(
+ function(ns, name) {
+ Base.call(this, ns, name);
+
+ },
+
+ Base,
+ {
+ titleType: 'Struct',
+
+ _loaded : false,
+ load : function()
+ {
+ if (this._loaded) {
+ return; // already loaded..
+ }
+ // my props..
+ var props = [];
+ this.genericBuildList('struct', 'field', props, 'properties');
+
+ var methods = [];
+
+
+ if (GI.struct_info_get_size (this.getBI()) > 0 ) {
+
+
+
+ this.constructors.push({
+ name : '',
+ params: [],
+ returns : [],
+ isConstructor : true,
+ isStatic : false,
+ memberOf : this.alias,
+ exceptions : [],
+ desc : ''
+ });
+ }
+
+ this.genericBuildList('struct', 'method', methods, 'methods');
+
+ this._loaded = true;
+ },
+
+
+});
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+
+GI = imports.gi.GIRepository;
+
+
+
+XObject = imports.XObject.XObject;
+console = imports.console.console;
+
+Base = imports.Base.Base;
+
+
+
+
+/**
+ * Union
+ */
+
+Union = XObject.define(
+ function(ns, name) {
+ Base.call(this, ns, name);
+
+ },
+ Base,
+ {
+ titleType: 'Union',
+ _loaded : false,
+ load : function()
+ {
+ if (this._loaded) {
+ return; // already loaded..
+ }
+ // my props..
+ var props = [];
+ this.genericBuildList('union', 'field', props, 'properties');
+
+ if (GI.union_info_get_size (this.getBI()) > 0 ) {
+
+ this.constructors.push({
+ name : '',
+ params: [],
+ returns : [],
+ isConstructor : true,
+ isStatic : false,
+ memberOf : this.alias,
+ exceptions : [],
+ desc : ''
+ });
+ }
+ var methods = [];
+ this.genericBuildList('union', 'method', methods, 'methods');
+
+ this._loaded = true;
+ }
+
+
+});
+
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+/**
+* @class xml.XMLNode
+* Xml node
+* @noconstructor
+*
+* @cfg {String} name Name of Node ???
+* @cfg {XMLNode} children First child (use next property to iterate children
+* @cfg {XMLNode} parent Parent node of this one
+* @cfg {XMLNode} next Next sibling
+* @cfg {XMLNode} prev Previous sibling
+* @cfg {String} Text contents of Node
+* @cfg {XMLNode} last Last Sibling? or last child - FIXME
+* @cfg {String} type - Type of node : element, attribute, text
+* @cfg {XMLAttribute} properties First Attribute of node
+*/
+XMLNode = function() {}
+
+Roo.apply(XMLNode.prototype, {
+
+});
+
+
+/**
+* @class xml.XMLDocument
+* Xml document
+* @noconstructor
+*
+* @cfg {String} name Name of Node ???
+* @cfg {XMLNode} children First child (use next property to iterate children
+* @cfg {XMLNode} parent Parent node of this one
+* @cfg {XMLNode} next Next sibling
+* @cfg {XMLNode} prev Previous sibling
+* @cfg {String} Text contents of Node
+* @cfg {XMLNode} last Last Sibling? or last child - FIXME
+* @cfg {String} type - Type of node : element, attribute, text
+* @cfg {XMLAttribute} properties First Attribute of node
+* @cfg {XMLNode} root Root node of document.
+*/
+
+
+XMLDocument = function () { };
+
+Roo.extend(XMLDocument, XMLNode, {
+ root : { },
+});
+
+
+/**
+* Create a new xpath context ?
+* @param {Object} .....
+* @return {XMLNode} returns obj
+* @member XMLDocument xpathNewContext
+*/
+
+XMLDocument.xpathNewContext = function() { }
+
+
+
+
+
+XMLAttribute = function () { };
+
+Roo.extend(XMLAttribute, XMLNode, {
+
+});
+
+
+XMLXPathContext = function() { };
+Roo.apply(XMLXPathContext.prototype, {
+ value : '',
+});
+
+XMLXPathContext.xpathEval = function () {}
+XMLXPathContext.xpathRegisterNs = function () {}
+
+
+XMLXPathObj = function() { };
+Roo.apply(XMLXPathObj.prototype, {
+ value : '',
+});
+
+
+
+parseFile = function () { }
+parseString = function () { }
+_nodeProto = { }
+
+
+
\ No newline at end of file