comparison src/gtkblist.c @ 11988:9ccbd9f8e8c6

[gaim-migrate @ 14281] Put the priority buddy in a contact at the top of the tooltip, and de-sensitize some chat related things when no accounts supporting chats are connected committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sun, 06 Nov 2005 19:16:32 +0000
parents bfbb1798535e
children 24c7fb94d3a3
comparison
equal deleted inserted replaced
11987:831e52ceddf3 11988:9ccbd9f8e8c6
1012 1012
1013 static GtkWidget * 1013 static GtkWidget *
1014 create_group_menu (GaimBlistNode *node, GaimGroup *g) 1014 create_group_menu (GaimBlistNode *node, GaimGroup *g)
1015 { 1015 {
1016 GtkWidget *menu; 1016 GtkWidget *menu;
1017 GtkWidget *item;
1017 1018
1018 menu = gtk_menu_new(); 1019 menu = gtk_menu_new();
1019 gaim_new_item_from_stock(menu, _("Add a _Buddy"), GTK_STOCK_ADD, 1020 gaim_new_item_from_stock(menu, _("Add a _Buddy"), GTK_STOCK_ADD,
1020 G_CALLBACK(gaim_gtk_blist_add_buddy_cb), node, 0, 0, NULL); 1021 G_CALLBACK(gaim_gtk_blist_add_buddy_cb), node, 0, 0, NULL);
1021 gaim_new_item_from_stock(menu, _("Add a C_hat"), GTK_STOCK_ADD, 1022 item = gaim_new_item_from_stock(menu, _("Add a C_hat"), GTK_STOCK_ADD,
1022 G_CALLBACK(gaim_gtk_blist_add_chat_cb), node, 0, 0, NULL); 1023 G_CALLBACK(gaim_gtk_blist_add_chat_cb), node, 0, 0, NULL);
1024 gtk_widget_set_sensitive(item, gaim_gtk_blist_joinchat_is_showable());
1023 gaim_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE, 1025 gaim_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE,
1024 G_CALLBACK(gaim_gtk_blist_remove_cb), node, 0, 0, NULL); 1026 G_CALLBACK(gaim_gtk_blist_remove_cb), node, 0, 0, NULL);
1025 gaim_new_item_from_stock(menu, _("_Rename"), NULL, 1027 gaim_new_item_from_stock(menu, _("_Rename"), NULL,
1026 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); 1028 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL);
1027 1029
2177 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); 2179 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
2178 w = td->width; 2180 w = td->width;
2179 h = td->height; 2181 h = td->height;
2180 } else if(GAIM_BLIST_NODE_IS_CONTACT(node)) { 2182 } else if(GAIM_BLIST_NODE_IS_CONTACT(node)) {
2181 GaimBlistNode *child; 2183 GaimBlistNode *child;
2184 GaimBuddy *b = gaim_contact_get_priority_buddy((GaimContact *)node);
2182 w = h = 0; 2185 w = h = 0;
2183 for(child = node->child; child; child = child->next) 2186 for(child = node->child; child; child = child->next)
2184 { 2187 {
2185 if(GAIM_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((GaimBuddy*)child)) { 2188 if(GAIM_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((GaimBuddy*)child)) {
2186 struct tooltip_data *td = create_tip_for_node(child); 2189 struct tooltip_data *td = create_tip_for_node(child);
2187 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); 2190 if (b == (GaimBuddy *)child) {
2191 gtkblist->tooltipdata = g_list_prepend(gtkblist->tooltipdata, td);
2192 } else {
2193 gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
2194 }
2188 w = MAX(w, td->width); 2195 w = MAX(w, td->width);
2189 h += td->height; 2196 h += td->height;
2190 } 2197 }
2191 } 2198 }
2192 } else { 2199 } else {
3047 } 3054 }
3048 3055
3049 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Join a Chat...")); 3056 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Join a Chat..."));
3050 gtk_widget_set_sensitive(widget, gaim_gtk_blist_joinchat_is_showable()); 3057 gtk_widget_set_sensitive(widget, gaim_gtk_blist_joinchat_is_showable());
3051 3058
3059 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Add Chat..."));
3060 gtk_widget_set_sensitive(widget, gaim_gtk_blist_joinchat_is_showable());
3061
3052 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List")); 3062 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List"));
3053 gtk_widget_set_sensitive(widget, gaim_gtk_roomlist_is_showable()); 3063 gtk_widget_set_sensitive(widget, gaim_gtk_roomlist_is_showable());
3054 3064
3055 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Privacy")); 3065 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Privacy"));
3056 gtk_widget_set_sensitive(widget, gaim_gtk_privacy_is_showable()); 3066 gtk_widget_set_sensitive(widget, gaim_gtk_privacy_is_showable());