diff --git a/ChangeLog b/ChangeLog index 92b358a55..0db40ec37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2002-08-09 Kristian Rietveld + + * parser/Gtk.metadata: add a bunch of out arg rules, add + a vararg rule for the ListStore constructor, change method names of + TreeModel's signal emission methods, remove opaque rule of + GtkTreeIter, remove null_ok rules of TreeModel.IterNChildren + and TreeModel.IterNthChild. + + * parser/Metadata.pm: add some code to be able to filter on + parameter names. + + * generator/Method.cs: a method with accessor args and a non-void + return value cannot be written as property. + + * sample/Makefile.in, sample/TreeViewDemo.cs: add a simple TreeView + demo app. + + * gtk/ListStore.custom, gtk/TreeModel.custom, gtk/TreeModelSort.custom, + gtk/TreeStore.custom, gtk/TreeView.custom: customizations. + 2002-08-09 Mike Kestner * generator/ObjectGen.cs (GenerateMapper): guard against IntPtr.Zero diff --git a/generator/Method.cs b/generator/Method.cs index c501da54f..97618fd4d 100644 --- a/generator/Method.cs +++ b/generator/Method.cs @@ -158,7 +158,7 @@ namespace GtkSharp.Generation { else safety = ""; - is_get = ((parms != null && (parms.IsAccessor || (parms.Count == 0 && s_ret != "void")) || (parms == null && s_ret != "void")) && Name.Length > 3 && Name.Substring(0, 3) == "Get"); + is_get = ((parms != null && ((parms.IsAccessor && s_ret == "void") || (parms.Count == 0 && s_ret != "void")) || (parms == null && s_ret != "void")) && Name.Length > 3 && Name.Substring(0, 3) == "Get"); is_set = ((parms != null && (parms.IsAccessor || (parms.Count == 1 && s_ret == "void"))) && (Name.Length > 3 && Name.Substring(0, 3) == "Set")); if (parms != null) { diff --git a/generator/gtkapi.xml b/generator/gtkapi.xml index 180cd7ef6..55c0db171 100644 --- a/generator/gtkapi.xml +++ b/generator/gtkapi.xml @@ -5128,20 +5128,20 @@ - + - + - + @@ -5175,7 +5175,7 @@ - + @@ -5188,27 +5188,27 @@ - + - + - - + + - + @@ -5218,34 +5218,34 @@ - + - + - + - + - + @@ -8324,7 +8324,7 @@ - + @@ -8336,21 +8336,21 @@ - + - + - + @@ -8361,7 +8361,7 @@ - + @@ -8369,13 +8369,13 @@ - + - + @@ -11815,7 +11815,7 @@ - + @@ -11828,7 +11828,7 @@ - + @@ -11872,7 +11872,7 @@ - + @@ -11977,7 +11977,7 @@ - + @@ -11990,7 +11990,7 @@ - + @@ -11998,7 +11998,7 @@ - + @@ -12006,7 +12006,7 @@ - + @@ -12039,14 +12039,14 @@ - + - + @@ -15552,7 +15552,7 @@ - + diff --git a/parser/GAPI/Metadata.pm b/parser/GAPI/Metadata.pm index 973ebb259..d6eaa735b 100644 --- a/parser/GAPI/Metadata.pm +++ b/parser/GAPI/Metadata.pm @@ -116,15 +116,24 @@ sub fixupParams { for ($node = $params_node->firstChild; $node; $node = $node->nextSibling ()) { my $param_type; + my $param_name; + foreach $attr ($node->attributes) { if ($attr->name eq "type") { $param_type = $attr->value; - last; + } elsif ($attr->name eq "name") { + $param_name = $attr->value; } } - if ($param_type eq $$data[4]) { - $node->setAttribute ($$data[5], $$data[6]); + if ($$data[3] eq "type") { + if ($param_type eq $$data[4]) { + $node->setAttribute ($$data[5], $$data[6]); + } + } elsif ($$data[3] eq "name") { + if ($param_name eq $$data[4]) { + $node->setAttribute ($$data[5], $$data[6]); + } } } } diff --git a/parser/Gtk.metadata b/parser/Gtk.metadata index 7729e84e9..cf99bc6dd 100644 --- a/parser/Gtk.metadata +++ b/parser/Gtk.metadata @@ -42,6 +42,94 @@ + + + Append + Insert + InsertAfter + InsertBefore + Prepend + Remove + + + + iter + pass_as + out + + + + + + ConvertChildIterToIter + + + + sort_iter + pass_as + out + + + + + + GetIter + GetIterFirst + GetIterFromString + IterChildren + IterNext + IterNthChild + IterParent + + + + iter + pass_as + out + + + + + + ConvertIterToChildIter + + + + child_iter + pass_as + out + + + + + + GetSelected + + + + iter + pass_as + out + + + + + + Append + Insert + InsertAfter + InsertBefore + Prepend + Remove + + + + iter + pass_as + out + + + @@ -55,6 +143,17 @@ + + + gtk_list_store_newv + + + + va_type + length_param + + + @@ -944,7 +1043,7 @@ name - DeleteRow + EmitRowDeleted @@ -955,7 +1054,7 @@ name - ToggleRowHasChild + EmitRowHasChildToggled @@ -966,7 +1065,7 @@ name - InsertRow + EmitRowInserted @@ -977,7 +1076,7 @@ name - ChangeRow + EmitRowChanged @@ -988,7 +1087,7 @@ name - ReorderRows + EmitRowsReordered @@ -1535,39 +1634,6 @@ - - - - - opaque - 1 - - - - - - IterNChildren - - - - GtkTreeIter* - null_ok - 1 - - - - - - IterNthChild - - - - GtkTreeIter* - null_ok - 1 - - - gtk_tree_view_new_with_model diff --git a/parser/Metadata.pm b/parser/Metadata.pm index 973ebb259..d6eaa735b 100644 --- a/parser/Metadata.pm +++ b/parser/Metadata.pm @@ -116,15 +116,24 @@ sub fixupParams { for ($node = $params_node->firstChild; $node; $node = $node->nextSibling ()) { my $param_type; + my $param_name; + foreach $attr ($node->attributes) { if ($attr->name eq "type") { $param_type = $attr->value; - last; + } elsif ($attr->name eq "name") { + $param_name = $attr->value; } } - if ($param_type eq $$data[4]) { - $node->setAttribute ($$data[5], $$data[6]); + if ($$data[3] eq "type") { + if ($param_type eq $$data[4]) { + $node->setAttribute ($$data[5], $$data[6]); + } + } elsif ($$data[3] eq "name") { + if ($param_name eq $$data[4]) { + $node->setAttribute ($$data[5], $$data[6]); + } } } } diff --git a/sample/Makefile.in b/sample/Makefile.in index 5799d5e7a..b242a576a 100755 --- a/sample/Makefile.in +++ b/sample/Makefile.in @@ -14,7 +14,7 @@ windows: $(CSC) /unsafe /out:gtk-hello-world.exe /r:../glib/glib-sharp.dll /r:../gtk/gtk-sharp.dll /r:../gdk/gdk-sharp.dll HelloWorld.cs $(CSC) /unsafe /out:button.exe /r:../glib/glib-sharp.dll /r:../gtk/gtk-sharp.dll ButtonApp.cs -linux: gtk-hello-world.exe button.exe menu.exe size.exe scribble.exe $(GNOME_TARGETS) +linux: gtk-hello-world.exe button.exe menu.exe size.exe scribble.exe treeviewdemo.exe $(GNOME_TARGETS) gtk-hello-world.exe: HelloWorld.cs $(MCS) --unsafe -o gtk-hello-world.exe $(local_paths) $(all_assemblies) HelloWorld.cs @@ -40,6 +40,9 @@ size.exe: Size.cs scribble.exe: Scribble.cs $(MCS) --unsafe -o scribble.exe $(local_paths) $(all_assemblies) Scribble.cs +treeviewdemo.exe: TreeViewDemo.cs + $(MCS) --unsafe -o treeviewdemo.exe $(local_paths) $(all_assemblies) TreeViewDemo.cs + clean: rm -f *.exe diff --git a/sources/Gtk.metadata b/sources/Gtk.metadata index 7729e84e9..cf99bc6dd 100644 --- a/sources/Gtk.metadata +++ b/sources/Gtk.metadata @@ -42,6 +42,94 @@ + + + Append + Insert + InsertAfter + InsertBefore + Prepend + Remove + + + + iter + pass_as + out + + + + + + ConvertChildIterToIter + + + + sort_iter + pass_as + out + + + + + + GetIter + GetIterFirst + GetIterFromString + IterChildren + IterNext + IterNthChild + IterParent + + + + iter + pass_as + out + + + + + + ConvertIterToChildIter + + + + child_iter + pass_as + out + + + + + + GetSelected + + + + iter + pass_as + out + + + + + + Append + Insert + InsertAfter + InsertBefore + Prepend + Remove + + + + iter + pass_as + out + + + @@ -55,6 +143,17 @@ + + + gtk_list_store_newv + + + + va_type + length_param + + + @@ -944,7 +1043,7 @@ name - DeleteRow + EmitRowDeleted @@ -955,7 +1054,7 @@ name - ToggleRowHasChild + EmitRowHasChildToggled @@ -966,7 +1065,7 @@ name - InsertRow + EmitRowInserted @@ -977,7 +1076,7 @@ name - ChangeRow + EmitRowChanged @@ -988,7 +1087,7 @@ name - ReorderRows + EmitRowsReordered @@ -1535,39 +1634,6 @@ - - - - - opaque - 1 - - - - - - IterNChildren - - - - GtkTreeIter* - null_ok - 1 - - - - - - IterNthChild - - - - GtkTreeIter* - null_ok - 1 - - - gtk_tree_view_new_with_model