Thank you for your help - that worked.  I've worked with tree views and I 
should have seen the similarity (didn't see that the combo box needed to be 
type cast to a cell layout).
   
  Mark
  PS - I'll make sure to stay on gtk-app-devel-list - my bad.

David Neèas (Yeti) <[EMAIL PROTECTED]> wrote:
  Date: Fri, 10 Nov 2006 00:23:46 +0100
From: David Neèas (Yeti) <[EMAIL PROTECTED]>
To: Mark Richardson <[EMAIL PROTECTED]>
Subject: Re: ComboBox and TreeStore

On Thu, Nov 09, 2006 at 02:59:18PM -0800, Mark Richardson wrote:
> Thanks, I can't seem to find documentation on how to do this, so through 
> trial and error I get a little closer. So if I add ...
> GtkCellRenderer *myCellRenderer=gtk_cell_renderer_text_new()
> gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(myComboBox), myCellRenderer, 
> FALSE);
> I get a blank line in the combo box (closer to displaying, but still not 
> right).
> 
> In a tree view, I would create a column...
> GtkTreeViewColumn *myColumn=gtk_tree_view_column_new_with_attibutes("Title", 
> myCellRenderer, "text", 0, NULL);
> 
> but I don't know how to associate this column with a combo box.

Since GtkCellLayout is an interface, not an object, there is
no method to create a GtkCellLayout, and therefore no method
as gtk_tree_view_column_new_with_attibutes() to create it
*and* set its attributes. So you create a combo box first:

combo = gtk_combo_box_new();

and then create the mapping between model columns and
renderer attributes using the GtkCellLayout interface:

gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), renderer,
"text", 0);

(or the same with a cell data func).

Exactly the same can be done with GtkTreeViewColumns.

GtkTreeViewColumn:
void gtk_tree_view_column_add_attribute
(GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
const gchar *attribute,
gint column);
void gtk_tree_view_column_set_cell_data_func
(GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
GtkTreeCellDataFunc func,
gpointer func_data,
GtkDestroyNotify destroy);

GtkCellLayout:
void gtk_cell_layout_add_attribute (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
const gchar *attribute,
gint column);
void gtk_cell_layout_set_cell_data_func
(GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkCellLayoutDataFunc func,
gpointer func_data,
GDestroyNotify destroy);

The similarity should be evident... In fact the
GtkTreeViewColumn's methods are simple aliases for
GtkCellLayout methods.

Yeti


--
Whatever.


 
---------------------------------
Access over 1 million songs - Yahoo! Music Unlimited.
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to