Mercurial > pidgin.yaz
diff gtk/gtkblist.c @ 14561:3ff55ec8203a
[gaim-migrate @ 17284]
GtkCellRendererExpander draws an expander in a renderer to avoid a large, needless margin.
The approach is a bit hacky, but it's a good job.
- RTL fix in GtkStatusBox
- Drag-and-drop image into the global buddy icon selector to set a buddy icon
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Fri, 15 Sep 2006 22:05:34 +0000 |
parents | 16bba6d02c2a |
children | 78d0f3c4c9ff |
line wrap: on
line diff
--- a/gtk/gtkblist.c Fri Sep 15 17:10:37 2006 +0000 +++ b/gtk/gtkblist.c Fri Sep 15 22:05:34 2006 +0000 @@ -41,6 +41,7 @@ #include "gtkaccount.h" #include "gtkblist.h" +#include "gtkcellrendererexpander.h" #include "gtkconv.h" #include "gtkdebug.h" #include "gtkdialogs.h" @@ -810,10 +811,10 @@ } else if (GAIM_BLIST_NODE_IS_CHAT(node)) { gtk_blist_join_chat((GaimChat *)node); } else if (GAIM_BLIST_NODE_IS_GROUP(node)) { - if (gtk_tree_view_row_expanded(tv, path)) +/* if (gtk_tree_view_row_expanded(tv, path)) gtk_tree_view_collapse_row(tv, path); else - gtk_tree_view_expand_row(tv,path,FALSE); + gtk_tree_view_expand_row(tv,path,FALSE);*/ } } @@ -3928,10 +3929,18 @@ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtkblist->treemodel = gtk_tree_store_new(BLIST_COLUMNS, - GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, - G_TYPE_POINTER, GDK_TYPE_COLOR, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, - G_TYPE_BOOLEAN); + GDK_TYPE_PIXBUF, /* Status icon */ + G_TYPE_BOOLEAN, /* Status icon visible */ + G_TYPE_STRING, /* Name */ + G_TYPE_STRING, /* Idle */ + G_TYPE_BOOLEAN, /* Idle visible */ + GDK_TYPE_PIXBUF, /* Buddy icon */ + G_TYPE_BOOLEAN, /* Buddy icon visible */ + G_TYPE_POINTER, /* Node */ + GDK_TYPE_COLOR, /* bgcolor */ + G_TYPE_BOOLEAN, /* Group expander */ + G_TYPE_BOOLEAN, /* Contact expander */ + G_TYPE_BOOLEAN); /* Contact expander visible */ gtkblist->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(gtkblist->treemodel)); @@ -3971,17 +3980,17 @@ gtk_tree_view_set_expander_column(GTK_TREE_VIEW(gtkblist->treeview), column); gtkblist->text_column = column = gtk_tree_view_column_new (); - rend = gtk_cell_renderer_pixbuf_new(); + rend = gaim_gtk_cell_renderer_expander_new(); gtk_tree_view_column_pack_start(column, rend, FALSE); gtk_tree_view_column_set_attributes(column, rend, - "pixbuf", GROUP_EXPANDER_COLUMN, + "expander-visible", GROUP_EXPANDER_COLUMN, "cell-background-gdk", BGCOLOR_COLUMN, NULL); - rend = gtk_cell_renderer_pixbuf_new(); + rend = gaim_gtk_cell_renderer_expander_new(); gtk_tree_view_column_pack_start(column, rend, FALSE); gtk_tree_view_column_set_attributes(column, rend, - "pixbuf", CONTACT_EXPANDER_COLUMN, + "expander-visible", CONTACT_EXPANDER_COLUMN, "visible", CONTACT_EXPANDER_VISIBLE_COLUMN, "cell-background-gdk", BGCOLOR_COLUMN, NULL); @@ -4026,9 +4035,6 @@ NULL); - gtkblist->expander_expanded = gtk_widget_render_icon(gtkblist->treeview, GAIM_STOCK_EXPANDER_EXPANDED, -1, NULL); - gtkblist->expander_collapsed = gtk_widget_render_icon(gtkblist->treeview, GAIM_STOCK_EXPANDER_COLLAPSED, -1, NULL); - g_signal_connect(G_OBJECT(gtkblist->treeview), "row-activated", G_CALLBACK(gtk_blist_row_activated_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->treeview), "row-expanded", G_CALLBACK(gtk_blist_row_expanded_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed", G_CALLBACK(gtk_blist_row_collapsed_cb), NULL); @@ -4412,7 +4418,7 @@ NAME_COLUMN, mark, NODE_COLUMN, gnode, BGCOLOR_COLUMN, &bgcolor, - GROUP_EXPANDER_COLUMN, expanded ? gtkblist->expander_expanded : gtkblist->expander_collapsed, + GROUP_EXPANDER_COLUMN, TRUE, CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE, BUDDY_ICON_VISIBLE_COLUMN, FALSE, IDLE_VISIBLE_COLUMN, FALSE, @@ -4540,7 +4546,7 @@ IDLE_VISIBLE_COLUMN, FALSE, BGCOLOR_COLUMN, NULL, BUDDY_ICON_COLUMN, NULL, - CONTACT_EXPANDER_COLUMN, gtkblist->expander_expanded, + CONTACT_EXPANDER_COLUMN, TRUE, CONTACT_EXPANDER_VISIBLE_COLUMN, TRUE, -1); g_free(mark);