[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Is it possible having different GtkAdjustment values in GtkTreeView
- From: "Tadej Borovšak" <tadeboro gmail com>
- To: "Keedi Kim" <keedi perl kr>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: Is it possible having different GtkAdjustment values in GtkTreeView
- Date: Tue, 9 Dec 2008 10:40:33 +0100
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 <tadeboro gmail com>:
> 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 <keedi perl kr>:
>> 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 <keedi perl kr>
>>
>>> 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 <tvb gnome org>
>>>
>>> On Mon, Dec 8, 2008 at 6:02 AM, Keedi Kim <keedi perl kr> 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
>>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]