comparison src/gtkconv.c @ 12008:91aaa1b3ac30

[gaim-migrate @ 14301] sf patch #1348466, from Sadrul Habib Chowdhury Add a tooltip for the typing notification icons (and any other icon in the gtkmenutray) committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 08 Nov 2005 23:34:54 +0000
parents 2af814f836e6
children 16f75a4d9fec
comparison
equal deleted inserted replaced
12007:8724718d387f 12008:91aaa1b3ac30
2579 update_typing_icon(GaimGtkConversation *gtkconv) 2579 update_typing_icon(GaimGtkConversation *gtkconv)
2580 { 2580 {
2581 GaimGtkWindow *gtkwin; 2581 GaimGtkWindow *gtkwin;
2582 GaimConvIm *im = NULL; 2582 GaimConvIm *im = NULL;
2583 GaimConversation *conv = gtkconv->active_conv; 2583 GaimConversation *conv = gtkconv->active_conv;
2584 char *stock_id, *tooltip;
2584 2585
2585 gtkwin = gtkconv->win; 2586 gtkwin = gtkconv->win;
2586 2587
2587 if(gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM) 2588 if (gaim_conversation_get_type(conv) == GAIM_CONV_TYPE_IM)
2588 im = GAIM_CONV_IM(conv); 2589 im = GAIM_CONV_IM(conv);
2589 2590
2590 if(gtkwin->menu.typing_icon) { 2591 if (gtkwin->menu.typing_icon) {
2591 gtk_widget_destroy(gtkwin->menu.typing_icon); 2592 gtk_widget_hide(gtkwin->menu.typing_icon);
2592 gtkwin->menu.typing_icon = NULL; 2593 }
2593 } 2594
2594 2595 if (!im || (gaim_conv_im_get_typing_state(im) == GAIM_NOT_TYPING))
2595 if(im && gaim_conv_im_get_typing_state(im) == GAIM_TYPING) { 2596 return;
2596 gtkwin->menu.typing_icon = 2597
2597 gtk_image_new_from_stock(GAIM_STOCK_TYPING, GTK_ICON_SIZE_MENU); 2598 if (gaim_conv_im_get_typing_state(im) == GAIM_TYPING) {
2598 gtk_tooltips_set_tip(gtkconv->tooltips, gtkwin->menu.typing_icon, 2599 stock_id = GAIM_STOCK_TYPING;
2599 _("User is typing..."), NULL); 2600 tooltip = _("User is typing...");
2600 } else if(im && gaim_conv_im_get_typing_state(im) == GAIM_TYPED) { 2601 } else {
2601 gtkwin->menu.typing_icon = 2602 stock_id = GAIM_STOCK_TYPED;
2602 gtk_image_new_from_stock(GAIM_STOCK_TYPED, GTK_ICON_SIZE_MENU); 2603 tooltip = _("User has typed something and stopped");
2603 gtk_tooltips_set_tip(gtkconv->tooltips, gtkwin->menu.typing_icon, 2604 }
2604 _("User has typed something and paused"), NULL); 2605
2605 } 2606 if (gtkwin->menu.typing_icon == NULL)
2606 2607 {
2607 if(gtkwin->menu.typing_icon) { 2608 gtkwin->menu.typing_icon = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU);
2608 gtk_widget_show(gtkwin->menu.typing_icon);
2609 gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkwin->menu.tray), 2609 gaim_gtk_menu_tray_append(GAIM_GTK_MENU_TRAY(gtkwin->menu.tray),
2610 gtkwin->menu.typing_icon, 2610 gtkwin->menu.typing_icon,
2611 _("The buddy is typing a message")); 2611 tooltip);
2612 } 2612 }
2613 else
2614 {
2615 gtk_image_set_from_stock(GTK_IMAGE(gtkwin->menu.typing_icon), stock_id, GTK_ICON_SIZE_MENU);
2616 gaim_gtk_menu_tray_set_tooltip(GAIM_GTK_MENU_TRAY(gtkwin->menu.tray),
2617 gtkwin->menu.typing_icon,
2618 tooltip);
2619 }
2620
2621 gtk_widget_show(gtkwin->menu.typing_icon);
2613 } 2622 }
2614 2623
2615 static gboolean 2624 static gboolean
2616 update_send_to_selection(GaimGtkWindow *win) 2625 update_send_to_selection(GaimGtkWindow *win)
2617 { 2626 {