// does not handle Enums... - no need to handle anything else.
var def = this.type.contains(".") ? "" : Gir.guessDefaultValueForType(this.type);
- if (this.type.contains(".") || this.type.down() == "function") {
+ if (this.type.contains(".") ) {
return new JsRender.NodeProp.raw(this.name, this.type, def);
}
-
+ if (this.type.down() == "function" ) {
+ return new JsRender.NodeProp.raw(this.name, this.type, "function()\n{\n\n}");
+ }
+ if (this.type.down() == "array" ) {
+ return new JsRender.NodeProp.raw(this.name, this.type, "[\n\n]");
+ }
+ if (this.type.down() == "object" ) {
+ return new JsRender.NodeProp.raw(this.name, this.type, "{\n\n}");
+ }
return new JsRender.NodeProp.prop(this.name, this.type, def); // signature?
}
case JsRender.NodePropType.PROP:
- return cls.props;
+ return this.filterProps(cls.props);
case JsRender.NodePropType.LISTENER:
return cls.signals;
case JsRender.NodePropType.METHOD:
}
+
+
+ public Gee.HashMap<string,GirObject> filterProps(Gee.HashMap<string,GirObject> props)
+ {
+ // we shold probably cache this??
+
+ var outprops = new Gee.HashMap<string,GirObject>();
+
+ foreach(var k in props.keys) {
+ var val = props.get(k);
+
+ // special props..
+ switch(k) {
+ case "listeners" :
+ continue;
+ default:
+ break;
+ }
+
+
+ if (!val.type.contains(".")) {
+ outprops.set(k,val);
+ continue;
+ }
+
+
+
+ // do nothing? - classes not allowed?
+
+ }
+
+
+ return outprops;
+
+
+ }
+
+
public string[] getInheritsFor(string ename)
{
string[] ret = {};