diff -r e1783e620a85 -r 088f823e196c pidgin/gtkrequest.c --- a/pidgin/gtkrequest.c Thu Sep 12 20:03:12 2013 +0530 +++ b/pidgin/gtkrequest.c Fri Sep 13 00:28:12 2013 +0530 @@ -323,8 +323,10 @@ STOCK_ITEMIZE(N_("Add"), GTK_STOCK_ADD); STOCK_ITEMIZE(N_("Remove"), GTK_STOCK_REMOVE); STOCK_ITEMIZE(N_("Save"), GTK_STOCK_SAVE); - STOCK_ITEMIZE(N_("Next"), GTK_STOCK_GO_FORWARD); + STOCK_ITEMIZE(N_("Next"), PIDGIN_STOCK_NEXT); + STOCK_ITEMIZE(N_("_Next"), PIDGIN_STOCK_NEXT); STOCK_ITEMIZE(N_("Back"), GTK_STOCK_GO_BACK); + STOCK_ITEMIZE(N_("_Back"), GTK_STOCK_GO_BACK); STOCK_ITEMIZE(N_("Alias"), PIDGIN_STOCK_ALIAS); return text; @@ -431,6 +433,23 @@ gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); } +static void +pidgin_request_add_help(GtkDialog *dialog, PurpleRequestCommonParameters *cpar) +{ + GtkWidget *button; + PurpleRequestHelpCb help_cb; + gpointer help_data; + + help_cb = purple_request_cpar_get_help_cb(cpar, &help_data); + if (help_cb == NULL) + return; + + button = gtk_dialog_add_button(dialog, GTK_STOCK_HELP, + GTK_RESPONSE_HELP); + g_signal_connect(G_OBJECT(button), "clicked", (GCallback)help_cb, + help_data); +} + static void * pidgin_request_input(const char *title, const char *primary, const char *secondary, const char *default_value, @@ -491,6 +510,8 @@ gtk_misc_set_alignment(GTK_MISC(img), 0, 0); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); + pidgin_request_add_help(GTK_DIALOG(dialog), cpar); + /* Vertical box */ vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); @@ -651,6 +672,8 @@ pidgin_widget_decorate_account(hbox, purple_request_cpar_get_account(cpar)); + pidgin_request_add_help(GTK_DIALOG(dialog), cpar); + /* Vertical box */ vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); @@ -776,6 +799,8 @@ pidgin_widget_decorate_account(hbox, purple_request_cpar_get_account(cpar)); + pidgin_request_add_help(GTK_DIALOG(dialog), cpar); + /* Descriptive label */ primary_esc = pidgin_request_escape(cpar, primary); secondary_esc = pidgin_request_escape(cpar, secondary); @@ -1381,6 +1406,8 @@ gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); gtk_widget_show(img); + pidgin_request_add_help(GTK_DIALOG(win), cpar); + /* Cancel button */ button = pidgin_dialog_add_button(GTK_DIALOG(win), text_to_stock(cancel_text), G_CALLBACK(multifield_cancel_cb), data); gtk_widget_set_can_default(button, TRUE); @@ -1776,6 +1803,8 @@ NULL); gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT); + pidgin_request_add_help(GTK_DIALOG(filesel), cpar); + if ((filename != NULL) && (*filename != '\0')) { if (savedialog) gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); @@ -1845,6 +1874,8 @@ NULL); gtk_dialog_set_default_response(GTK_DIALOG(dirsel), GTK_RESPONSE_ACCEPT); + pidgin_request_add_help(GTK_DIALOG(dirsel), cpar); + if ((dirname != NULL) && (*dirname != '\0')) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dirsel), dirname);