From: Jürg Billeter Date: Sat, 5 Jun 2010 07:51:45 +0000 (+0200) Subject: dova: Support delegates X-Git-Tag: 0.9.1~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7e032ff7d574cebcd472728c5255263adaa84768;p=thirdparty%2Fvala.git dova: Support delegates --- diff --git a/vala/valadelegate.vala b/vala/valadelegate.vala index afedd3b82..09538e98a 100644 --- a/vala/valadelegate.vala +++ b/vala/valadelegate.vala @@ -228,6 +228,17 @@ public class Vala.Delegate : TypeSymbol { this.cname = cname; } + public override string? get_lower_case_cname (string? infix) { + if (infix == null) { + infix = ""; + } + return "%s%s%s".printf (parent_symbol.get_lower_case_cprefix (), infix, camel_case_to_lower_case (name)); + } + + public override string? get_upper_case_cname (string? infix) { + return get_lower_case_cname (infix).up (); + } + private void process_ccode_attribute (Attribute a) { if (a.has_argument ("cname")) { set_cname (a.get_string ("cname")); diff --git a/vala/valadelegatetype.vala b/vala/valadelegatetype.vala index 8d337e019..15dc2c3dd 100644 --- a/vala/valadelegatetype.vala +++ b/vala/valadelegatetype.vala @@ -68,7 +68,11 @@ public class Vala.DelegateType : DataType { } public override string? get_cname () { - return delegate_symbol.get_cname (); + if (CodeContext.get ().profile == Profile.DOVA) { + return "%s*".printf (delegate_symbol.get_cname ()); + } else { + return delegate_symbol.get_cname (); + } } public override List get_symbols () {