pidgin/pidgin

Replace GtkTable with GtkGrid in conversation window.

2014-11-11, Elliott Sales de Andrade
2a390d401448
Parents dadd62632e4a
Children 2a4179d0177d
Replace GtkTable with GtkGrid in conversation window.
--- a/pidgin/gtk3compat.h Mon Nov 10 16:17:31 2014 -0500
+++ b/pidgin/gtk3compat.h Tue Nov 11 00:54:39 2014 -0500
@@ -77,7 +77,7 @@
gtk_color_button_get_color(GTK_COLOR_BUTTON(widget), color);
}
-#else
+#else /* 3.4.0 */
static inline void
pidgin_color_chooser_set_rgb(GtkColorChooser *chooser, const GdkColor *rgb)
@@ -106,6 +106,57 @@
#endif /* 3.4.0 and gtk_color_chooser_ */
+#if GTK_CHECK_VERSION(3,0,0)
+
+static inline GtkWidget *
+gtk_grid_table_new(guint rows, guint columns)
+{
+ return gtk_grid_new();
+}
+
+static inline void
+gtk_grid_attach_defaults(GtkGrid *grid, GtkWidget *child, gint left, gint top,
+ gint width, gint height)
+{
+ gtk_grid_attach(grid, child, left, top, width, height);
+ gtk_widget_set_hexpand(child, TRUE);
+ gtk_widget_set_vexpand(child, TRUE);
+}
+
+#else /* 3.0.0 and gtk_grid_ */
+
+#define GTK_GRID GTK_TABLE
+#define GtkGrid GtkTable
+
+static inline GtkWidget *
+gtk_grid_table_new(guint rows, guint columns)
+{
+ return gtk_table_new(rows, columns, FALSE);
+}
+
+static inline void
+gtk_grid_set_row_spacing(GtkGrid *grid, guint spacing)
+{
+ gtk_table_set_row_spacings(grid, spacing);
+}
+
+static inline void
+gtk_grid_set_column_spacing(GtkGrid *grid, guint spacing)
+{
+ gtk_table_set_col_spacings(grid, spacing);
+}
+
+static inline void
+gtk_grid_attach_defaults(GtkGrid *grid, GtkWidget *child, gint left, gint top,
+ gint width, gint height)
+{
+ gtk_table_attach_defaults(grid, child, left, left + width,
+ top, top + height);
+}
+
+#endif /* 3.0.0 and gtk_grid_ */
+
+
#if !GTK_CHECK_VERSION(3,2,0)
#define GTK_FONT_CHOOSER GTK_FONT_SELECTION_DIALOG
--- a/pidgin/gtkconv.c Mon Nov 10 16:17:31 2014 -0500
+++ b/pidgin/gtkconv.c Tue Nov 11 00:54:39 2014 -0500
@@ -919,7 +919,7 @@
PidginConvWindow *gtkwin;
GtkWidget *label;
GtkWidget *vbox, *hbox;
- GtkWidget *table;
+ GtkWidget *grid;
GtkWidget *img;
img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
@@ -969,42 +969,42 @@
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- /* hbox for the table, and to give it some spacing on the left. */
+ /* hbox for the grid, and to give it some spacing on the left. */
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE);
gtk_container_add(GTK_CONTAINER(vbox), hbox);
- /* Setup the table we're going to use to lay stuff out. */
- table = gtk_table_new(2, 2, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE);
- gtk_table_set_col_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE);
- gtk_container_set_border_width(GTK_CONTAINER(table), PIDGIN_HIG_BORDER);
- gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+ /* Setup the grid we're going to use to lay stuff out. */
+ grid = gtk_grid_table_new(2, 2);
+ gtk_grid_set_row_spacing(GTK_GRID(grid), PIDGIN_HIG_BOX_SPACE);
+ gtk_grid_set_column_spacing(GTK_GRID(grid), PIDGIN_HIG_BOX_SPACE);
+ gtk_container_set_border_width(GTK_CONTAINER(grid), PIDGIN_HIG_BORDER);
+ gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 0);
/* Now the Buddy label */
label = gtk_label_new(NULL);
gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Buddy:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
+ gtk_grid_attach_defaults(GTK_GRID(grid), label, 0, 0, 1, 1);
/* Now the Buddy drop-down entry field. */
info->entry = gtk_entry_new();
pidgin_setup_screenname_autocomplete(info->entry, NULL, chat_invite_filter,
purple_conversation_get_account(PURPLE_CONVERSATION(chat)));
- gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1);
+ gtk_grid_attach_defaults(GTK_GRID(grid), info->entry, 1, 0, 1, 1);
gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->entry);
/* Now the label for "Message" */
label = gtk_label_new(NULL);
gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Message:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
+ gtk_grid_attach_defaults(GTK_GRID(grid), label, 0, 1, 1, 1);
/* And finally, the Message entry field. */
info->message = gtk_entry_new();
gtk_entry_set_activates_default(GTK_ENTRY(info->message), TRUE);
- gtk_table_attach_defaults(GTK_TABLE(table), info->message, 1, 2, 1, 2);
+ gtk_grid_attach_defaults(GTK_GRID(grid), info->message, 1, 1, 1, 1);
gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->message);
/* Connect the signals. */