Mercurial > pidgin.yaz
comparison src/gtkblist.c @ 12117:cb77957d644c
[gaim-migrate @ 14417]
changelogify the awesome queueing system from Casey Harkins, add my own touch of awesomeness to it, and commit a patch I found somewhere earlier today to fix crashing on NetBSD. It might have been in the tracker, I'll have to hunt for it
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Wed, 16 Nov 2005 22:33:15 +0000 |
parents | e75ef7aa913e |
children | 312efb43c49a |
comparison
equal
deleted
inserted
replaced
12116:e75ef7aa913e | 12117:cb77957d644c |
---|---|
3134 static void | 3134 static void |
3135 conversation_updated_cb(GaimConversation *conv, GaimConvUpdateType type, | 3135 conversation_updated_cb(GaimConversation *conv, GaimConvUpdateType type, |
3136 GaimGtkBuddyList *gtkblist) | 3136 GaimGtkBuddyList *gtkblist) |
3137 { | 3137 { |
3138 GtkWidget *img = NULL; | 3138 GtkWidget *img = NULL; |
3139 GString *tooltip_text = NULL; | |
3139 | 3140 |
3140 if(gtkblist->menutrayicon) { | 3141 if(gtkblist->menutrayicon) { |
3141 gtk_widget_destroy(gtkblist->menutrayicon); | 3142 gtk_widget_destroy(gtkblist->menutrayicon); |
3142 gtkblist->menutrayicon = NULL; | 3143 gtkblist->menutrayicon = NULL; |
3143 } | 3144 } |
3144 | 3145 |
3145 if(gaim_gtk_conversations_get_first_unseen(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT)) | 3146 if(gaim_gtk_conversations_get_first_unseen(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT)) { |
3147 GList *convs = gaim_get_ims(); | |
3148 tooltip_text = g_string_new(""); | |
3149 while(convs) { | |
3150 conv = convs->data; | |
3151 if(GAIM_IS_GTK_CONVERSATION(conv)) { | |
3152 GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); | |
3153 if(gtkconv->unseen_state >= GAIM_UNSEEN_TEXT) { | |
3154 g_string_append_printf(tooltip_text, | |
3155 _("Unread messages from %s\n"), gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); | |
3156 } | |
3157 } | |
3158 convs = convs->next; | |
3159 } | |
3160 /* get rid of the last newline */ | |
3161 tooltip_text = g_string_truncate(tooltip_text, tooltip_text->len -1); | |
3146 img = gtk_image_new_from_stock(GAIM_STOCK_PENDING, GTK_ICON_SIZE_MENU); | 3162 img = gtk_image_new_from_stock(GAIM_STOCK_PENDING, GTK_ICON_SIZE_MENU); |
3147 | 3163 |
3148 if(img) { | |
3149 gtkblist->menutrayicon = gtk_event_box_new(); | 3164 gtkblist->menutrayicon = gtk_event_box_new(); |
3150 gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img); | 3165 gtk_container_add(GTK_CONTAINER(gtkblist->menutrayicon), img); |
3151 gtk_widget_show(img); | 3166 gtk_widget_show(img); |
3152 gtk_widget_show(gtkblist->menutrayicon); | 3167 gtk_widget_show(gtkblist->menutrayicon); |
3153 g_signal_connect(G_OBJECT(gtkblist->menutrayicon), "button-press-event", G_CALLBACK(menutray_press_cb), NULL); | 3168 g_signal_connect(G_OBJECT(gtkblist->menutrayicon), "button-press-event", G_CALLBACK(menutray_press_cb), NULL); |
3154 | 3169 |
3155 gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, NULL); | 3170 gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkblist->menutray), gtkblist->menutrayicon, g_string_free(tooltip_text, FALSE)); |
3156 } | 3171 } |
3157 } | 3172 } |
3158 | 3173 |
3159 /********************************************************************************** | 3174 /********************************************************************************** |
3160 * Public API Functions * | 3175 * Public API Functions * |