return;
}
+
+
//print("parsing namespace %s\n", element.name);
if (element.name == null) {
element.accept_children(this); // catch sub namespaces..
return;
}
+ this.add_namespace(null, element);
+ }
+ public void add_namespace(GirObject? parent, Vala.Namespace element)
+ {
+
- var g = new Gir(element.name);
- Gir.cache.set(element.name, g);
+ var g = new GirObject("Package",element.name) ;
+ if (parent == null) {
+ Gir.cache.set(element.name, (Gir)g);
+ } else {
+ // we add it as a class of the package.. even though its a namespace..
+ parent.classes.set(element.name, g);
+ }
foreach(var c in element.get_classes()) {
foreach(var c in element.get_interfaces()) {
this.add_interface(g, c);
}
-
+ foreach(var c in element.get_namespaces()) {
+ this.add_namespace(g, c);
+ }
+ foreach(var c in element.get_methods()) {
+ this.add_method(g, c);
+ }
element.accept_children(this); // catch sub namespaces..
}
-
+
public void add_enum(GirObject parent, Vala.Enum cls)
{
c.gparent = parent;
c.ns = parent.ns;
c.propertyof = parent.name;
+
c.type = prop.property_type.data_type == null ? "" : prop.property_type.data_type.get_full_name();
parent.props.set(prop.name,c);
cc.gparent = c;
cc.ns = c.ns;
c.paramset = cc;
-
+ c.sig = "(";
foreach(var p in params) {
if (p.name == null && !p.ellipsis) {
continue;
}
- this.add_param(cc, p);
+ var pp = this.add_param(cc, p);
+ c.sig += (c.sig == "(" ? "" : ",");
+ c.sig += " " + (pp.direction == "in" ? "" : pp.direction) + " " + pp.type + " " + pp.name;
}
+ c.sig += (c.sig == "(" ? ")" : " )");
}
- public void add_param(GirObject parent, Vala.Parameter pam)
+ public GirObject add_param(GirObject parent, Vala.Parameter pam)
{
var n = pam.name;
var c = new GirObject("Param",n);
c.gparent = parent;
c.ns = parent.ns;
+ c.direction = "??";
+ switch (pam.direction) {
+ case Vala.ParameterDirection.IN:
+ c.direction = "in";
+ break;
+ case Vala.ParameterDirection.OUT:
+ c.direction = "out";
+ break;
+ case Vala.ParameterDirection.REF:
+ c.direction = "ref";
+ break;
+ }
+
parent.params.add(c);
if (!pam.ellipsis) {
c.type = pam.variable_type.data_type == null ? "" : pam.variable_type.data_type.get_full_name();
}
Gir.checkParamOverride(c);
+ return c;
}
context.experimental = false;
context.experimental_non_null = false;
-
-#if VALA_0_28
+#if VALA_0_32
+ var ver=32;
+#elif VALA_0_30
+ var ver=30;
+#elif VALA_0_28
var ver=28;
#elif VALA_0_26
var ver=26;
if (!context.add_external_package ("webkit2gtk-4.0")) {
context.add_external_package ("webkit2gtk-3.0");
}
+ // these are supposed to be in the 'deps' file, but it's not getting read..
+ context.add_external_package ("cogl-1.0");
+ context.add_external_package ("json-glib-1.0");
context.add_external_package ("clutter-gtk-1.0");
+
+
+
context.add_external_package ("gdl-3.0");
context.add_external_package ("gtksourceview-3.0");
context.add_external_package ("vte-2.90"); //??? -- hopefullly that works..