[evolution] Deal with GtkComboBoxEntry removal in gtk+-3.0.



commit 4a08257b83512cc32b73d732ccc53266a22b917c
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Oct 20 16:10:15 2010 -0400

    Deal with GtkComboBoxEntry removal in gtk+-3.0.

 .../gui/contact-editor/e-contact-editor-fullname.c |   13 ++++++----
 addressbook/gui/contact-editor/e-contact-editor.c  |   10 ++++----
 calendar/gui/dialogs/event-page.c                  |    2 +-
 calendar/gui/dialogs/memo-page.c                   |    2 +-
 calendar/gui/dialogs/task-page.c                   |    2 +-
 e-util/e-datetime-format.c                         |   24 +++++++++++++++----
 e-util/gtk-compat.h                                |    7 +++++
 mail/e-mail-tag-editor.c                           |    2 +-
 modules/addressbook/addressbook-config.c           |    5 +++-
 widgets/misc/e-dateedit.c                          |    9 +++++++
 10 files changed, 56 insertions(+), 20 deletions(-)
---
diff --git a/addressbook/gui/contact-editor/e-contact-editor-fullname.c b/addressbook/gui/contact-editor/e-contact-editor-fullname.c
index ea0bb6b..c26b6e5 100644
--- a/addressbook/gui/contact-editor/e-contact-editor-fullname.c
+++ b/addressbook/gui/contact-editor/e-contact-editor-fullname.c
@@ -28,6 +28,9 @@
 
 #include "e-contact-editor-fullname.h"
 
+/* backward-compatibility cruft */
+#include "e-util/gtk-compat.h"
+
 static void fill_in_info (EContactEditorFullname *editor);
 static void extract_info (EContactEditorFullname *editor);
 
@@ -89,7 +92,7 @@ e_contact_editor_fullname_set_property (GObject *object,
 				gtk_editable_set_editable (GTK_EDITABLE (w),
 							   e_contact_editor_fullname->editable);
 			}
-			else if (GTK_IS_COMBO_BOX_ENTRY (w)) {
+			else if (GTK_IS_COMBO_BOX (w)) {
 				gtk_editable_set_editable (GTK_EDITABLE (gtk_bin_get_child (GTK_BIN (w))),
 							   e_contact_editor_fullname->editable);
 				gtk_widget_set_sensitive (w, e_contact_editor_fullname->editable);
@@ -232,9 +235,9 @@ e_contact_editor_fullname_init (EContactEditorFullname *e_contact_editor_fullnam
 		GTK_WINDOW (e_contact_editor_fullname), "contact-new");
 
 	widget = e_builder_get_widget (builder, "comboentry-title");
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
 	widget = e_builder_get_widget (builder, "comboentry-suffix");
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
 }
 
 GtkWidget*
@@ -258,7 +261,7 @@ fill_in_field (EContactEditorFullname *editor,
 
 	if (GTK_IS_ENTRY (widget))
 		entry = GTK_ENTRY (widget);
-	else if (GTK_IS_COMBO_BOX_ENTRY (widget))
+	else if (GTK_IS_COMBO_BOX (widget))
 		entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget)));
 
 	if (entry) {
@@ -291,7 +294,7 @@ extract_field (EContactEditorFullname *editor,
 
 	if (GTK_IS_ENTRY (widget))
 		entry = GTK_ENTRY (widget);
-	else if (GTK_IS_COMBO_BOX_ENTRY (widget))
+	else if (GTK_IS_COMBO_BOX (widget))
 		entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget)));
 
 	if (entry)
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c
index c597246..e67305b 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -534,7 +534,7 @@ file_as_set_style (EContactEditor *editor, gint style)
 	GtkEntry *company_w = GTK_ENTRY (e_builder_get_widget (editor->builder, "entry-company"));
 	const gchar *company;
 
-	if (!(combo_file_as && GTK_IS_COMBO_BOX_ENTRY (combo_file_as)))
+	if (!(combo_file_as && GTK_IS_COMBO_BOX (combo_file_as)))
 		return;
 
 	company = gtk_entry_get_text (GTK_ENTRY (company_w));
@@ -2259,7 +2259,7 @@ init_simple_field (EContactEditor *editor, GtkWidget *widget)
 		changed_object = G_OBJECT (widget);
 		g_signal_connect_swapped (widget, "activate", G_CALLBACK (entry_activated), editor);
 	}
-	else if (GTK_IS_COMBO_BOX_ENTRY (widget)) {
+	else if (GTK_IS_COMBO_BOX (widget)) {
 		changed_object = G_OBJECT (/*gtk_bin_get_child (GTK_BIN*/ (widget)/*)*/);
 		g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (widget)), "activate", G_CALLBACK (entry_activated), editor);
 	}
@@ -2301,7 +2301,7 @@ fill_in_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id)
 		gtk_entry_set_text (GTK_ENTRY (widget), STRING_MAKE_NON_NULL (text));
 		g_free (text);
 	}
-	else if (GTK_IS_COMBO_BOX_ENTRY (widget)) {
+	else if (GTK_IS_COMBO_BOX (widget)) {
 		gchar *text = e_contact_get (contact, field_id);
 		gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (widget))), STRING_MAKE_NON_NULL (text));
 		g_free (text);
@@ -2371,7 +2371,7 @@ extract_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id)
 		const gchar *text = gtk_entry_get_text (GTK_ENTRY (widget));
 		e_contact_set (contact, field_id, (gchar *) text);
 	}
-	else if (GTK_IS_COMBO_BOX_ENTRY (widget)) {
+	else if (GTK_IS_COMBO_BOX (widget)) {
 		gchar *text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (widget));
 
 		e_contact_set (contact, field_id, text);
@@ -2531,7 +2531,7 @@ init_simple (EContactEditor *editor)
 	widget = e_builder_get_widget (editor->builder, "entry-fullname");
 	g_signal_connect (widget, "changed", G_CALLBACK (name_entry_changed), editor);
 	widget = e_builder_get_widget (editor->builder, "combo-file-as");
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
 	g_signal_connect (widget, "changed", G_CALLBACK (file_as_combo_changed), editor);
 	widget = e_builder_get_widget (editor->builder, "entry-company");
 	g_signal_connect (widget, "changed", G_CALLBACK (company_entry_changed), editor);
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 753b9ca..94b25a0 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -2244,7 +2244,7 @@ get_widgets (EventPage *epage)
 
 	priv->organizer = GW ("organizer");
 	gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (priv->organizer))));
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->organizer), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (priv->organizer), 0);
 
 	priv->summary = GW ("summary");
 	priv->summary_label = GW ("summary-label");
diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c
index 454060c..dc0e9ae 100644
--- a/calendar/gui/dialogs/memo-page.c
+++ b/calendar/gui/dialogs/memo-page.c
@@ -829,7 +829,7 @@ get_widgets (MemoPage *mpage)
 	priv->org_label = GW ("org-label");
 	priv->org_combo = GW ("org-combo");
 	gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (priv->org_combo))));
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->org_combo), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (priv->org_combo), 0);
 
 	priv->to_button = GW ("to-button");
 	priv->to_hbox = GW ("to-hbox");
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index 22cab43..68fa61c 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -1420,7 +1420,7 @@ get_widgets (TaskPage *tpage)
 
 	priv->organizer = e_builder_get_widget (priv->builder, "organizer");
 	gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (priv->organizer))));
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->organizer), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (priv->organizer), 0);
 
 	priv->invite = e_builder_get_widget (priv->builder, "invite");
 	priv->add = e_builder_get_widget (priv->builder, "add-attendee");
diff --git a/e-util/e-datetime-format.c b/e-util/e-datetime-format.c
index 05630d2..fa0d0f2 100644
--- a/e-util/e-datetime-format.c
+++ b/e-util/e-datetime-format.c
@@ -338,7 +338,7 @@ fill_combo_formats (GtkWidget *combo, const gchar *key, DTFormatKind kind)
 	gint i, idx = 0;
 	const gchar *fmt;
 
-	g_return_if_fail (GTK_IS_COMBO_BOX_ENTRY (combo));
+	g_return_if_fail (GTK_IS_COMBO_BOX (combo));
 
 	switch (kind) {
 	case DTFormatKindDate:
@@ -388,8 +388,7 @@ update_preview_widget (GtkWidget *combo)
 	gchar *value;
 	time_t now;
 
-	g_return_if_fail (combo != NULL);
-	g_return_if_fail (GTK_IS_COMBO_BOX_ENTRY (combo));
+	g_return_if_fail (GTK_IS_COMBO_BOX (combo));
 
 	preview = g_object_get_data (G_OBJECT (combo), "preview-label");
 	g_return_if_fail (preview != NULL);
@@ -412,8 +411,7 @@ format_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 	DTFormatKind kind;
 	GKeyFile *keyfile;
 
-	g_return_if_fail (combo != NULL);
-	g_return_if_fail (GTK_IS_COMBO_BOX_ENTRY (combo));
+	g_return_if_fail (GTK_IS_COMBO_BOX (combo));
 
 	key = g_object_get_data (G_OBJECT (combo), "format-key");
 	g_return_if_fail (key != NULL);
@@ -509,7 +507,23 @@ e_datetime_format_add_setup_widget (GtkWidget *table, gint row, const gchar *com
 	key = gen_key (component, part, kind);
 
 	label = gtk_label_new_with_mnemonic (caption ? caption : _("Format:"));
+#if GTK_CHECK_VERSION(2,23,0)
+	/* FIXME Rewrite this when removing the version check. */
+	{
+		GtkListStore *store;
+
+		store = gtk_list_store_new (1, G_TYPE_STRING);
+		combo = g_object_new (
+			GTK_TYPE_COMBO_BOX,
+			"model", store,
+			"has-entry", TRUE,
+			"entry-text-column", 0,
+			NULL);
+		g_object_unref (store);
+	}
+#else
 	combo = gtk_combo_box_entry_new_text ();
+#endif
 
 	fill_combo_formats (combo, key, kind);
 	gtk_label_set_mnemonic_widget ((GtkLabel *)label, combo);
diff --git a/e-util/gtk-compat.h b/e-util/gtk-compat.h
index cc27e0e..3b9c7ef 100644
--- a/e-util/gtk-compat.h
+++ b/e-util/gtk-compat.h
@@ -14,6 +14,13 @@
 #define GtkComboBoxText				GtkComboBox
 #endif
 
+#if GTK_CHECK_VERSION (2,23,0)
+#define GTK_COMBO_BOX_ENTRY			GTK_COMBO_BOX
+#else
+#define gtk_combo_box_set_entry_text_column \
+	gtk_combo_box_entry_set_text_column
+#endif
+
 #if GTK_CHECK_VERSION (2,90,5)
 
 /* Recreate GdkRegion until we drop GTK2 compatibility. */
diff --git a/mail/e-mail-tag-editor.c b/mail/e-mail-tag-editor.c
index c55ed05..659d00a 100644
--- a/mail/e-mail-tag-editor.c
+++ b/mail/e-mail-tag-editor.c
@@ -335,7 +335,7 @@ mail_tag_editor_init (EMailTagEditor *editor)
 		renderer, "text", 1, NULL);
 
 	widget = e_builder_get_widget (builder, "combo");
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (widget), 0);
 	editor->priv->combo_entry = GTK_COMBO_BOX (widget);
 	gtk_combo_box_set_active (GTK_COMBO_BOX (widget), DEFAULT_FLAG);
 
diff --git a/modules/addressbook/addressbook-config.c b/modules/addressbook/addressbook-config.c
index b6a8051..3066da0 100644
--- a/modules/addressbook/addressbook-config.c
+++ b/modules/addressbook/addressbook-config.c
@@ -50,6 +50,9 @@
 
 #include "addressbook/gui/widgets/eab-config.h"
 
+/* backward-compatibility cruft */
+#include "e-util/gtk-compat.h"
+
 #define d(x)
 
 #ifdef HAVE_LDAP
@@ -748,7 +751,7 @@ eabc_general_host (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
 	g_signal_connect (sdialog->host, "changed", G_CALLBACK (host_changed_cb), sdialog);
 
 	sdialog->port_comboentry = e_builder_get_widget (builder, "port-comboentry");
-	gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (sdialog->port_comboentry), 0);
+	gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX_ENTRY (sdialog->port_comboentry), 0);
 	gtk_widget_set_has_tooltip (sdialog->port_comboentry, TRUE);
 	gtk_widget_set_tooltip_text (sdialog->port_comboentry, _("This is the port on the LDAP server that Evolution will try to connect to. A list of standard ports has been provided. Ask your system administrator what port you should specify."));
 	sprintf(port, "%u", lud && lud->lud_port? lud->lud_port : LDAP_PORT);
diff --git a/widgets/misc/e-dateedit.c b/widgets/misc/e-dateedit.c
index 01b70e4..da3c9db 100644
--- a/widgets/misc/e-dateedit.c
+++ b/widgets/misc/e-dateedit.c
@@ -571,8 +571,17 @@ create_children			(EDateEdit	*dedit)
 		"widget \"*.e-dateedit-timecombo\" style \"e-dateedit-timecombo-style\"");
 
 	time_store = gtk_list_store_new (1, G_TYPE_STRING);
+#if GTK_CHECK_VERSION(2,23,0)
+	priv->time_combo = g_object_new (
+		GTK_TYPE_COMBO_BOX,
+		"model", time_store,
+		"has-entry", TRUE,
+		"entry-text-column", 0,
+		NULL);
+#else
 	priv->time_combo = gtk_combo_box_entry_new_with_model (
 		GTK_TREE_MODEL (time_store), 0);
+#endif
 	g_object_unref (time_store);
 
 	child = gtk_bin_get_child (GTK_BIN (priv->time_combo));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]