/soc/2015/mmcc/main: 5d4a86d3ccca: I misunderstood text_to_stock...

Michael McConville <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 5d4a86d3ccca73df3443833879fdd9aafb432b74
Author:	 Michael McConville <[email protected]>
Date:	 2015-06-24 23:20 -0400
Branch:	 default
URL: https://hg.pidgin.im/soc/2015/mmcc/main/rev/5d4a86d3ccca

Description:

I misunderstood text_to_stock() - this restores it and updates it to replace Stock Items

diffstat:

 pidgin/gtkrequest.c |  72 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 55 insertions(+), 17 deletions(-)

diffs (155 lines):

diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c
--- a/pidgin/gtkrequest.c
+++ b/pidgin/gtkrequest.c
@@ -320,6 +320,39 @@ destroy_multifield_cb(GtkWidget *dialog,
 	return FALSE;
 }
 
+
+#define STOCK_ITEMIZE(r, l) \
+	if (!strcmp((r), text) || !strcmp(_(r), text)) \
+		return (l);
+
+static const char *
+text_to_stock(const char *text)
+{
+	STOCK_ITEMIZE(N_("Yes"),     _("_Yes"));
+	STOCK_ITEMIZE(N_("_Yes"),    _("_Yes"));
+	STOCK_ITEMIZE(N_("No"),      _("_No"));
+	STOCK_ITEMIZE(N_("_No"),     _("_No"));
+	STOCK_ITEMIZE(N_("OK"),      _("_OK"));
+	STOCK_ITEMIZE(N_("_OK"),     _("_OK"));
+	STOCK_ITEMIZE(N_("Cancel"),  _("_Cancel"));
+	STOCK_ITEMIZE(N_("_Cancel"), _("_Cancel"));
+	STOCK_ITEMIZE(N_("Apply"),   _("_Apply"));
+	STOCK_ITEMIZE(N_("Close"),   _("_Close"));
+	STOCK_ITEMIZE(N_("Delete"),  _("_Delete"));
+	STOCK_ITEMIZE(N_("Add"),     _("_Add"));
+	STOCK_ITEMIZE(N_("Remove"),  _("_Remove"));
+	STOCK_ITEMIZE(N_("Save"),    _("_Save"));
+	STOCK_ITEMIZE(N_("Next"),    PIDGIN_STOCK_NEXT);
+	STOCK_ITEMIZE(N_("_Next"),   PIDGIN_STOCK_NEXT);
+	STOCK_ITEMIZE(N_("Back"),    _("_Back"));
+	STOCK_ITEMIZE(N_("_Back"),   _("_Back"));
+	STOCK_ITEMIZE(N_("Alias"),   PIDGIN_STOCK_ALIAS);
+
+	return text;
+}
+
+#undef STOCK_ITEMIZE
+
 static gchar *
 pidgin_request_escape(PurpleRequestCommonParameters *cpar, const gchar *text)
 {
@@ -479,8 +512,8 @@ static void *
 pidgin_request_input(const char *title, const char *primary,
 					   const char *secondary, const char *default_value,
 					   gboolean multiline, gboolean masked, gchar *hint,
-					   GCallback ok_cb,
-					   GCallback cancel_cb,
+					   const char *ok_text, GCallback ok_cb,
+					   const char *cancel_text, GCallback cancel_cb,
 					   PurpleRequestCommonParameters *cpar,
 					   void *user_data)
 {
@@ -508,7 +541,7 @@ pidgin_request_input(const char *title, 
 	dialog = gtk_dialog_new_with_buttons(title ? title : PIDGIN_ALERT_TITLE,
 					     NULL, 0,
 					     _("_Cancel"), 1,
-					     _("_OK"),     0,
+					     text_to_stock(ok_text),     0,
 					     NULL);
 	data->dialog = dialog;
 
@@ -632,8 +665,8 @@ pidgin_request_input(const char *title, 
 
 static void *
 pidgin_request_choice(const char *title, const char *primary,
-	const char *secondary, gpointer default_value,
-	GCallback ok_cb, GCallback cancel_cb,
+	const char *secondary, gpointer default_value, const char *ok_text,
+	GCallback ok_cb, const char *cancel_text, GCallback cancel_cb,
 	PurpleRequestCommonParameters *cpar, void *user_data, va_list args)
 {
 	PidginRequestData *data;
@@ -666,10 +699,10 @@ pidgin_request_choice(const char *title,
 #endif
 
 	gtk_dialog_add_button(GTK_DIALOG(dialog),
-			      _("_Cancel"), 0);
+			      text_to_stock(cancel_text), 0);
 
 	gtk_dialog_add_button(GTK_DIALOG(dialog),
-			      _("_OK"), 1);
+			      text_to_stock(ok_text), 1);
 
 	g_signal_connect(G_OBJECT(dialog), "response",
 			 G_CALLBACK(choice_response_cb), data);
@@ -787,7 +820,7 @@ pidgin_request_action(const char *title,
 
 	for (i = 0; i < action_count; i++) {
 		gtk_dialog_add_button(GTK_DIALOG(dialog),
-							  buttons[2 * i], i);
+							  text_to_stock(buttons[2 * i]), i);
 
 		data->cbs[i] = buttons[2 * i + 1];
 	}
@@ -925,7 +958,7 @@ pidgin_request_wait(const char *title, c
 
 	/* Cancel button */
 	button = pidgin_dialog_add_button(GTK_DIALOG(dialog),
-		_("Cancel"), G_CALLBACK(wait_cancel_cb), data);
+		text_to_stock(_("Cancel")), G_CALLBACK(wait_cancel_cb), data);
 	gtk_widget_set_can_default(button, FALSE);
 
 	/* Vertical box */
@@ -1919,8 +1952,8 @@ create_datasheet_field(PurpleRequestFiel
 
 static void *
 pidgin_request_fields(const char *title, const char *primary,
-	const char *secondary, PurpleRequestFields *fields,
-	GCallback ok_cb, GCallback cancel_cb,
+	const char *secondary, PurpleRequestFields *fields, const char *ok_text,
+	GCallback ok_cb, const char *cancel_text, GCallback cancel_cb,
 	PurpleRequestCommonParameters *cpar, void *user_data)
 {
 	PidginRequestData *data;
@@ -1944,6 +1977,7 @@ pidgin_request_fields(const char *title,
 	size_t extra_actions_count, i;
 	const gchar **tab_names;
 	guint tab_count;
+	gboolean ok_btn = (ok_text != NULL);
 
 	data            = g_new0(PidginRequestData, 1);
 	data->type      = PURPLE_REQUEST_FIELDS;
@@ -1989,20 +2023,24 @@ pidgin_request_fields(const char *title,
 		PurpleRequestFieldsCb *cb = it->next->data;
 
 		button = pidgin_dialog_add_button(GTK_DIALOG(win),
-			_(label), G_CALLBACK(multifield_extra_cb),
+			text_to_stock(label), G_CALLBACK(multifield_extra_cb),
 			data);
 		g_object_set_data(G_OBJECT(button), "extra-cb", cb);
 	}
 
 	/* Cancel button */
-	button = pidgin_dialog_add_button(GTK_DIALOG(win), _("_Cancel"), G_CALLBACK(multifield_cancel_cb), data);
+	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);
 
 	/* OK button */
-	button = pidgin_dialog_add_button(GTK_DIALOG(win), _("_OK"), G_CALLBACK(multifield_ok_cb), data);
-	data->ok_button = button;
-	gtk_widget_set_can_default(button, TRUE);
-	gtk_window_set_default(GTK_WINDOW(win), button);
+	if (!ok_btn) {
+		gtk_window_set_default(GTK_WINDOW(win), button);
+	} else {
+		button = pidgin_dialog_add_button(GTK_DIALOG(win), text_to_stock(ok_text), G_CALLBACK(multifield_ok_cb), data);
+		data->ok_button = button;
+		gtk_widget_set_can_default(button, TRUE);
+		gtk_window_set_default(GTK_WINDOW(win), button);
+	}
 
 	pidgin_widget_decorate_account(hbox,
 		purple_request_cpar_get_account(cpar));

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.