src/Builder4/config1.builder
[app.Builder.js] / src / Palete / Gir.vala
index 29d7701..0b60527 100644 (file)
@@ -48,7 +48,86 @@ namespace Palete {
                        return pr.doctxt != null ? pr.doctxt : "";
 
                }
+               /**
+                * since constructors from the API from gir or vala do not map
+                * correctly to properties, we have an Gir.overides file in resources
+                * that changes the ctor's for some elements.
+                * 
+                */
                 
+               public static void checkParamOverride(GirObject c)
+               {
+                       
+                       print("checkParamOverride :check %s\n", c.name);
+                       var parset = c.gparent;
+                       if (parset == null || parset.nodetype != "Paramset") {
+                               print("skip parent not Paramset\n");
+                               return;
+                       }
+                       var method = parset.gparent;
+                       // we can do this for pack methods..
+                       if (method == null) {
+                               print("skip parent.parent is null\n");
+                               return;
+                       }
+                       var cls = method.gparent;
+                       if (cls == null || cls.nodetype != "Class") {
+                               //print("skip parent.parent.parent not Class\n");
+                               return;
+                       }
+
+                        
+                       
+                       c.name =  fetchOverride( cls.name, method.name, c.name);
+               }
+               public static bool overrides_loaded = false;
+               public static Gee.HashMap<string,string> overrides;
+       
+               public static string fetchOverride(  string cls, string method, string param)
+               {
+                       // overrides should be in a file Gir.overides
+                       // in that "Gtk.Label.new.str" : "label"
+                       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 static void loadOverrides(bool force = false)
+               {
+                       if (overrides_loaded && ! force) {
+                               return;
+                       }
+               
+                       var pa = new Json.Parser();
+                       pa.load_from_file(BuilderApplication.configDirectory() + "/resources/Gir.overides");
+                       var node = pa.get_root();
+                   
+                       if (node.get_node_type () != Json.NodeType.OBJECT) {
+                               throw new GirError.INVALID_FORMAT ("Error loading gir.overides : Unexpected element type %s", node.type_name ());
+                       }
+                       overrides = new Gee.HashMap<string,string>();
+               
+               
+                       var obj = node.get_object ();
+               
+               
+                       obj.foreach_member((o , key, value) => {
+                               //print(key+"\n");
+                               var v = obj.get_string_member(key);
+                               overrides.set(key, v);
+                       });
+       
+                       overrides_loaded = true;
+
+               
+
+               }
                
                /**
                 *  == all static below here...
@@ -179,40 +258,7 @@ namespace Palete {
 
                }
 
-               public void loadOverrides(bool force = false)
-               {
-                       if (overrides_loaded && ! force) {
-                               return;
-                       }
                
-                       var pa = new Json.Parser();
-                       pa.load_from_file(BuilderApplication.configDirectory() + "/resources/Gir.overides");
-                       var node = pa.get_root();
-                   
-                       if (node.get_node_type () != Json.NodeType.OBJECT) {
-                               throw new GirError.INVALID_FORMAT ("Error loading gir.overides : Unexpected element type %s", node.type_name ());
-                       }
-                       overrides = new Gee.HashMap<string,string>();
-               
-               
-                       var obj = node.get_object ();
-               
-               
-                       obj.foreach_member((o , key, value) => {
-                               //print(key+"\n");
-                                
-                               var v = obj.get_string_member(key);
-                       
-                       
-                               overrides.set(key, v);
-
-                       });
-       
-                       overrides_loaded = true;
-
-               
-
-               }