* generator/Method.cs (GenerateDeclCommon): Strip "Get"/"Set" even

in the context of "Gtk.TreeModel.GetNColumns"

	* generator/CallbackGen.cs (GenWrapper): treat InterfaceGen return
	values the same as ObjectGen

svn path=/trunk/gtk-sharp/; revision=48192
This commit is contained in:
Dan Winship 2005-08-09 18:38:35 +00:00
parent d6ec3f77ff
commit 1428e774c8
3 changed files with 14 additions and 3 deletions

View File

@ -15,6 +15,9 @@
interfaces. Also, it's only a collision if the methods' signatures
have the same types.
* generator/Method.cs (GenerateDeclCommon): Strip "Get"/"Set" even
in the context of "Gtk.TreeModel.GetNColumns"
* generator/Signal.cs (GenDefaultHandlerDelegate): Use
"{0}_managed" rather than "obj" for the internal variable name, to
avoid compile problems with signals that have a parameter named
@ -23,6 +26,9 @@
* generator/SymbolTable.cs (MangleName): mangle "internal" to
"_internal".
* generator/CallbackGen.cs (GenWrapper): treat InterfaceGen return
values the same as ObjectGen
2005-08-09 Dan Winship <danw@novell.com>
* generator/OpaqueGen.cs (Generate): Tweak the generated Ref/Unref

View File

@ -143,7 +143,7 @@ namespace GtkSharp.Generation {
SymbolTable table = SymbolTable.Table;
ClassBase ret_wrapper = table.GetClassGen (retval.CType);
if (ret_wrapper != null && (ret_wrapper is ObjectGen || ret_wrapper is OpaqueGen))
if (ret_wrapper != null && (ret_wrapper is ObjectGen || ret_wrapper is OpaqueGen || ret_wrapper is InterfaceGen))
sw.WriteLine ("(({0}) {1}).Handle;", retval.CSType, invoke);
else if (table.IsStruct (retval.CType) || table.IsBoxed (retval.CType)) {
// Shoot. I have no idea what to do here.

View File

@ -148,8 +148,13 @@ namespace GtkSharp.Generation {
sw.Write(" ");
if (Name.StartsWith ("Get") || Name.StartsWith ("Set"))
sw.Write (Name.Substring (3));
else
sw.Write (Name);
else {
int dot = Name.LastIndexOf ('.');
if (dot != -1 && (Name.Substring (dot + 1, 3) == "Get" || Name.Substring (dot + 1, 3) == "Set"))
sw.Write (Name.Substring (0, dot + 1) + Name.Substring (dot + 4));
else
sw.Write (Name);
}
sw.WriteLine(" { ");
} else if (IsAccessor) {
sw.Write (Signature.AccessorType + " " + Name + "(" + Signature.AsAccessor + ")");