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
>



-- 
Tadej Borovšak
00386 (0)40 613 131
[EMAIL PROTECTED]
[EMAIL PROTECTED]
_______________________________________________
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