if (method !='Gtk.Container:add') {
return true;
}
+
var cls = parent.split('.').pop();
- var x = new Gtk[cls]();
+
+ /*
+ if (parent == 'Gtk.Bin' || methods['Gtk.Bin'].extendsClasses.indexOf(parent) > -1) {
+ return false;
+ }
+ if (['GtkSource.CompletionInfo',
+ 'Gtk.MenuShell',
+ 'GtkSource.View', // ??? nothing can be added to it?
+ 'WebKit.WebView', // ??? nothing can be added to it?
+ 'GtkClutter.Embed'
+ ].indexOf(parent) > -1) {
+ return false;
+ }
+ */
+
+ //print("TRY ctor: " + parent );
+
+ var x = new imports.gi.Gtk[cls]();
+ //print("TRY child type: " + parent);
+
print(parent + " : says children are of type : " + x.child_type());
+ // get the Gtype for the child?
+
+
return true;
}
function verifyUsage(parent,child)
{
// find all the methods that child can be added to parent.
- var methods = methods[parent].can_contain_using;
- for(var i =0;i<methods.length;i++) {
- var m = methods[i].split(':');
+ var mts = methods[parent].can_contain_using;
+ for(var i =0;i<mts.length;i++) {
+ var m = mts[i].split(':');
if (!is_a(child,m[0])) {
continue;
}
- if (verifyUsageMethod(parent,child,methods[i])) {
+ if (verifyUsageMethod(parent,child,mts[i])) {
return true;
}
}
}
for (var par in methods[cls].can_be_added_to_as) {
+ if (!verifyUsage(par,cls)) {
+ continue;
+ }
+
if (typeof(usage[par]) == 'undefined') {
usage[par] = [];
}
- if (!verifyUsage(par,cls)) {
- continue;
- }
+
usage[par].pushUnique(cls);
if (typeof(tops[cls]) == 'undefined') {
return false;
}
+
+
+
+ print (JSON.stringify(usage,null,4));
var nusage = {};
var usage_left = {};
for(var par in usage) {
//print(JSON.stringify(implementations,null,4));
}
+imports.gi.Gtk.init(Seed.argv);
BuildLists();
// we now have a list of classes / methods that can be used..