[Mono-list] GTK# Patch for TreeStore, ListStore, and TextIter

Kristian Rietveld kris@gtk.org
21 Nov 2002 19:18:36 +0100


On Thu, 2002-11-21 at 04:12, Daniel Morgan wrote:
> SetColumnTypes should be an array like the GTK+ 2.0 API says:

Oh blah I see now. Dunno why I was comparing this function with the
constructors .... I guess I was already sleeping...


apologies,


	Kris

> 
> gtk_list_store_set_column_types ()
> void        gtk_list_store_set_column_types (GtkListStore *list_store,
>                                              gint n_columns,
>                                              GType *types);
> 
> This function is meant primarily for GObjects that inherit from
> GtkListStore, and should only be used when constructing a new GtkListStore.
> It will not function after a row has been added, or a method on the
> GtkTreeModel interface is called.
> 
> list_store : A GtkListStore
> n_columns : Number of columns for the list store
> types : An array length n of GTypes
> 
> It does not mention var_args.
> 
> This is what I am trying to create with the Gtk.Metadata for
> ListStore.SetColumnTypes:
> 
> 		[DllImport ("libgtk-win32-2.0-0.dll")]
> 		static extern void gtk_list_store_set_column_types (IntPtr raw,
> 						int n_columns, int[] types);
> 
> 		public void SetColumnTypes(int[] types) {
> 			gtk_list_store_set_column_types (Handle, n_columns, types);
> 		}
> 
> This works for me in the DataGrid in SQL# For GTK#.
> 
> The var_args you are talking about are params in C#.
> 
> Moreover, I think it is correct for SetColumnTypes to use an array.
> 
> Mike Kestner said he would test this for me, all I had to do was supply a
> patch for him.
> 
> -----Original Message-----
> From: mono-list-admin@ximian.com [mailto:mono-list-admin@ximian.com]On
> Behalf Of Kristian Rietveld
> Sent: Wednesday, November 20, 2002 7:13 PM
> To: Daniel Morgan
> Cc: Mike Kestner; Mono-List
> Subject: Re: [Mono-list] GTK# Patch for TreeStore, ListStore, and
> TextIter
> 
> 
> On Wed, 2002-11-20 at 20:56, Daniel Morgan wrote:
> > Hey Mike,
> >
> > I have a patch for gtk-sharp/sources/Gtk.metadata.
> >
> > The patch has 3 fixes:
> >
> > 1. for TreeStore method SetColumnTypes, make the int types parameter an
> > array.
> > 2. for ListStore method SetColumnTypes, make the int types parameter an
> > array.
> > 3. for TextIter method ForwardSearch, make the TextIter parameters
> > match_start and
> >    match_end to be out.
> >
> > For 3., I'm sure there are other "search" methods that need fixing, but I
> > want to see how this fix works first.
> >
> > Are these okay?
> >
> > Thanks,
> > Daniel
> > ----
> 
> Hello,
> 
> Miguel asked me to review your patch. My comments are below
> 
> 
> > Index: Gtk.metadata
> > ===================================================================
> > RCS file: /cvs/public/gtk-sharp/sources/Gtk.metadata,v
> > retrieving revision 1.26
> > diff -u -r1.26 Gtk.metadata
> > --- Gtk.metadata	10 Nov 2002 10:03:51 -0000	1.26
> > +++ Gtk.metadata	20 Nov 2002 19:35:53 -0000
> > @@ -30,6 +30,25 @@
> >      </attribute>
> >    </data>
> >  </rule>
> > +
> > +<rule>
> > +  <class name="GtkTextIter">
> > +    <method>ForwardSearch</method>
> > +  </class>
> > +  <data>
> > +    <attribute target="param">
> > +      <filter level="name">match_start</filter>
> > +      <name>pass_as</name>
> > +      <value>out</value>
> > +    </attribute>
> > +        <attribute target="param">
> > +      <filter level="name">match_end</filter>
> > +      <name>pass_as</name>
> > +      <value>out</value>
> > +    </attribute>
> > +  </data>
> > +</rule>
> > +
> 
> This fix looks fine, I think you immediately can also commit a likewise
> fix for BackwardSearch. (and yes, there certainly are more textiter
> methods which need fixing ...)
> 
> >  <rule>
> >    <class name="GtkEditable">
> >      <method>InsertText</method>
> > @@ -59,6 +78,30 @@
> >      </attribute>
> >    </data>
> >  </rule>
> > +<rule>
> > +  <class name="GtkListStore">
> > +    <method>SetColumnTypes</method>
> > +  </class>
> > +  <data>
> > +    <attribute target="param">
> > +      <filter level="name">types</filter>
> > +      <name>array</name>
> > +      <value>true</value>
> > +  </data>
> > +</rule>
> > +
> > +<rule>
> > +  <class name="GtktTreeStore">
>                      ^
> > +    <method>SetColumnTypes</method>
> > +  </class>
> > +  <data>
> > +    <attribute target="param">
> > +      <filter level="name">types</filter>
> > +      <name>array</name>
> > +      <value>true</value>
> > +  </data>
> > +</rule>
> > +
> 
> I'm not sure about these. I'm feeling that they are wrong. I guess they
> need the bit of var_arg magic like the {List,Tree}Store constructors
> have.
> 
> A good way to test your changes to the metadata file is to regenerate
> the autogenned sources and look how the generated functions look like.
> 
> 
> regards,
> 
> 
> 	Kris
> 
> 
> (I'm feeling that I'm not being clear. If so, please tell me and I will
> try to rewrite this message :)
> 
> >  <rule>
> >    <class name="GtkTreeModelSort">
> >      <method>ConvertChildIterToIter</method>
> 
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list