Thanks for your help. The key point was GTK_TYPE_TREE_MODEL! But it doesn't still work properly with G_TYPE_INTERFACE.
Your example code was very useful. And thanks again! :-D 2008/12/9 Tadej Borovšak <[EMAIL PROTECTED]> > I forgot to explain why G_TYPE_OBJECT does not work in this situation. > The GtkTreeModel is just an interface for GtkList/TreeStore objects > and is not derived from GObject but from GInterface. So it is > perfectly legal to use G_TYPE_INTERFACE instead GTK_TYPE_TREE_MODEL in > my code. > > Another key function call to getting GtkCellRendererCombo working is > g_object_set, which sets "editable" property to TRUE, so you can edit > your renderer. > > > > 2008/12/9 Tadej Borovšak <[EMAIL PROTECTED]>: > > Hi. > > > > I've created a simple app that demonstrates some G(TK)_TYPE macro magic;) > > > > -------------- > > #include <gtk/gtk.h> > > > > enum > > { > > MODEL_COL, > > NO_COLS > > }; > > > > static GtkTreeModel * > > create_and_fill_model (void) > > { > > GtkListStore *store; > > GtkListStore *model; > > GtkTreeIter iter; > > > > model = gtk_list_store_new( 1, G_TYPE_STRING ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String1", -1 ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String2", -1 ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String3", -1 ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String3", -1 ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String4", -1 ); > > gtk_list_store_append( model, &iter ); > > gtk_list_store_set( model, &iter, 0, "String5", -1 ); > > > > store = gtk_list_store_new( NO_COLS, GTK_TYPE_TREE_MODEL ); > > gtk_list_store_append( store, &iter ); > > gtk_list_store_set( store, &iter, MODEL_COL, GTK_TREE_MODEL( model ), > -1 ); > > > > return GTK_TREE_MODEL(store); > > } > > > > int > > main( int argc, > > char **argv ) > > { > > GtkWidget *window; > > GtkWidget *pop_window; > > GtkWidget *treeview; > > GtkWidget *label; > > GtkTreeModel *model; > > GtkTreeIter parent; > > GtkTreeIter child; > > GtkCellRenderer *renderer; > > GtkTreeViewColumn *col; > > GtkTreeSelection *sel; > > > > gtk_init( &argc, &argv ); > > > > window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); > > g_signal_connect( G_OBJECT( window ), "destroy", > > G_CALLBACK( gtk_main_quit ), NULL ); > > > > model = create_and_fill_model(); > > treeview = gtk_tree_view_new_with_model( GTK_TREE_MODEL( model ) ); > > g_object_unref( G_OBJECT( model ) ); > > > > /*col1*/ > > col = gtk_tree_view_column_new(); > > renderer = gtk_cell_renderer_combo_new(); > > g_object_set( G_OBJECT( renderer ), "editable", TRUE, NULL ); > > g_object_set( G_OBJECT( renderer ), "text_column", 0, NULL ); > > gtk_tree_view_column_pack_start(col, renderer, TRUE); > > gtk_tree_view_column_set_attributes(col, renderer, "model", > > MODEL_COL, NULL); > > > > gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col); > > > > gtk_tree_view_expand_all( GTK_TREE_VIEW( treeview ) ); > > gtk_container_add( GTK_CONTAINER( window ), treeview ); > > gtk_widget_show_all( window ); > > > > gtk_main(); > > > > return( 0); > > } > > -------------------- > > > > > > 2008/12/9 Keedi Kim <[EMAIL PROTECTED]>: > >> Hi, guys. > >> > >> I have one more question about GtkTreeView. > >> > >> In my GtkTreeView, another column use GtkCellRenderCombo, > >> and I tried store the GtkListStore (for GtkCellRenderCombo) using > >> G_TYPE_OBJECT > >> and set it up as an attribute ("model" -> list_store). > >> > >> But this doesn't seem work properly and warning occurs. > >> > >> [W] unable to set property `model' of type `GtkTreeModel' from value of > type > >> `GObject' > >> > >> If I use G_TYPE_INTERFACE rather than G_TYPE_OBJECT. > >> the warning disappears but tree view does not work. > >> > >> Is there something different when using GtkCellRenderCombo in this case? > >> > >> Thanks, :-) > >> > >> > >> > >> 2008/12/9 Keedi Kim <[EMAIL PROTECTED]> > >> > >>> Tadej, Tristan, Thanks! > >>> > >>> In fact I misunderstood about attributes and GtkCellRenderSpin, > >>> and I thought each column's spin cell renderer could have only one > >>> adjustments. > >>> but it was not true. :-) > >>> > >>> As you were mentioned, > >>> I use tree model to store adjustment for each row of columns, > >>> and connect them using attributes, then everything works great! > >>> > >>> Thanks again! :-) > >>> > >>> > >>> 2008/12/9 Tristan Van Berkom <[EMAIL PROTECTED]> > >>> > >>> On Mon, Dec 8, 2008 at 6:02 AM, Keedi Kim <[EMAIL PROTECTED]> wrote: > >>>> > Hi! :-) > >>>> > > >>>> > I have some question about GtkTreeView and GtkCellRenderer. > >>>> > Is it possible to have different GtkAdjustment values for each > >>>> > column(renderer?) in GtkTreeView? > >>>> > >>>> Is there any reason you cant just store the adjustment in the model > >>>> and set it up as an attribute ? or am I missing what you want to > >>>> accomplish ? > >>>> > >>>> Cheers, > >>>> -Tristan > >>>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> > >>> Keedi Kim > >>> > >>> > >> > >> > >> -- > >> Best regards, > >> > >> Keedi Kim > >> _______________________________________________ > >> gtk-app-devel-list mailing list > >> gtk-app-devel-list@gnome.org > >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > >> > -- Best regards, Keedi Kim _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list