Thank you David,

your code works fine. I kept looking at my code for at least twenty minutes 
before I noticed a bug in the line:

store = gtk_tree_store_new(3, G_TYPE_STRING, GDK_TYPE_PIXBUF, 
G_TYPE_BOOLEAN, G_TYPE_UINT);

This method would be much cooler if it could count number of parameters by 
itself (I forgot to increment column count).

Regards,
  Miroslav


----- Original Message ----- 
From: "David Necas (Yeti)" <[EMAIL PROTECTED]>
To: <gtk-app-devel-list@gnome.org>
Sent: Wednesday, November 22, 2006 2:57 PM
Subject: Re: GtkTreeView having nodes with underlined text


> On Wed, Nov 22, 2006 at 01:28:32PM +0100, Miroslav Rajcic wrote:
>> I am having a problem to underline text for some (not all) nodes in a
>> GtkTreeView.
>>
>> I've tried following:
>>
>> 1. a) add new column in the tree store of type G_TYPE_ENUM (tried integer
>> type too)
>
> Should be G_TYPE_UINT.
>
>>     b) attach text renderer to this store column:
>>
>> gtk_tree_view_column_set_attributes(column, renderer,
>>    "underline", STORE_IDX_UNDERLINE,
>>    NULL);
>
> Should be gtk_tree_view_column_add_attribute().
>
>> Unfortuantely, this does not work. I even added a store column for
>> "underline-set", and attached the renderer property to that store col.
>
> I'm not quite sure what the logic behind foo-set properties
> is either, but setting them to TRUE at the begining and the
> just changeing the actual property does what one normally
> wants.
>
>> GValue             value = { 0, };
>> g_value_init (&value, PANGO_TYPE_UNDERLINE);
>> g_value_set_enum (&value, PANGO_UNDERLINE_SINGLE);
>> g_object_set_property (G_OBJECT (renderer), "underline", &value);
>> g_value_unset (&value);
>
> This is a bit overengineered.
>
>  g_object_set(renderer, "underline", PANGO_UNDERLINE_SINGLE, NULL);
>
> does exactly the same.
>
>> Does anyone have the code to set underline font for arbitrary node in a 
>> tree
>
> No, but can easily make some.
>
> Yeti
>
>
> --
> Whatever.
>
>
> ===========================================================================
> #include <string.h>
> #include <gtk/gtk.h>
>
> enum { COL_TEXT, COL_ULINE };
>
> int
> main(int argc, char *argv[])
> {
>    static const gchar *text[] = {
>        "Foo", "Bar", "Baz", "Quux", "Bloody", "Underline",
>    };
>    GtkTreeViewColumn *column;
>    GtkCellRenderer *renderer;
>    GtkListStore *store;
>    GtkTreeIter iter;
>    GtkWidget *window, *view;
>    PangoUnderline uline;
>    guint i;
>
>    gtk_init(&argc, &argv);
>    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>    gtk_window_set_default_size(GTK_WINDOW(window), -1, 300);
>    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
>
>    store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_UINT);
>    for (i = 0; i < G_N_ELEMENTS(text); i++) {
>        if (strchr(text[i], 'a'))
>            uline = PANGO_UNDERLINE_DOUBLE;
>        else if (strchr(text[i], 'o'))
>            uline = PANGO_UNDERLINE_SINGLE;
>        else
>            uline = PANGO_UNDERLINE_NONE;
>        gtk_list_store_append(store, &iter);
>        gtk_list_store_set(store, &iter,
>                           COL_TEXT, text[i],
>                           COL_ULINE, uline,
>                           -1);
>    }
>
>    view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
>    gtk_container_add(GTK_CONTAINER(window), view);
>
>    renderer = gtk_cell_renderer_text_new();
>    g_object_set(renderer, "underline-set", TRUE, NULL);
>    column = gtk_tree_view_column_new_with_attributes("Text", renderer,
>                                                      "text", COL_TEXT,
>                                                      "underline", 
> COL_ULINE,
>                                                      NULL);
>    gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
>
>    gtk_widget_show_all(window);
>    gtk_main();
>
>    return 0;
> }
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
> __________ NOD32 1877 (20061122) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.eset.com
>
> 

_______________________________________________
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