X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=tools%2Fbuild_gtk_tree.js;h=526fa59f49f18b0797844aace0fbbd33854e16f8;hb=e06c1cf8c9a2c679eef536271e5478c3fa6406c8;hp=8fa6646efe759be99df65b52516bdaa0331800d6;hpb=b060c2cd5eca1de4949eb153c1712a5c79dac0fc;p=app.Builder.js diff --git a/tools/build_gtk_tree.js b/tools/build_gtk_tree.js index 8fa6646ef..526fa59f4 100644 --- a/tools/build_gtk_tree.js +++ b/tools/build_gtk_tree.js @@ -291,16 +291,47 @@ right: usage[par] = []; } usage[par].pushUnique(cls); - + if (typeof(tops[cls]) == 'undefined') { + tops[cls] = []; + } + tops[cls].pushUnique(par); } } + function canTop(cls, rec) { + + rec = rec || 0; + print('CANTOP: ' + cls + ' =' + rec); + if (rec > 5) { + print('SKIP : ' + cls); + } + if (typeof(tops[cls]) == 'undefined') { + return false; + } + for (var i =0; i < tops[cls].length; i++) { + if (tops[cls][i] == '*top') { + return true; + } + if (cls == tops[cls][i]) { + continue; + } + if (canTop(cls, rec+1)) { + return true; + } + } + return false; + + } + var nusage = {}; for(var par in usage) { // see if the parent can be added to something. - + if (!canTop(par)) { + continue; + } + nusage[par] = usage[par]; } - print(JSON.stringify(usage,null,4)); + print(JSON.stringify(nusage,null,4));