[Gtk-sharp-list] Re: Improving Gtk#

xiii29 xiii29@free.fr
Sun, 01 May 2005 19:37:44 +0200


Maybe a good improving of GTK would be to offer some methods that will 
simply transformed an IList, ICollection and datatable to a 
ListStore/TreeStore.

My two cents.

Thierry

Miguel de Icaza wrote:

>Hello,
>
>  
>
>>Some things I find annoying  :
>>- It seems we had to use ListStore for TreeView.Model, and it seems
>>ListStore is a simple another list object... There is always many
>>lists types in System.Collections, why should we use another lis type
>>for treeview for instance ? An IList would be better, no ?
>>    
>>
>
>Actually the ListStore is not a simple list object, it is a fairly
>elaborate "storage" for treemodels that happens to be flat.
>
>The list/tree widget in Gtk# is actually always a tree.  But depending
>on the model implementation it can behave as either a tree or a list.
>ListStore is what makes the TreeView behave like a list of elements.
>
>But I see what you want: you want to reuse the same IList API there.
>Do you have a sample program that you could share with us that you would
>like transformed into an IList-based sample?  That would help us.
>
>  
>
>>- I find some things very weird. To get the entry selected in a
>>TreeView, it seems we have to write an overcomplicated-for-the-job
>>code :
>>TreeIter iter;
>>TreeModel model;
>>TreeSelection sel = myTreeView.Selection;
>>if(sel.GetSelected(out model, out iter)) {
>>    int thing = (int)model.GetValue( iter, 5 );
>>
>>And so on.
>>
>>A simple thing like that could not be possible ? :
>>int thing = (int) myTreeView.EntrySelected(5);
>>
>>or, even better, a thing like that :
>>MyObject my = (MyObject) myTreeView.EntrySelected();
>>    
>>
>
>This sounds like a useful addition, we could file a feature request, but
>but there are two problems with your example:
>
>	* What happens if there is nothing selected?  Should
>	  we throw an exception?  I think that would be a bad idea.
>
>	* What happens if you have multiple-selection enabled?
>
>Perhaps the solution would be to have a method like this:
>
>class TreeView {
>
>	// Return an array of objects for each row.
>	object [] GetSelected () {...}
>
>	// Return the array of objects for a specific column
>	object [] GetSelected (int column) { }
>}
>
>Miguel
>_______________________________________________
>Gtk-sharp-list maillist  -  Gtk-sharp-list@lists.ximian.com
>http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>
>
>  
>