src/Palete/Gir.vala
authorAlan Knowles <alan@roojs.com>
Thu, 7 May 2015 08:47:28 +0000 (16:47 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 7 May 2015 08:47:28 +0000 (16:47 +0800)
src/Palete/Gir.vala

index ac8a6f7..5837cb1 100644 (file)
@@ -54,6 +54,44 @@ namespace Palete {
                 * that changes the ctor's for some elements.
                 * 
                 */
+                
+               public static void checkParamOverride(GirObject c)
+               {
+                       var parset = c.gparent;
+                       if (parset == null || parset.nodetype != "Paramset") {
+                               return;
+                       }
+                       var method = parset.gparent;
+                       if (method == null || method.nodetype != "Ctor") {
+                               return;
+                       }
+                       var cls = method.gparent;
+                       if (cls == null || cls.nodetype != "Class") {
+                               return;
+                       }
+
+                        
+               
+                       c.name = this.fetchOverride( cls.name, method.name, c.name);
+               }
+               public static bool overrides_loaded = false;
+               public static Gee.HashMap<string,string> overrides;
+       
+               public string fetchOverride(  string cls, string method, string param)
+               {
+                       // overrides should be in a file Gir.overides
+                       // in that "Gtk.Label.new.str" : "label"
+                       this.loadOverrides();
+                       var key = "%s.%s.%s".printf(cls,method,param);
+                       //print("Chekcing for key %s\n", key);
+                       if (!overrides.has_key(key)) {
+                               return param;
+                       }
+                       return overrides.get(key);
+
+
+               }
+                
                 public void loadOverrides(bool force = false)
                {
                        if (overrides_loaded && ! force) {