Re: Is it possible having different GtkAdjustment values in GtkTreeView



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]