/pidgin/main: 2a4179d0177d: Replace GtkTable with GtkGrid in Pre...

Elliott Sales de Andrade qulogic at pidgin.im
Tue Nov 11 01:10:00 EST 2014


Changeset: 2a4179d0177ddfe999e3f6bf0e77e22e9a940b0e
Author:	 Elliott Sales de Andrade <qulogic at pidgin.im>
Date:	 2014-11-10 23:54 -0500
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/2a4179d0177d

Description:

Replace GtkTable with GtkGrid in Preferences window.

diffstat:

 pidgin/gtk3compat.h |  31 +++++++++++++++++++++++++++++++
 pidgin/gtkprefs.c   |  40 ++++++++++++++++++++++------------------
 2 files changed, 53 insertions(+), 18 deletions(-)

diffs (141 lines):

diff --git a/pidgin/gtk3compat.h b/pidgin/gtk3compat.h
--- a/pidgin/gtk3compat.h
+++ b/pidgin/gtk3compat.h
@@ -123,6 +123,28 @@ gtk_grid_attach_defaults(GtkGrid *grid, 
 	gtk_widget_set_vexpand(child, TRUE);
 }
 
+static inline void
+gtk_grid_attach_full(GtkGrid *grid, GtkWidget *child, guint left, guint top,
+	guint width, guint height, GtkAttachOptions xoptions,
+	GtkAttachOptions yoptions, guint xpadding, guint ypadding)
+{
+	gtk_grid_attach(grid, child, left, top, width, height);
+
+	if (xoptions & GTK_EXPAND)
+		gtk_widget_set_hexpand(child, TRUE);
+	if (!(xoptions & GTK_FILL))
+		gtk_widget_set_halign(child, GTK_ALIGN_CENTER);
+	gtk_widget_set_margin_left(child, xpadding);
+	gtk_widget_set_margin_right(child, xpadding);
+
+	if (yoptions & GTK_EXPAND)
+		gtk_widget_set_vexpand(child, TRUE);
+	if (!(yoptions & GTK_FILL))
+		gtk_widget_set_valign(child, GTK_ALIGN_CENTER);
+	gtk_widget_set_margin_top(child, ypadding);
+	gtk_widget_set_margin_bottom(child, ypadding);
+}
+
 #else /* 3.0.0 and gtk_grid_ */
 
 #define GTK_GRID GTK_TABLE
@@ -154,6 +176,15 @@ gtk_grid_attach_defaults(GtkGrid *grid, 
 		top, top + height);
 }
 
+static inline void
+gtk_grid_attach_full(GtkGrid *grid, GtkWidget *child, guint left, guint top,
+	guint width, guint height, GtkAttachOptions xoptions,
+	GtkAttachOptions yoptions, guint xpadding, guint ypadding)
+{
+	gtk_table_attach(grid, child, left, left + width, top, top + height,
+		xoptions, yoptions, xpadding, ypadding);
+}
+
 #endif /* 3.0.0 and gtk_grid_ */
 
 
diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c
--- a/pidgin/gtkprefs.c
+++ b/pidgin/gtkprefs.c
@@ -2483,7 +2483,7 @@ static GtkWidget *
 proxy_page(void)
 {
 	GtkWidget *ret = NULL, *vbox = NULL, *hbox = NULL;
-	GtkWidget *table = NULL, *entry = NULL, *proxy_button = NULL;
+	GtkWidget *grid = NULL, *entry = NULL, *proxy_button = NULL;
 	GtkLabel *label = NULL;
 	GtkWidget *prefs_proxy_frame = NULL;
 	PurpleProxyInfo *proxy_info;
@@ -2559,20 +2559,21 @@ proxy_page(void)
 		purple_prefs_connect_callback(prefs, "/purple/proxy/type",
 					    proxy_changed_cb, prefs_proxy_subframe);
 
-		table = gtk_table_new(4, 2, FALSE);
-		gtk_container_set_border_width(GTK_CONTAINER(table), 0);
-		gtk_table_set_col_spacings(GTK_TABLE(table), 5);
-		gtk_table_set_row_spacings(GTK_TABLE(table), 10);
-		gtk_container_add(GTK_CONTAINER(prefs_proxy_subframe), table);
+		grid = gtk_grid_table_new(4, 2);
+		gtk_container_set_border_width(GTK_CONTAINER(grid), 0);
+		gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
+		gtk_grid_set_row_spacing(GTK_GRID(grid), 10);
+		gtk_container_add(GTK_CONTAINER(prefs_proxy_subframe), grid);
 
 		label = GTK_LABEL(gtk_label_new_with_mnemonic(_("_Host:")));
 		gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-		gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
-			0, 1, 0, 1, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), GTK_WIDGET(label), 0, 0, 1, 1,
+			GTK_FILL, 0, 0, 0);
 
 		entry = gtk_entry_new();
 		gtk_label_set_mnemonic_widget(label, entry);
-		gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), entry, 1, 0, 1, 1,
+			GTK_FILL, 0, 0, 0);
 		g_signal_connect(G_OBJECT(entry), "changed",
 				 G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
 
@@ -2587,12 +2588,13 @@ proxy_page(void)
 
 		label = GTK_LABEL(gtk_label_new_with_mnemonic(_("P_ort:")));
 		gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-		gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
-			2, 3, 0, 1, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), GTK_WIDGET(label), 2, 0, 1, 1,
+			GTK_FILL, 0, 0, 0);
 
 		entry = gtk_spin_button_new_with_range(0, 65535, 1);
 		gtk_label_set_mnemonic_widget(label, entry);
-		gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), entry, 3, 0, 1, 1,
+			GTK_FILL, 0, 0, 0);
 		g_signal_connect(G_OBJECT(entry), "changed",
 				 G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
 
@@ -2604,12 +2606,13 @@ proxy_page(void)
 
 		label = GTK_LABEL(gtk_label_new_with_mnemonic(_("User_name:")));
 		gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-		gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
-			0, 1, 1, 2, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), GTK_WIDGET(label), 0, 1, 1, 1,
+			GTK_FILL, 0, 0, 0);
 
 		entry = gtk_entry_new();
 		gtk_label_set_mnemonic_widget(label, entry);
-		gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), entry, 1, 1, 1, 1,
+			GTK_FILL, 0, 0, 0);
 		g_signal_connect(G_OBJECT(entry), "changed",
 				 G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
 
@@ -2624,12 +2627,13 @@ proxy_page(void)
 
 		label = GTK_LABEL(gtk_label_new_with_mnemonic(_("Pa_ssword:")));
 		gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-		gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
-			2, 3, 1, 2, GTK_FILL, 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), GTK_WIDGET(label), 2, 1, 1, 1,
+			GTK_FILL, 0, 0, 0);
 
 		entry = gtk_entry_new();
 		gtk_label_set_mnemonic_widget(label, entry);
-		gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0);
+		gtk_grid_attach_full(GTK_GRID(grid), entry, 3, 1, 1, 1,
+			GTK_FILL, 0, 0, 0);
 		gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
 		g_signal_connect(G_OBJECT(entry), "changed",
 				 G_CALLBACK(proxy_print_option), (void *)PROXYPASS);



More information about the Commits mailing list