* that changes the ctor's for some elements.
*
*/
- public void loadOverrides(bool force = false)
+
+ 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();
+ pa.load_from_file(BuilderApplication.configDirectory() + "/resources/Gir.overides");
+ var node = pa.get_root();
- if (node.get_node_type () != Json.NodeType.OBJECT) {
+ 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 ();
+ 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;