# HG changeset patch # User Jeffrey Connelly # Date 1202541972 0 # Node ID bd25f8c9d94e49eb1c2c49a67f831a79ebbb9b41 # Parent c2115e5e613dfc10bd26ac27e0622737acb556dd Pidgin attention GUI from nok. Adds "Send Attention" to conversation menu, which sends a generic attention command -- that could be a nudge, buzz, zap, etc. depending on the prpl. Only sends attention command type #0 for now (multiple types tracked by #4810) and the send-attention.png is missing (tracked by #4809). Closes #2788. diff -r c2115e5e613d -r bd25f8c9d94e pidgin/gtkconv.c --- a/pidgin/gtkconv.c Sat Feb 09 03:09:13 2008 +0000 +++ b/pidgin/gtkconv.c Sat Feb 09 07:26:12 2008 +0000 @@ -1186,6 +1186,17 @@ } static void +menu_send_attention_cb(gpointer data, guint action, GtkWidget *widget) +{ + PidginWindow *win = data; + PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); + + if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { + serv_send_attention(purple_conversation_get_gc(conv), purple_conversation_get_name(conv), 0); + } +} + +static void menu_add_pounce_cb(gpointer data, guint action, GtkWidget *widget) { PidginWindow *win = data; @@ -2952,6 +2963,7 @@ { "/Conversation/sep1", NULL, NULL, 0, "", NULL }, { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "", PIDGIN_STOCK_TOOLBAR_SEND_FILE }, + { N_("/Conversation/Send _Attention..."), NULL, menu_send_attention_cb, 0, "", PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION }, { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, 0, "", NULL }, { N_("/Conversation/_Get Info"), "O", menu_get_info_cb, 0, @@ -3258,6 +3270,9 @@ gtk_item_factory_get_widget(win->menu.item_factory, N_("/Conversation/Send File...")); + win->menu.send_attention = + gtk_item_factory_get_widget(win->menu.item_factory, + N_("/Conversation/Send Attention")); win->menu.add_pounce = gtk_item_factory_get_widget(win->menu.item_factory, N_("/Conversation/Add Buddy Pounce...")); @@ -6245,6 +6260,7 @@ /* Deal with menu items */ gtk_widget_show(win->menu.view_log); gtk_widget_show(win->menu.send_file); + gtk_widget_show(win->menu.send_attention); gtk_widget_show(win->menu.add_pounce); gtk_widget_show(win->menu.get_info); gtk_widget_hide(win->menu.invite); @@ -6273,6 +6289,7 @@ /* Deal with menu items */ gtk_widget_show(win->menu.view_log); gtk_widget_hide(win->menu.send_file); + gtk_widget_hide(win->menu.send_attention); gtk_widget_hide(win->menu.add_pounce); gtk_widget_hide(win->menu.get_info); gtk_widget_show(win->menu.invite); @@ -6345,6 +6362,7 @@ gtk_widget_set_sensitive(win->menu.send_file, (prpl_info->send_file != NULL && (!prpl_info->can_receive_file || prpl_info->can_receive_file(gc, purple_conversation_get_name(conv))))); + gtk_widget_set_sensitive(win->menu.send_attention, (prpl_info->send_attention != NULL)); gtk_widget_set_sensitive(win->menu.alias, (account != NULL) && (purple_find_buddy(account, purple_conversation_get_name(conv)) != NULL)); @@ -6365,6 +6383,7 @@ /* Then deal with menu items */ gtk_widget_set_sensitive(win->menu.view_log, TRUE); gtk_widget_set_sensitive(win->menu.send_file, FALSE); + gtk_widget_set_sensitive(win->menu.send_attention, FALSE); gtk_widget_set_sensitive(win->menu.add_pounce, TRUE); gtk_widget_set_sensitive(win->menu.get_info, FALSE); gtk_widget_set_sensitive(win->menu.invite, FALSE); diff -r c2115e5e613d -r bd25f8c9d94e pidgin/gtkconvwin.h --- a/pidgin/gtkconvwin.h Sat Feb 09 03:09:13 2008 +0000 +++ b/pidgin/gtkconvwin.h Sat Feb 09 07:26:12 2008 +0000 @@ -51,6 +51,7 @@ GtkWidget *view_log; GtkWidget *send_file; + GtkWidget *send_attention; GtkWidget *add_pounce; GtkWidget *get_info; GtkWidget *invite; diff -r c2115e5e613d -r bd25f8c9d94e pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Sat Feb 09 03:09:13 2008 +0000 +++ b/pidgin/gtkprefs.c Sat Feb 09 07:26:12 2008 +0000 @@ -976,7 +976,10 @@ fontpref = pidgin_prefs_checkbox(_("Use font from _theme"), PIDGIN_PREFS_ROOT "/conversations/use_theme_font", vbox); font_name = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/custom_font"); - font_button = gtk_font_button_new_with_font(font_name ? font_name : NULL); + font_button = gtk_font_button_new(); + if (font_name && strlen(font_name)) + gtk_font_button_set_font_name((GtkFontButton *)font_button, (const char*)font_name); + gtk_font_button_set_show_style(GTK_FONT_BUTTON(font_button), TRUE); hbox = pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Conversation _font:"), NULL, font_button, FALSE, NULL); if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/use_theme_font")) diff -r c2115e5e613d -r bd25f8c9d94e pidgin/pidginstock.c --- a/pidgin/pidginstock.c Sat Feb 09 03:09:13 2008 +0000 +++ b/pidgin/pidginstock.c Sat Feb 09 07:26:12 2008 +0000 @@ -168,6 +168,7 @@ { PIDGIN_STOCK_TOOLBAR_UNBLOCK, "toolbar", "unblock.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, "toolbar", "select-avatar.png", FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, NULL }, { PIDGIN_STOCK_TOOLBAR_SEND_FILE, "toolbar", "send-file.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, + { PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION, "toolbar", "send-attention.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { PIDGIN_STOCK_TRAY_AVAILABLE, "tray", "tray-online.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, { PIDGIN_STOCK_TRAY_INVISIBLE, "tray", "tray-invisible.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, diff -r c2115e5e613d -r bd25f8c9d94e pidgin/pidginstock.h --- a/pidgin/pidginstock.h Sat Feb 09 03:09:13 2008 +0000 +++ b/pidgin/pidginstock.h Sat Feb 09 07:26:12 2008 +0000 @@ -129,6 +129,7 @@ #define PIDGIN_STOCK_TOOLBAR_UNBLOCK "pidgin-unblock" #define PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR "pidgin-select-avatar" #define PIDGIN_STOCK_TOOLBAR_SEND_FILE "pidgin-send-file" +#define PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION "pidgin-send-attention" /* Tray icons */ #define PIDGIN_STOCK_TRAY_AVAILABLE "pidgin-tray-available"