[gedit] Port encoding option menu widget to use a combobox.



commit 820ce8820a8db40eca5ca0b63f2d6e3a07416373
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Fri Jan 22 17:22:14 2010 +0100

    Port encoding option menu widget to use a combobox.
    
    This patch is based on Maxim Ermilov's patch. Fixes bug #562052.

 gedit/Makefile.am                   |    4 +-
 gedit/gedit-encodings-combo-box.c   |  464 +++++++++++++++++++++++++++++++++++
 gedit/gedit-encodings-combo-box.h   |   78 ++++++
 gedit/gedit-encodings-option-menu.c |  418 -------------------------------
 gedit/gedit-encodings-option-menu.h |   78 ------
 gedit/gedit-file-chooser-dialog.c   |   20 +-
 gedit/gedit-io-error-message-area.c |   12 +-
 7 files changed, 560 insertions(+), 514 deletions(-)
---
diff --git a/gedit/Makefile.am b/gedit/Makefile.am
index 295d0bf..0c54c47 100644
--- a/gedit/Makefile.am
+++ b/gedit/Makefile.am
@@ -97,7 +97,7 @@ INST_H_FILES =				\
 	gedit-debug.h			\
 	gedit-document.h 		\
 	gedit-encodings.h		\
-	gedit-encodings-option-menu.h	\
+	gedit-encodings-combo-box.h	\
 	gedit-file-chooser-dialog.h	\
 	gedit-help.h 			\
 	gedit-message-bus.h		\
@@ -157,7 +157,7 @@ libgedit_la_SOURCES = 			\
 	gedit-gio-document-saver.c	\
 	gedit-documents-panel.c		\
 	gedit-encodings.c		\
-	gedit-encodings-option-menu.c	\
+	gedit-encodings-combo-box.c	\
 	gedit-file-chooser-dialog.c	\
 	gedit-help.c			\
 	gedit-history-entry.c		\
diff --git a/gedit/gedit-encodings-combo-box.c b/gedit/gedit-encodings-combo-box.c
new file mode 100644
index 0000000..4e02f63
--- /dev/null
+++ b/gedit/gedit-encodings-combo-box.c
@@ -0,0 +1,464 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * gedit-encodings-combo-box.c
+ * This file is part of gedit
+ *
+ * Copyright (C) 2003-2005 - Paolo Maggi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, 
+ * Boston, MA 02111-1307, USA.
+ */
+ 
+/*
+ * Modified by the gedit Team, 2003-2005. See the AUTHORS file for a 
+ * list of people on the gedit Team.  
+ * See the ChangeLog files for a list of changes. 
+ *
+ * $Id: gedit-encodings-combo-box.c 6112 2008-01-23 08:26:24Z sfre $
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include <gedit/gedit-encodings-combo-box.h>
+#include <gedit/gedit-prefs-manager.h>
+#include <gedit/dialogs/gedit-encodings-dialog.h>
+
+#define ENCODING_KEY "Enconding"
+
+#define GEDIT_ENCODINGS_COMBO_BOX_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object),	\
+							GEDIT_TYPE_ENCODINGS_COMBO_BOX,	\
+							GeditEncodingsComboBoxPrivate))
+
+struct _GeditEncodingsComboBoxPrivate
+{
+	GtkListStore *store;
+	glong changed_id;
+
+	guint activated_item;
+
+	guint save_mode : 1;
+};
+
+enum
+{
+	NAME_COLUMN,
+	ENCODING_COLUMN,
+	ADD_COLUMN,
+	N_COLUMNS
+};
+
+/* Properties */
+enum
+{
+	PROP_0,
+	PROP_SAVE_MODE
+};
+
+
+G_DEFINE_TYPE(GeditEncodingsComboBox, gedit_encodings_combo_box, GTK_TYPE_COMBO_BOX)
+
+static void	  update_menu 		(GeditEncodingsComboBox       *combo_box);
+
+static void
+gedit_encodings_combo_box_set_property (GObject    *object,
+					guint       prop_id,
+					const       GValue *value,
+					GParamSpec *pspec)
+{
+	GeditEncodingsComboBox *combo;
+
+	combo = GEDIT_ENCODINGS_COMBO_BOX (object);
+
+	switch (prop_id)
+	{
+		case PROP_SAVE_MODE:
+			combo->priv->save_mode = g_value_get_boolean (value);
+			break;
+		default:
+			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+			break;
+	}
+}
+
+static void
+gedit_encodings_combo_box_get_property (GObject    *object,
+					guint       prop_id,
+					GValue 	   *value,
+					GParamSpec *pspec)
+{
+	GeditEncodingsComboBox *combo;
+
+	combo = GEDIT_ENCODINGS_COMBO_BOX (object);
+
+	switch (prop_id)
+	{	
+		case PROP_SAVE_MODE:
+			g_value_set_boolean (value, combo->priv->save_mode);
+			break;
+		default:
+			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+			break;
+	}
+}
+
+static void
+gedit_encodings_combo_box_dispose (GObject *object)
+{
+	GeditEncodingsComboBox *combo = GEDIT_ENCODINGS_COMBO_BOX (object);
+
+	if (combo->priv->store != NULL)
+	{
+		g_object_unref (combo->priv->store);
+		combo->priv->store = NULL;
+	}
+
+	G_OBJECT_CLASS (gedit_encodings_combo_box_parent_class)->dispose (object);
+}
+
+static void
+gedit_encodings_combo_box_class_init (GeditEncodingsComboBoxClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+	object_class->set_property = gedit_encodings_combo_box_set_property;
+	object_class->get_property = gedit_encodings_combo_box_get_property;
+	object_class->dispose = gedit_encodings_combo_box_dispose;
+
+	g_object_class_install_property (object_class,
+					 PROP_SAVE_MODE,
+					 g_param_spec_boolean ("save-mode",
+							       "Save Mode",
+							       "Save Mode",
+							       FALSE,
+							       G_PARAM_READWRITE |
+							       G_PARAM_CONSTRUCT |
+							       G_PARAM_STATIC_STRINGS));
+
+	g_type_class_add_private (object_class, sizeof (GeditEncodingsComboBoxPrivate));
+}
+
+static void
+dialog_response_cb (GtkDialog              *dialog,
+                    gint                    response_id,
+                    GeditEncodingsComboBox *menu)
+{
+	if (response_id == GTK_RESPONSE_OK)
+	{
+		update_menu (menu);
+	}
+
+	gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+static void
+add_or_remove (GeditEncodingsComboBox *menu,
+	       GtkTreeModel           *model)
+{
+	GtkTreeIter iter;
+	gboolean add_item = FALSE;
+
+	if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (menu), &iter))
+	{
+		gtk_tree_model_get (model, &iter,
+				    ADD_COLUMN, &add_item,
+				    -1);
+	}
+
+	if (!add_item)
+	{
+		menu->priv->activated_item = gtk_combo_box_get_active (GTK_COMBO_BOX (menu));
+	}
+	else
+	{
+		GtkWidget *dialog;
+
+		GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (menu));
+
+		if (!GTK_WIDGET_TOPLEVEL (toplevel))
+			toplevel = NULL;
+
+		g_signal_handler_block (menu, menu->priv->changed_id);
+		gtk_combo_box_set_active (GTK_COMBO_BOX (menu),
+					  menu->priv->activated_item);
+		g_signal_handler_unblock (menu, menu->priv->changed_id);
+
+		dialog = gedit_encodings_dialog_new();
+
+		if (toplevel != NULL)
+		{
+			GtkWindowGroup *wg;
+
+			gtk_window_set_transient_for (GTK_WINDOW (dialog),
+						      GTK_WINDOW (toplevel));
+
+			wg = GTK_WINDOW (toplevel)->group;
+			if (wg == NULL)
+			{
+				wg = gtk_window_group_new ();
+				gtk_window_group_add_window (wg,
+							     GTK_WINDOW (toplevel));
+			}
+
+			gtk_window_group_add_window (wg,
+						     GTK_WINDOW (dialog));
+		}
+
+		gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+		g_signal_connect (dialog,
+				  "response",
+				  G_CALLBACK (dialog_response_cb),
+				  menu);
+
+		gtk_widget_show (dialog);
+	}
+}
+
+static gboolean
+separator_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
+{
+	gchar *str;
+
+	gtk_tree_model_get (model, iter, NAME_COLUMN, &str, -1);
+
+	if (str != NULL && *str != '\0')
+		return FALSE;
+
+	return TRUE;
+}
+
+static void
+update_menu (GeditEncodingsComboBox *menu)
+{
+	GtkListStore *store;
+	GtkTreeIter iter;
+	GSList *encodings, *l;
+	gchar *str;
+	const GeditEncoding *utf8_encoding;
+	const GeditEncoding *current_encoding;
+
+	store = menu->priv->store;
+
+	/* Unset the previous model */
+	g_signal_handler_block (menu, menu->priv->changed_id);
+	gtk_list_store_clear (store);
+	gtk_combo_box_set_model (GTK_COMBO_BOX (menu),
+				 NULL);
+
+	utf8_encoding = gedit_encoding_get_utf8 ();
+	current_encoding = gedit_encoding_get_current ();
+
+	if (!menu->priv->save_mode)
+	{
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter,
+				    NAME_COLUMN, _("Auto Detected"),
+				    ENCODING_COLUMN, NULL,
+				    ADD_COLUMN, FALSE,
+				    -1);
+
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter,
+				    NAME_COLUMN, "",
+				    ENCODING_COLUMN, NULL,
+				    ADD_COLUMN, FALSE,
+				    -1);
+	}
+
+	if (current_encoding != utf8_encoding)
+		str = gedit_encoding_to_string (utf8_encoding);
+	else
+		str = g_strdup_printf (_("Current Locale (%s)"),
+				       gedit_encoding_get_charset (utf8_encoding));
+
+	gtk_list_store_append (store, &iter);
+	gtk_list_store_set (store, &iter,
+			    NAME_COLUMN, str,
+			    ENCODING_COLUMN, utf8_encoding,
+			    ADD_COLUMN, FALSE,
+			    -1);
+
+	g_free (str);
+
+	if ((utf8_encoding != current_encoding) &&
+	    (current_encoding != NULL))
+	{
+		str = g_strdup_printf (_("Current Locale (%s)"),
+				       gedit_encoding_get_charset (current_encoding));
+
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter,
+				    NAME_COLUMN, str,
+				    ENCODING_COLUMN, current_encoding,
+				    ADD_COLUMN, FALSE,
+				    -1);
+
+		g_free (str);
+	}
+
+	encodings = gedit_prefs_manager_get_shown_in_menu_encodings ();
+
+	for (l = encodings; l != NULL; l = g_slist_next (l))
+	{
+		const GeditEncoding *enc = (const GeditEncoding *)l->data;
+
+		if ((enc != current_encoding) &&
+		    (enc != utf8_encoding) &&
+		    (enc != NULL))
+		{
+			str = gedit_encoding_to_string (enc);
+
+			gtk_list_store_append (store, &iter);
+			gtk_list_store_set (store, &iter,
+					    NAME_COLUMN, str,
+					    ENCODING_COLUMN, enc,
+					    ADD_COLUMN, FALSE,
+					    -1);
+
+			g_free (str);
+		}
+	}
+
+	g_slist_free (encodings);
+
+	if (gedit_prefs_manager_shown_in_menu_encodings_can_set ())
+	{
+		gtk_list_store_append (store, &iter);
+		/* separator */
+		gtk_list_store_set (store, &iter,
+				    NAME_COLUMN, "",
+				    ENCODING_COLUMN, NULL,
+				    ADD_COLUMN, FALSE,
+				    -1);
+
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter,
+				    NAME_COLUMN, _("Add or Remove..."),
+				    ENCODING_COLUMN, NULL,
+				    ADD_COLUMN, TRUE,
+				    -1);
+	}
+
+	/* set the model back */
+	gtk_combo_box_set_model (GTK_COMBO_BOX (menu),
+				 GTK_TREE_MODEL (menu->priv->store));
+	gtk_combo_box_set_active (GTK_COMBO_BOX (menu), 0);
+
+	g_signal_handler_unblock (menu, menu->priv->changed_id);
+}
+
+static void
+gedit_encodings_combo_box_init (GeditEncodingsComboBox *menu)
+{
+	GtkCellRenderer *text_renderer;
+
+	menu->priv = GEDIT_ENCODINGS_COMBO_BOX_GET_PRIVATE (menu);
+
+	menu->priv->store = gtk_list_store_new (N_COLUMNS,
+						G_TYPE_STRING,
+						G_TYPE_POINTER,
+						G_TYPE_BOOLEAN);
+
+	/* Setup up the cells */
+	text_renderer = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_end (GTK_CELL_LAYOUT (menu),
+				  text_renderer, TRUE);
+
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (menu),
+					text_renderer,
+					"text",
+					NAME_COLUMN,
+					NULL);
+
+	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (menu),
+					      separator_func, NULL,
+					      NULL);
+
+	menu->priv->changed_id = g_signal_connect (menu, "changed",
+						   G_CALLBACK (add_or_remove),
+						   menu->priv->store);
+
+	update_menu (menu);
+}
+
+GtkWidget *
+gedit_encodings_combo_box_new (gboolean save_mode)
+{
+	return g_object_new (GEDIT_TYPE_ENCODINGS_COMBO_BOX,
+			     "save_mode", save_mode,
+			     NULL);
+}
+
+const GeditEncoding *
+gedit_encodings_combo_box_get_selected_encoding (GeditEncodingsComboBox *menu)
+{
+	GtkTreeIter iter;
+
+	g_return_val_if_fail (GEDIT_IS_ENCODINGS_COMBO_BOX (menu), NULL);
+
+	if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (menu), &iter))
+	{
+		const GeditEncoding *ret;
+		GtkTreeModel *model;
+
+		model = gtk_combo_box_get_model (GTK_COMBO_BOX (menu));
+
+		gtk_tree_model_get (model, &iter,
+				    ENCODING_COLUMN, &ret,
+				    -1);
+
+		return ret;
+	}
+
+	return NULL;
+}
+
+void
+gedit_encodings_combo_box_set_selected_encoding (GeditEncodingsComboBox *menu,
+						 const GeditEncoding    *encoding)
+{
+	GtkTreeIter iter;
+	GtkTreeModel *model;
+	gboolean b;
+	g_return_if_fail (GEDIT_IS_ENCODINGS_COMBO_BOX (menu));
+	g_return_if_fail (GTK_IS_COMBO_BOX (menu));
+
+	model = gtk_combo_box_get_model (GTK_COMBO_BOX (menu));
+	b = gtk_tree_model_get_iter_first (model, &iter);
+
+	while (b)
+	{
+		const GeditEncoding *enc;
+
+		gtk_tree_model_get (model, &iter,
+				    ENCODING_COLUMN, &enc,
+				    -1);
+
+		if (enc == encoding)
+		{
+			gtk_combo_box_set_active_iter (GTK_COMBO_BOX (menu),
+						       &iter);
+
+			return;
+		}
+
+		b = gtk_tree_model_iter_next (model, &iter);
+	}
+}
diff --git a/gedit/gedit-encodings-combo-box.h b/gedit/gedit-encodings-combo-box.h
new file mode 100644
index 0000000..586f800
--- /dev/null
+++ b/gedit/gedit-encodings-combo-box.h
@@ -0,0 +1,78 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * gedit-encodings-combo-box.h
+ * This file is part of gedit
+ *
+ * Copyright (C) 2003-2005 - Paolo Maggi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, 
+ * Boston, MA 02111-1307, USA.
+ */
+ 
+/*
+ * Modified by the gedit Team, 2003-2005. See the AUTHORS file for a 
+ * list of people on the gedit Team.  
+ * See the ChangeLog files for a list of changes. 
+ *
+ * $Id: gedit-encodings-option-menu.h 4429 2005-12-12 17:28:04Z pborelli $
+ */
+
+#ifndef __GEDIT_ENCODINGS_COMBO_BOX_H__
+#define __GEDIT_ENCODINGS_COMBO_BOX_H__
+
+#include <gtk/gtkoptionmenu.h>
+#include <gedit/gedit-encodings.h>
+
+G_BEGIN_DECLS
+
+#define GEDIT_TYPE_ENCODINGS_COMBO_BOX             (gedit_encodings_combo_box_get_type ())
+#define GEDIT_ENCODINGS_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEDIT_TYPE_ENCODINGS_COMBO_BOX, GeditEncodingsComboBox))
+#define GEDIT_ENCODINGS_COMBO_BOX_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GEDIT_TYPE_ENCODINGS_COMBO_BOX, GeditEncodingsComboBoxClass))
+#define GEDIT_IS_ENCODINGS_COMBO_BOX(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEDIT_TYPE_ENCODINGS_COMBO_BOX))
+#define GEDIT_IS_ENCODINGS_COMBO_BOX_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_TYPE_ENCODINGS_COMBO_BOX))
+#define GEDIT_ENCODINGS_COMBO_BOX_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GEDIT_TYPE_ENCODINGS_COMBO_BOX, GeditEncodingsComboBoxClass))
+
+
+typedef struct _GeditEncodingsComboBox 	GeditEncodingsComboBox;
+typedef struct _GeditEncodingsComboBoxClass 	GeditEncodingsComboBoxClass;
+
+typedef struct _GeditEncodingsComboBoxPrivate	GeditEncodingsComboBoxPrivate;
+
+struct _GeditEncodingsComboBox
+{
+	GtkComboBox			 parent;
+
+	GeditEncodingsComboBoxPrivate	*priv;
+};
+
+struct _GeditEncodingsComboBoxClass
+{
+	GtkComboBoxClass		 parent_class;
+};
+
+GType		     gedit_encodings_combo_box_get_type		(void) G_GNUC_CONST;
+
+/* Constructor */
+GtkWidget 	    *gedit_encodings_combo_box_new 			(gboolean save_mode);
+
+const GeditEncoding *gedit_encodings_combo_box_get_selected_encoding	(GeditEncodingsComboBox *menu);
+void		     gedit_encodings_combo_box_set_selected_encoding	(GeditEncodingsComboBox *menu,
+									 const GeditEncoding      *encoding);
+
+G_END_DECLS
+
+#endif /* __GEDIT_ENCODINGS_COMBO_BOX_H__ */
+
+
diff --git a/gedit/gedit-file-chooser-dialog.c b/gedit/gedit-file-chooser-dialog.c
index 8424e81..755ac0b 100644
--- a/gedit/gedit-file-chooser-dialog.c
+++ b/gedit/gedit-file-chooser-dialog.c
@@ -41,7 +41,7 @@
 #include <gtk/gtk.h>
 
 #include "gedit-file-chooser-dialog.h"
-#include "gedit-encodings-option-menu.h"
+#include "gedit-encodings-combo-box.h"
 #include "gedit-language-manager.h"
 #include "gedit-prefs-manager-app.h"
 #include "gedit-debug.h"
@@ -76,7 +76,7 @@ create_option_menu (GeditFileChooserDialog *dialog)
 	hbox = gtk_hbox_new (FALSE, 6);
 
 	label = gtk_label_new_with_mnemonic (_("C_haracter Coding:"));
-	menu = gedit_encodings_option_menu_new (
+	menu = gedit_encodings_combo_box_new (
 		gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog)) == GTK_FILE_CHOOSER_ACTION_SAVE);
 
 	gtk_label_set_mnemonic_widget (GTK_LABEL (label), menu);
@@ -271,8 +271,8 @@ gedit_file_chooser_dialog_new_valist (const gchar          *title,
 			  NULL);
 
 	if (encoding != NULL)
-		gedit_encodings_option_menu_set_selected_encoding (
-				GEDIT_ENCODINGS_OPTION_MENU (GEDIT_FILE_CHOOSER_DIALOG (result)->priv->option_menu),
+		gedit_encodings_combo_box_set_selected_encoding (
+				GEDIT_ENCODINGS_COMBO_BOX (GEDIT_FILE_CHOOSER_DIALOG (result)->priv->option_menu),
 				encoding);
 
 	active_filter = gedit_prefs_manager_get_active_file_filter ();
@@ -370,10 +370,10 @@ gedit_file_chooser_dialog_set_encoding (GeditFileChooserDialog *dialog,
 					const GeditEncoding    *encoding)
 {
 	g_return_if_fail (GEDIT_IS_FILE_CHOOSER_DIALOG (dialog));
-	g_return_if_fail (GEDIT_IS_ENCODINGS_OPTION_MENU (dialog->priv->option_menu));
+	g_return_if_fail (GEDIT_IS_ENCODINGS_COMBO_BOX (dialog->priv->option_menu));
 
-	gedit_encodings_option_menu_set_selected_encoding (
-				GEDIT_ENCODINGS_OPTION_MENU (dialog->priv->option_menu),
+	gedit_encodings_combo_box_set_selected_encoding (
+				GEDIT_ENCODINGS_COMBO_BOX (dialog->priv->option_menu),
 				encoding);
 }
 
@@ -381,10 +381,10 @@ const GeditEncoding *
 gedit_file_chooser_dialog_get_encoding (GeditFileChooserDialog *dialog)
 {
 	g_return_val_if_fail (GEDIT_IS_FILE_CHOOSER_DIALOG (dialog), NULL);
-	g_return_val_if_fail (GEDIT_IS_ENCODINGS_OPTION_MENU (dialog->priv->option_menu), NULL);
+	g_return_val_if_fail (GEDIT_IS_ENCODINGS_COMBO_BOX (dialog->priv->option_menu), NULL);
 	g_return_val_if_fail ((gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog)) == GTK_FILE_CHOOSER_ACTION_OPEN ||
 			       gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog)) == GTK_FILE_CHOOSER_ACTION_SAVE), NULL);
 
-	return gedit_encodings_option_menu_get_selected_encoding (
-				GEDIT_ENCODINGS_OPTION_MENU (dialog->priv->option_menu));
+	return gedit_encodings_combo_box_get_selected_encoding (
+				GEDIT_ENCODINGS_COMBO_BOX (dialog->priv->option_menu));
 }
diff --git a/gedit/gedit-io-error-message-area.c b/gedit/gedit-io-error-message-area.c
index f1b0b77..2204d44 100644
--- a/gedit/gedit-io-error-message-area.c
+++ b/gedit/gedit-io-error-message-area.c
@@ -47,7 +47,7 @@
 #include "gedit-document.h"
 #include "gedit-io-error-message-area.h"
 #include "gedit-prefs-manager.h"
-#include <gedit/gedit-encodings-option-menu.h>
+#include <gedit/gedit-encodings-combo-box.h>
 
 #if !GTK_CHECK_VERSION (2, 17, 1)
 #include "gedit-message-area.h"
@@ -448,7 +448,7 @@ gedit_unrecoverable_reverting_error_message_area_new (const gchar  *uri,
 }
 
 static void
-create_option_menu (GtkWidget *message_area, GtkWidget *vbox)
+create_combo_box (GtkWidget *message_area, GtkWidget *vbox)
 {
 	GtkWidget *hbox;
 	GtkWidget *label;
@@ -462,7 +462,7 @@ create_option_menu (GtkWidget *message_area, GtkWidget *vbox)
 	label = gtk_label_new_with_mnemonic (label_markup);
 	g_free (label_markup);
 	gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
-	menu = gedit_encodings_option_menu_new (TRUE);
+	menu = gedit_encodings_combo_box_new (TRUE);
 	g_object_set_data (G_OBJECT (message_area), 
 			   "gedit-message-area-encoding-menu", 
 			   menu);
@@ -587,7 +587,7 @@ create_conversion_error_message_area (const gchar *primary_text,
 		gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5);
 	}
 
-	create_option_menu (message_area, vbox);
+	create_combo_box (message_area, vbox);
 	gtk_widget_show_all (hbox_content);
 	set_contents (message_area, hbox_content);
 
@@ -771,8 +771,8 @@ gedit_conversion_error_message_area_get_encoding (GtkWidget *message_area)
 				  "gedit-message-area-encoding-menu");	
 	g_return_val_if_fail (menu, NULL);
 	
-	return gedit_encodings_option_menu_get_selected_encoding
-					(GEDIT_ENCODINGS_OPTION_MENU (menu));
+	return gedit_encodings_combo_box_get_selected_encoding
+					(GEDIT_ENCODINGS_COMBO_BOX (menu));
 }
 
 GtkWidget *



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