foreach(var c in element.get_classes()) {
this.add_class(g, c);
}
+ foreach(var c in element.get_enums()) {
+ this.add_enum(g, c);
+ }
+
element.accept_children(this); // catch sub namespaces..
}
+
+ public void add_enum(GirObject parent, Vala.Enum cls)
+ {
+
+ var c = new GirObject("Enum", cls.name);
+ parent.consts.set(cls.name, c);
+ c.ns = parent.name;
+ c.gparent = parent;
+
+ foreach(var e in cls.get_values()) {
+ var em = new GirObject("EnumMember",e.name);
+ em.gparent = c;
+ em.ns = c.ns;
+ em.type = e.type_reference == null || e.type_reference.data_type == null ? "" : e.type_reference.data_type.get_full_name();
+ // unlikely to get value..
+ //c.value = element->get_prop("value");
+ c.consts.set(e.name,em);
+ }
+
+
+
+
+ }
+
+
public void add_class(GirObject parent, Vala.Class cls)
{
foreach(var p in cls.get_methods()) {
// skip static methods..
- if (p.binding != Vala.MemberBinding.INSTANCE) {
+ if (p.binding != Vala.MemberBinding.INSTANCE &&
+ !(p is Vala.CreationMethod)
+ ) {
continue;
}
public void add_method(GirObject parent, Vala.Method met)
{
+ var n = met.name == null ? parent.name : "";
+ var ty = "Method";
+ if (met is Vala.CreationMethod && n == "") {
+ n = ".new";
+ ty = "Ctor";
+ }
-
- var c = new GirObject("Method",met.name == null ? parent.name : "");
+ var c = new GirObject(ty,n);
c.gparent = parent;
c.ns = parent.ns;