diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-03-31 21:58:52 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-04-01 00:10:54 +0800 |
commit | 0494d4c3c67403293c496d0ab6ce498b954a8a06 (patch) | |
tree | 845fb73df494c60b39132fc6bbb1c1358f46ba54 /e-util | |
parent | 0125093ff7f0883fd8b97176a18cac5e798a37b9 (diff) | |
download | gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar.gz gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar.bz2 gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar.lz gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar.xz gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.tar.zst gsoc2013-evolution-0494d4c3c67403293c496d0ab6ce498b954a8a06.zip |
Remove EUIManager.
No longer needed. Use GtkUIManager directly.
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/Makefile.am | 2 | ||||
-rw-r--r-- | e-util/e-attachment-view.c | 3 | ||||
-rw-r--r-- | e-util/e-plugin-ui.c | 10 | ||||
-rw-r--r-- | e-util/e-ui-manager.c | 323 | ||||
-rw-r--r-- | e-util/e-ui-manager.h | 78 | ||||
-rw-r--r-- | e-util/e-util.h | 1 |
6 files changed, 3 insertions, 414 deletions
diff --git a/e-util/Makefile.am b/e-util/Makefile.am index 9fa1877396..5e974f20bc 100644 --- a/e-util/Makefile.am +++ b/e-util/Makefile.am @@ -294,7 +294,6 @@ eutilinclude_HEADERS = \ e-tree-sorted.h \ e-tree-table-adapter.h \ e-tree.h \ - e-ui-manager.h \ e-unicode.h \ e-url-entry.h \ e-util-enums.h \ @@ -539,7 +538,6 @@ libeutil_la_SOURCES = \ e-tree-sorted.c \ e-tree-table-adapter.c \ e-tree.c \ - e-ui-manager.c \ e-unicode.c \ e-url-entry.c \ e-util-enumtypes.c \ diff --git a/e-util/e-attachment-view.c b/e-util/e-attachment-view.c index b1abda1e47..d078bd4b26 100644 --- a/e-util/e-attachment-view.c +++ b/e-util/e-attachment-view.c @@ -33,7 +33,6 @@ #include "e-attachment-handler-sendto.h" #include "e-misc-utils.h" #include "e-selection.h" -#include "e-ui-manager.h" enum { UPDATE_ACTIONS, @@ -882,7 +881,7 @@ e_attachment_view_init (EAttachmentView *view) priv = e_attachment_view_get_private (view); - ui_manager = e_ui_manager_new (); + ui_manager = gtk_ui_manager_new (); priv->merge_id = gtk_ui_manager_new_merge_id (ui_manager); priv->ui_manager = ui_manager; diff --git a/e-util/e-plugin-ui.c b/e-util/e-plugin-ui.c index 3ef863c2a3..a8d0368e3e 100644 --- a/e-util/e-plugin-ui.c +++ b/e-util/e-plugin-ui.c @@ -21,8 +21,6 @@ #include "e-plugin-ui.h" -#include "e-ui-manager.h" - #include <string.h> #define E_PLUGIN_UI_HOOK_GET_PRIVATE(obj) \ @@ -247,12 +245,8 @@ plugin_ui_hook_merge_ui (EPluginUIHook *hook, ui_definition = g_hash_table_lookup (hash_table, id); g_return_val_if_fail (ui_definition != NULL, 0); - if (E_IS_UI_MANAGER (ui_manager)) - merge_id = e_ui_manager_add_ui_from_string ( - E_UI_MANAGER (ui_manager), ui_definition, &error); - else - merge_id = gtk_ui_manager_add_ui_from_string ( - ui_manager, ui_definition, -1, &error); + merge_id = gtk_ui_manager_add_ui_from_string ( + ui_manager, ui_definition, -1, &error); if (error != NULL) { g_warning ("%s", error->message); diff --git a/e-util/e-ui-manager.c b/e-util/e-ui-manager.c deleted file mode 100644 index 4661cbc7cb..0000000000 --- a/e-util/e-ui-manager.c +++ /dev/null @@ -1,323 +0,0 @@ -/* - * e-ui-manager.c - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - */ - -/** - * SECTION: e-ui-manager - * @short_description: construct menus and toolbars from a UI definition - * @include: e-util/e-util.h - * - * This is a #GtkUIManager with support for Evolution's "express" mode, - * which influences the parsing of UI definitions. - **/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-ui-manager.h" -#include "e-util-private.h" - -#include <string.h> - -#define E_UI_MANAGER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_UI_MANAGER, EUIManagerPrivate)) - -/* - * --- NOTE TO SELF --- - * - * While creating this class I was tempted to add an "id" property which - * EPluginUI could extract from a given EUIManager instead of having the - * public EPluginUI functions take a separate "id" argument. Seemed like - * a nice cleanup until I remembered that an EUIManager instance can have - * multiple IDs ("aliases"), as in the case of EShellWindow's UI manager. - * So the UI Manager ID and the instance still need to be kept separate. - * - * Mentioning it here in case I forget why I didn't go through with it. - */ - -struct _EUIManagerPrivate { - guint express_mode : 1; -}; - -enum { - PROP_0, - PROP_EXPRESS_MODE -}; - -G_DEFINE_TYPE ( - EUIManager, - e_ui_manager, - GTK_TYPE_UI_MANAGER) - -static void -ui_manager_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_EXPRESS_MODE: - e_ui_manager_set_express_mode ( - E_UI_MANAGER (object), - g_value_get_boolean (value)); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static void -ui_manager_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_EXPRESS_MODE: - g_value_set_boolean ( - value, e_ui_manager_get_express_mode ( - E_UI_MANAGER (object))); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static gchar * -ui_manager_filter_ui (EUIManager *ui_manager, - const gchar *ui_definition) -{ - gchar **lines; - gchar *filtered; - gboolean express_mode; - gboolean include = TRUE; - gint ii; - - express_mode = e_ui_manager_get_express_mode (ui_manager); - - /* - * Very simple C style pre-processing in-line in the XML: - * #if [!]EXPRESS\n ... \n#endif\n - */ - lines = g_strsplit (ui_definition, "\n", -1); - - for (ii = 0; lines[ii] != NULL; ii++) { - if (lines[ii][0] == '#') { - if (!strncmp (lines[ii], "#if ", 4)) { - gboolean not_express = lines[ii][4] == '!'; - include = express_mode ^ not_express; - lines[ii][0] = '\0'; - } else if (!strncmp (lines[ii], "#endif", 6)) { - lines[ii][0] = '\0'; - include = TRUE; - } - } - if (!include) - lines[ii][0] = '\0'; - } - - filtered = g_strjoinv ("\n", lines); - - g_strfreev (lines); - - return filtered; -} - -static void -e_ui_manager_class_init (EUIManagerClass *class) -{ - GObjectClass *object_class; - - g_type_class_add_private (class, sizeof (EUIManagerPrivate)); - - object_class = G_OBJECT_CLASS (class); - object_class->set_property = ui_manager_set_property; - object_class->get_property = ui_manager_get_property; - - class->filter_ui = ui_manager_filter_ui; - - g_object_class_install_property ( - object_class, - PROP_EXPRESS_MODE, - g_param_spec_boolean ( - "express-mode", - "Express Mode", - NULL, - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT)); -} - -static void -e_ui_manager_init (EUIManager *ui_manager) -{ - ui_manager->priv = E_UI_MANAGER_GET_PRIVATE (ui_manager); -} - -/** - * e_ui_manager_new: - * - * Returns a new #EUIManager instance. - * - * Returns: a new #EUIManager instance - **/ -GtkUIManager * -e_ui_manager_new (void) -{ - return g_object_new (E_TYPE_UI_MANAGER, NULL); -} - -/** - * e_ui_manager_get_express_mode: - * @ui_manager: an #EUIManager - * - * Returns the "express mode" flag in @ui_manager. - * - * Returns: %TRUE if @ui_manager is set to express mode - **/ -gboolean -e_ui_manager_get_express_mode (EUIManager *ui_manager) -{ - g_return_val_if_fail (E_IS_UI_MANAGER (ui_manager), FALSE); - - return ui_manager->priv->express_mode; -} - -/** - * e_ui_manager_set_express_mode: - * @ui_manager: an #EUIManager - * @express_mode: express mode flag - * - * Sets the "express mode" flag in @ui_manager, which influences how - * UI definitions are loaded. - **/ -void -e_ui_manager_set_express_mode (EUIManager *ui_manager, - gboolean express_mode) -{ - g_return_if_fail (E_IS_UI_MANAGER (ui_manager)); - - if (ui_manager->priv->express_mode == express_mode) - return; - - ui_manager->priv->express_mode = express_mode; - - g_object_notify (G_OBJECT (ui_manager), "express-mode"); -} - -/** - * e_ui_manager_add_ui_from_file: - * @ui_manager: an #EUIManager - * @basename: basename of the UI definition file - * - * Loads a UI definition into @ui_manager from Evolution's UI directory. - * If the EUIManager:express-mode property is %TRUE, a simplified version - * of the UI may be presented. - * - * Failure here is fatal, since the application can't function without - * its core UI definitions. - * - * Returns: The merge ID for the merged UI. The merge ID can be used to - * unmerge the UI with gtk_ui_manager_remove_ui(). - **/ -guint -e_ui_manager_add_ui_from_file (EUIManager *ui_manager, - const gchar *basename) -{ - EUIManagerClass *class; - gchar *filename; - gchar *contents; - guint merge_id = 0; - GError *error = NULL; - - g_return_val_if_fail (E_IS_UI_MANAGER (ui_manager), 0); - g_return_val_if_fail (basename != NULL, 0); - - class = E_UI_MANAGER_GET_CLASS (ui_manager); - g_return_val_if_fail (class->filter_ui != NULL, 0); - - filename = g_build_filename (EVOLUTION_UIDIR, basename, NULL); - - if (g_file_get_contents (filename, &contents, NULL, &error)) { - gchar *filtered; - - /* We could call e_ui_manager_add_ui_from_string() here, - * but if an error occurs we'd like to include the file - * name in the error message. */ - - filtered = class->filter_ui (ui_manager, contents); - - merge_id = gtk_ui_manager_add_ui_from_string ( - GTK_UI_MANAGER (ui_manager), filtered, -1, &error); - - g_free (filtered); - g_free (contents); - } - - g_free (filename); - - if (error != NULL) { - g_error ("%s: %s", basename, error->message); - g_assert_not_reached (); - } - - return merge_id; -} - -/** - * e_ui_manager_add_ui_from_string: - * @ui_manager: an #EUIManager - * @ui_definition: the UI XML in NULL terminated string form - * @error: return location for a #GError, or %NULL - * - * Loads the given UI definition into @ui_manager. If the - * EUIManager:express-mode property is %TRUE, a simplified version of - * the UI may be presented. - * - * Failure here is <emphasis>not</emphasis> fatal, since the function is - * primarily used to load UI definitions for plugins, which we can get by - * without. - * - * Returns: The merge ID for the merged UI. The merge ID can be used to - * unmerge the UI with gtk_ui_manager_remove_ui(). - **/ -guint -e_ui_manager_add_ui_from_string (EUIManager *ui_manager, - const gchar *ui_definition, - GError **error) -{ - EUIManagerClass *class; - gchar *filtered; - guint merge_id; - - g_return_val_if_fail (E_IS_UI_MANAGER (ui_manager), 0); - g_return_val_if_fail (ui_definition != NULL, 0); - - class = E_UI_MANAGER_GET_CLASS (ui_manager); - g_return_val_if_fail (class->filter_ui != NULL, 0); - - filtered = class->filter_ui (ui_manager, ui_definition); - - merge_id = gtk_ui_manager_add_ui_from_string ( - GTK_UI_MANAGER (ui_manager), filtered, -1, error); - - g_free (filtered); - - return merge_id; -} diff --git a/e-util/e-ui-manager.h b/e-util/e-ui-manager.h deleted file mode 100644 index 65948d1678..0000000000 --- a/e-util/e-ui-manager.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * e-ui-manager.h - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - */ - -#if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION) -#error "Only <e-util/e-util.h> should be included directly." -#endif - -#ifndef E_UI_MANAGER_H -#define E_UI_MANAGER_H - -#include <gtk/gtk.h> - -/* Standard GObject macros */ -#define E_TYPE_UI_MANAGER \ - (e_ui_manager_get_type ()) -#define E_UI_MANAGER(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST \ - ((obj), E_TYPE_UI_MANAGER, EUIManager)) -#define E_UI_MANAGER_CLASS(cls) \ - (G_TYPE_CHECK_CLASS_CAST \ - ((cls), E_TYPE_UI_MANAGER, EUIManagerClass)) -#define E_IS_UI_MANAGER(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE \ - ((obj), E_TYPE_UI_MANAGER)) -#define E_IS_UI_MANAGER_CLASS(cls) \ - (G_TYPE_CHECK_CLASS_TYPE \ - ((cls), E_TYPE_UI_MANAGER)) -#define E_UI_MANAGER_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS \ - ((obj), E_TYPE_UI_MANAGER, EUIManagerClass)) - -G_BEGIN_DECLS - -typedef struct _EUIManager EUIManager; -typedef struct _EUIManagerClass EUIManagerClass; -typedef struct _EUIManagerPrivate EUIManagerPrivate; - -struct _EUIManager { - GtkUIManager parent; - EUIManagerPrivate *priv; -}; - -struct _EUIManagerClass { - GtkUIManagerClass parent_class; - - gchar * (*filter_ui) (EUIManager *ui_manager, - const gchar *ui_definition); -}; - -GType e_ui_manager_get_type (void) G_GNUC_CONST; -GtkUIManager * e_ui_manager_new (void); -gboolean e_ui_manager_get_express_mode (EUIManager *ui_manager); -void e_ui_manager_set_express_mode (EUIManager *ui_manager, - gboolean express_mode); -guint e_ui_manager_add_ui_from_file (EUIManager *ui_manager, - const gchar *basename); -guint e_ui_manager_add_ui_from_string (EUIManager *ui_manager, - const gchar *ui_definition, - GError **error); - -G_END_DECLS - -#endif /* E_UI_MANAGER_H */ diff --git a/e-util/e-util.h b/e-util/e-util.h index 17c4e60d14..d60a6f0f62 100644 --- a/e-util/e-util.h +++ b/e-util/e-util.h @@ -215,7 +215,6 @@ #include <e-util/e-tree-sorted.h> #include <e-util/e-tree-table-adapter.h> #include <e-util/e-tree.h> -#include <e-util/e-ui-manager.h> #include <e-util/e-unicode.h> #include <e-util/e-url-entry.h> #include <e-util/e-util-enums.h> |