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

Reply via email to