gtk_tree_view_column_set_cell_data_func gives GTK-CRITICAL error

2011-11-29 Thread James Steward

Hi,

Wanting to display floats with a particular format in a tree view.

void render_float(GtkTreeViewColumn *column,
GtkCellRenderer   *renderer,
GtkTreeModel  *model,
GtkTreeIter   *iter,
gpointer   user_data)
{
gfloat  f;
gchar   buf[20];

int col = GPOINTER_TO_INT(user_data);

gtk_tree_model_get(model, iter, col, &f, -1);

g_snprintf(buf, sizeof(buf), "%.2f", f);

g_object_set(renderer, "text", buf, NULL);
}

G_MODULE_EXPORT gboolean on_menu_show_results_activate(
GtkWidget *w,
GdkEvent *event,
gpointer user_data)
{

...

renderer = gtk_cell_renderer_text_new ();

col = gtk_tree_view_insert_column_with_attributes (
GTK_TREE_VIEW (view),
-1,
"Title",
renderer,
"text", i,
"strikethrough", j,
"background", k,
"background-set", TRUE,
NULL);

gtk_tree_view_column_set_cell_data_func(
gtk_tree_view_get_column(GTK_TREE_VIEW(view), col),
renderer,
render_float,
GINT_TO_POINTER(i),
NULL);
...

}

When I run the app I get:

Gtk-CRITICAL **: gtk_cell_layout_set_cell_data_func: assertion 
`GTK_IS_CELL_LAYOUT (cell_layout)' failed


Can anyone spot what I've done wrong?  There's no compiler warnings, 
just this runtime error.


--
James.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: gtk_tree_view_column_set_cell_data_func gives GTK-CRITICAL error

2011-11-30 Thread Tadej Borovšak
Hi.

2011/11/30 James Steward :
> col = gtk_tree_view_insert_column_with_attributes (
>                GTK_TREE_VIEW (view),
>                -1,
>                "Title",
>                renderer,
>                "text", i,
>                "strikethrough", j,
>                "background", k,
>                "background-set", TRUE,
>                NULL);
>
> gtk_tree_view_column_set_cell_data_func(
>                gtk_tree_view_get_column(GTK_TREE_VIEW(view), col),
>                renderer,
>                render_float,
>                GINT_TO_POINTER(i),
>                NULL);

IIRC, gtk_tree_view_insert_column_with_attributes() returns number of
columns and gtk_tree_view_get_column() expects to get column number
where first column is 0. So you may be off-by-one in your call to
gtk_tree_view_column_set_cell_data_func().

Cheers,
Tadej

-- 
Tadej Borovšak
tadeboro.blogspot.com
tadeb...@gmail.com
tadej.borov...@gmail.com
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: gtk_tree_view_column_set_cell_data_func gives GTK-CRITICAL error

2011-11-30 Thread James Steward

On 30/11/11 20:04, Tadej Borovšak wrote:

Hi.

2011/11/30 James Steward:

col = gtk_tree_view_insert_column_with_attributes (
GTK_TREE_VIEW (view),
-1,
"Title",
renderer,
"text", i,
"strikethrough", j,
"background", k,
"background-set", TRUE,
NULL);

gtk_tree_view_column_set_cell_data_func(
gtk_tree_view_get_column(GTK_TREE_VIEW(view), col),
renderer,
render_float,
GINT_TO_POINTER(i),
NULL);


IIRC, gtk_tree_view_insert_column_with_attributes() returns number of
columns and gtk_tree_view_get_column() expects to get column number
where first column is 0. So you may be off-by-one in your call to
gtk_tree_view_column_set_cell_data_func().


Well spotted!  Thanks very much.

Regards,
James.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list