pidgin/gtkblist.c

changeset 37992
0185eb26ac7d
parent 37990
710f725725a8
child 37997
7b62a2153898
equal deleted inserted replaced
37991:b344343d3cf0 37992:0185eb26ac7d
5615 gtk_tree_view_column_pack_start(column, rend, FALSE); 5615 gtk_tree_view_column_pack_start(column, rend, FALSE);
5616 gtk_tree_view_column_set_attributes(column, rend, 5616 gtk_tree_view_column_set_attributes(column, rend,
5617 "visible", GROUP_EXPANDER_VISIBLE_COLUMN, 5617 "visible", GROUP_EXPANDER_VISIBLE_COLUMN,
5618 "expander-visible", GROUP_EXPANDER_COLUMN, 5618 "expander-visible", GROUP_EXPANDER_COLUMN,
5619 "sensitive", GROUP_EXPANDER_COLUMN, 5619 "sensitive", GROUP_EXPANDER_COLUMN,
5620 "cell-background-gdk", BGCOLOR_COLUMN, 5620 "cell-background-rgba", BGCOLOR_COLUMN,
5621 NULL); 5621 NULL);
5622 5622
5623 /* contact */ 5623 /* contact */
5624 rend = pidgin_cell_renderer_expander_new(); 5624 rend = pidgin_cell_renderer_expander_new();
5625 gtk_tree_view_column_pack_start(column, rend, FALSE); 5625 gtk_tree_view_column_pack_start(column, rend, FALSE);
5626 gtk_tree_view_column_set_attributes(column, rend, 5626 gtk_tree_view_column_set_attributes(column, rend,
5627 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN, 5627 "visible", CONTACT_EXPANDER_VISIBLE_COLUMN,
5628 "expander-visible", CONTACT_EXPANDER_COLUMN, 5628 "expander-visible", CONTACT_EXPANDER_COLUMN,
5629 "sensitive", CONTACT_EXPANDER_COLUMN, 5629 "sensitive", CONTACT_EXPANDER_COLUMN,
5630 "cell-background-gdk", BGCOLOR_COLUMN, 5630 "cell-background-rgba", BGCOLOR_COLUMN,
5631 NULL); 5631 NULL);
5632 5632
5633 for (i = 0; i < 5; i++) { 5633 for (i = 0; i < 5; i++) {
5634 5634
5635 if (status_icon == i) { 5635 if (status_icon == i) {
5637 rend = gtk_cell_renderer_pixbuf_new(); 5637 rend = gtk_cell_renderer_pixbuf_new();
5638 gtk_tree_view_column_pack_start(column, rend, FALSE); 5638 gtk_tree_view_column_pack_start(column, rend, FALSE);
5639 gtk_tree_view_column_set_attributes(column, rend, 5639 gtk_tree_view_column_set_attributes(column, rend,
5640 "pixbuf", STATUS_ICON_COLUMN, 5640 "pixbuf", STATUS_ICON_COLUMN,
5641 "visible", STATUS_ICON_VISIBLE_COLUMN, 5641 "visible", STATUS_ICON_VISIBLE_COLUMN,
5642 "cell-background-gdk", BGCOLOR_COLUMN, 5642 "cell-background-rgba", BGCOLOR_COLUMN,
5643 NULL); 5643 NULL);
5644 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL); 5644 g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL);
5645 5645
5646 } else if (text == i) { 5646 } else if (text == i) {
5647 /* name */ 5647 /* name */
5648 gtkblist->text_rend = rend = gtk_cell_renderer_text_new(); 5648 gtkblist->text_rend = rend = gtk_cell_renderer_text_new();
5649 gtk_tree_view_column_pack_start(column, rend, TRUE); 5649 gtk_tree_view_column_pack_start(column, rend, TRUE);
5650 gtk_tree_view_column_set_attributes(column, rend, 5650 gtk_tree_view_column_set_attributes(column, rend,
5651 "cell-background-gdk", BGCOLOR_COLUMN, 5651 "cell-background-rgba", BGCOLOR_COLUMN,
5652 "markup", NAME_COLUMN, 5652 "markup", NAME_COLUMN,
5653 NULL); 5653 NULL);
5654 g_signal_connect(G_OBJECT(rend), "editing-started", G_CALLBACK(gtk_blist_renderer_editing_started_cb), NULL); 5654 g_signal_connect(G_OBJECT(rend), "editing-started", G_CALLBACK(gtk_blist_renderer_editing_started_cb), NULL);
5655 g_signal_connect(G_OBJECT(rend), "editing-canceled", G_CALLBACK(gtk_blist_renderer_editing_cancelled_cb), list); 5655 g_signal_connect(G_OBJECT(rend), "editing-canceled", G_CALLBACK(gtk_blist_renderer_editing_cancelled_cb), list);
5656 g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), list); 5656 g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), list);
5662 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); 5662 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
5663 gtk_tree_view_column_pack_start(column, rend, FALSE); 5663 gtk_tree_view_column_pack_start(column, rend, FALSE);
5664 gtk_tree_view_column_set_attributes(column, rend, 5664 gtk_tree_view_column_set_attributes(column, rend,
5665 "markup", IDLE_COLUMN, 5665 "markup", IDLE_COLUMN,
5666 "visible", IDLE_VISIBLE_COLUMN, 5666 "visible", IDLE_VISIBLE_COLUMN,
5667 "cell-background-gdk", BGCOLOR_COLUMN, 5667 "cell-background-rgba", BGCOLOR_COLUMN,
5668 NULL); 5668 NULL);
5669 } else if (emblem == i) { 5669 } else if (emblem == i) {
5670 /* emblem */ 5670 /* emblem */
5671 rend = gtk_cell_renderer_pixbuf_new(); 5671 rend = gtk_cell_renderer_pixbuf_new();
5672 g_object_set(rend, "xalign", 1.0, "yalign", 0.5, "ypad", 0, "xpad", 3, NULL); 5672 g_object_set(rend, "xalign", 1.0, "yalign", 0.5, "ypad", 0, "xpad", 3, NULL);
5673 gtk_tree_view_column_pack_start(column, rend, FALSE); 5673 gtk_tree_view_column_pack_start(column, rend, FALSE);
5674 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", EMBLEM_COLUMN, 5674 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", EMBLEM_COLUMN,
5675 "cell-background-gdk", BGCOLOR_COLUMN, 5675 "cell-background-rgba", BGCOLOR_COLUMN,
5676 "visible", EMBLEM_VISIBLE_COLUMN, NULL); 5676 "visible", EMBLEM_VISIBLE_COLUMN, NULL);
5677 5677
5678 } else if (protocol_icon == i) { 5678 } else if (protocol_icon == i) {
5679 /* protocol icon */ 5679 /* protocol icon */
5680 rend = gtk_cell_renderer_pixbuf_new(); 5680 rend = gtk_cell_renderer_pixbuf_new();
5681 gtk_tree_view_column_pack_start(column, rend, FALSE); 5681 gtk_tree_view_column_pack_start(column, rend, FALSE);
5682 gtk_tree_view_column_set_attributes(column, rend, 5682 gtk_tree_view_column_set_attributes(column, rend,
5683 "pixbuf", PROTOCOL_ICON_COLUMN, 5683 "pixbuf", PROTOCOL_ICON_COLUMN,
5684 "visible", PROTOCOL_ICON_VISIBLE_COLUMN, 5684 "visible", PROTOCOL_ICON_VISIBLE_COLUMN,
5685 "cell-background-gdk", BGCOLOR_COLUMN, 5685 "cell-background-rgba", BGCOLOR_COLUMN,
5686 NULL); 5686 NULL);
5687 g_object_set(rend, "xalign", 0.0, "xpad", 3, "ypad", 0, NULL); 5687 g_object_set(rend, "xalign", 0.0, "xpad", 3, "ypad", 0, NULL);
5688 5688
5689 } else if (buddy_icon == i) { 5689 } else if (buddy_icon == i) {
5690 /* buddy icon */ 5690 /* buddy icon */
5691 rend = gtk_cell_renderer_pixbuf_new(); 5691 rend = gtk_cell_renderer_pixbuf_new();
5692 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); 5692 g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL);
5693 gtk_tree_view_column_pack_start(column, rend, FALSE); 5693 gtk_tree_view_column_pack_start(column, rend, FALSE);
5694 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN, 5694 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN,
5695 "cell-background-gdk", BGCOLOR_COLUMN, 5695 "cell-background-rgba", BGCOLOR_COLUMN,
5696 "visible", BUDDY_ICON_VISIBLE_COLUMN, 5696 "visible", BUDDY_ICON_VISIBLE_COLUMN,
5697 NULL); 5697 NULL);
5698 } 5698 }
5699 5699
5700 }/* end for loop */ 5700 }/* end for loop */
5922 G_TYPE_STRING, /* Idle */ 5922 G_TYPE_STRING, /* Idle */
5923 G_TYPE_BOOLEAN, /* Idle visible */ 5923 G_TYPE_BOOLEAN, /* Idle visible */
5924 GDK_TYPE_PIXBUF, /* Buddy icon */ 5924 GDK_TYPE_PIXBUF, /* Buddy icon */
5925 G_TYPE_BOOLEAN, /* Buddy icon visible */ 5925 G_TYPE_BOOLEAN, /* Buddy icon visible */
5926 G_TYPE_POINTER, /* Node */ 5926 G_TYPE_POINTER, /* Node */
5927 GDK_TYPE_COLOR, /* bgcolor */ 5927 GDK_TYPE_RGBA, /* bgcolor */
5928 G_TYPE_BOOLEAN, /* Group expander */ 5928 G_TYPE_BOOLEAN, /* Group expander */
5929 G_TYPE_BOOLEAN, /* Group expander visible */ 5929 G_TYPE_BOOLEAN, /* Group expander visible */
5930 G_TYPE_BOOLEAN, /* Contact expander */ 5930 G_TYPE_BOOLEAN, /* Contact expander */
5931 G_TYPE_BOOLEAN, /* Contact expander visible */ 5931 G_TYPE_BOOLEAN, /* Contact expander visible */
5932 GDK_TYPE_PIXBUF, /* Emblem */ 5932 GDK_TYPE_PIXBUF, /* Emblem */
6401 gchar *title; 6401 gchar *title;
6402 gboolean biglist; 6402 gboolean biglist;
6403 GtkTreeIter iter; 6403 GtkTreeIter iter;
6404 GtkTreePath *path; 6404 GtkTreePath *path;
6405 gboolean expanded; 6405 gboolean expanded;
6406 GdkColor *bgcolor = NULL; 6406 GdkRGBA *bgcolor = NULL;
6407 GdkPixbuf *avatar = NULL; 6407 GdkPixbuf *avatar = NULL;
6408 PidginBlistTheme *theme = NULL; 6408 PidginBlistTheme *theme = NULL;
6409 6409
6410 if(!insert_node(list, gnode, &iter)) 6410 if(!insert_node(list, gnode, &iter))
6411 return; 6411 return;
6508 6508
6509 static void buddy_node(PurpleBuddy *buddy, GtkTreeIter *iter, PurpleBlistNode *node) 6509 static void buddy_node(PurpleBuddy *buddy, GtkTreeIter *iter, PurpleBlistNode *node)
6510 { 6510 {
6511 PurplePresence *presence = purple_buddy_get_presence(buddy); 6511 PurplePresence *presence = purple_buddy_get_presence(buddy);
6512 GdkPixbuf *status, *avatar, *emblem, *protocol_icon; 6512 GdkPixbuf *status, *avatar, *emblem, *protocol_icon;
6513 GdkColor *color = NULL; 6513 GdkRGBA *color = NULL;
6514 char *mark; 6514 char *mark;
6515 char *idle = NULL; 6515 char *idle = NULL;
6516 gboolean expanded = ((struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node->parent))->contact_expanded; 6516 gboolean expanded = ((struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node->parent))->contact_expanded;
6517 gboolean selected = (gtkblist->selected_node == node); 6517 gboolean selected = (gtkblist->selected_node == node);
6518 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); 6518 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
6653 6653
6654 if(gtknode->contact_expanded) { 6654 if(gtknode->contact_expanded) {
6655 GdkPixbuf *status; 6655 GdkPixbuf *status;
6656 gchar *mark, *tmp; 6656 gchar *mark, *tmp;
6657 const gchar *fg_color, *font; 6657 const gchar *fg_color, *font;
6658 GdkColor *color = NULL; 6658 GdkRGBA *color = NULL;
6659 PidginBlistTheme *theme; 6659 PidginBlistTheme *theme;
6660 PidginThemeFont *pair; 6660 PidginThemeFont *pair;
6661 gboolean selected = (gtkblist->selected_node == cnode); 6661 gboolean selected = (gtkblist->selected_node == cnode);
6662 6662
6663 mark = g_markup_escape_text(purple_contact_get_alias(contact), -1); 6663 mark = g_markup_escape_text(purple_contact_get_alias(contact), -1);
6765 gboolean showicons = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); 6765 gboolean showicons = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
6766 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); 6766 gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
6767 PidginBlistNode *ui; 6767 PidginBlistNode *ui;
6768 PurpleConversation *conv; 6768 PurpleConversation *conv;
6769 gboolean hidden = FALSE; 6769 gboolean hidden = FALSE;
6770 GdkColor *bgcolor = NULL; 6770 GdkRGBA *bgcolor = NULL;
6771 PidginThemeFont *pair; 6771 PidginThemeFont *pair;
6772 PidginBlistTheme *theme; 6772 PidginBlistTheme *theme;
6773 gboolean selected = (gtkblist->selected_node == node); 6773 gboolean selected = (gtkblist->selected_node == node);
6774 gboolean nick_said = FALSE; 6774 gboolean nick_said = FALSE;
6775 6775

mercurial