Add MiniObject code generator specific cases at more places

This commit is contained in:
Sebastian Dröge 2009-06-02 12:34:18 +02:00
parent 1793e22f84
commit 74756f2c2a
4 changed files with 5 additions and 3 deletions

View file

@ -37,7 +37,7 @@ namespace GtkSharp.Generation {
{ {
if (elem.HasAttribute ("preferred")) if (elem.HasAttribute ("preferred"))
preferred = true; preferred = true;
if (implementor is ObjectGen) if (implementor is ObjectGen || implementor is MiniObjectGen)
needs_chaining = true; needs_chaining = true;
name = implementor.Name; name = implementor.Name;
} }

View file

@ -124,6 +124,8 @@ namespace GtkSharp.Generation {
if (igen is ObjectGen) if (igen is ObjectGen)
return "GLib.GType.Object"; return "GLib.GType.Object";
if (igen is MiniObjectGen)
return "Gst.MiniObject.GType";
if (igen is BoxedGen) if (igen is BoxedGen)
return retval.CSType + ".GType"; return retval.CSType + ".GType";
if (igen is EnumGen) if (igen is EnumGen)

View file

@ -118,7 +118,7 @@ namespace GtkSharp.Generation {
if (Name == "ToString" && Parameters.Count == 0) if (Name == "ToString" && Parameters.Count == 0)
sw.Write("override "); sw.Write("override ");
else if (Name == "GetGType" && container_type is ObjectGen) else if (Name == "GetGType" && (container_type is ObjectGen || container_type is MiniObjectGen))
sw.Write("new "); sw.Write("new ");
else if (Modifiers == "new " || (dup != null && ((dup.Signature != null && Signature != null && dup.Signature.ToString() == Signature.ToString()) || (dup.Signature == null && Signature == null)))) else if (Modifiers == "new " || (dup != null && ((dup.Signature != null && Signature != null && dup.Signature.ToString() == Signature.ToString()) || (dup.Signature == null && Signature == null))))
sw.Write("new "); sw.Write("new ");

View file

@ -146,7 +146,7 @@ namespace GtkSharp.Generation {
if (IGen is IManualMarshaler) if (IGen is IManualMarshaler)
return (IGen as IManualMarshaler).AllocNative (var); return (IGen as IManualMarshaler).AllocNative (var);
else if (IGen is ObjectGen && owned) else if ((IGen is ObjectGen || IGen is MiniObjectGen) && owned)
return var + " == null ? IntPtr.Zero : " + var + ".OwnedHandle"; return var + " == null ? IntPtr.Zero : " + var + ".OwnedHandle";
else if (IGen is OpaqueGen && owned) else if (IGen is OpaqueGen && owned)
return var + " == null ? IntPtr.Zero : " + var + ".OwnedCopy"; return var + " == null ? IntPtr.Zero : " + var + ".OwnedCopy";