[evolution] Cleanup up templates using EPluginUI callback feature.



commit fddcc93ac6158fc2ac3ede1c0020ff97e7bd561d
Author: Matthew Barnes <mbarnes redhat com>
Date:   Tue Sep 1 15:51:00 2009 -0400

    Cleanup up templates using EPluginUI callback feature.

 plugins/templates/org-gnome-templates.eplug.xml |    6 ++-
 plugins/templates/templates.c                   |   37 ++++++----------------
 2 files changed, 14 insertions(+), 29 deletions(-)
---
diff --git a/plugins/templates/org-gnome-templates.eplug.xml b/plugins/templates/org-gnome-templates.eplug.xml
index b4b8a81..7c19a6e 100644
--- a/plugins/templates/org-gnome-templates.eplug.xml
+++ b/plugins/templates/org-gnome-templates.eplug.xml
@@ -10,8 +10,10 @@
         <author name="Diego Escalante Urrelo" email="diegoe gnome org"/>
 
         <hook class="org.gnome.evolution.ui:1.0">
-          <ui-manager id="org.gnome.evolution.shell"/>
-          <ui-manager id="org.gnome.evolution.composer">
+          <ui-manager id="org.gnome.evolution.shell"
+                      callback="init_shell_actions"/>
+          <ui-manager id="org.gnome.evolution.composer"
+                      callback="init_composer_actions">
             <menubar name='main-menu'>
               <placeholder name='pre-edit-menu'>
                 <menu action='file-menu'>
diff --git a/plugins/templates/templates.c b/plugins/templates/templates.c
index fa693dc..f683269 100644
--- a/plugins/templates/templates.c
+++ b/plugins/templates/templates.c
@@ -68,10 +68,14 @@ enum {
 	CLUE_N_COLUMNS
 };
 
-GtkWidget *e_plugin_lib_get_configure_widget	(EPlugin *epl);
-
-gboolean e_plugin_ui_init	(GtkUIManager *ui_manager, GObject *object);
-gint e_plugin_lib_enable	(EPlugin *plugin, gboolean enabled);
+GtkWidget *	e_plugin_lib_get_configure_widget
+						(EPlugin *plugin);
+gboolean	init_composer_actions		(GtkUIManager *ui_manager,
+						 EMsgComposer *composer);
+gboolean	init_shell_actions		(GtkUIManager *ui_manager,
+						 EShellWindow *shell_window);
+gint		e_plugin_lib_enable		(EPlugin *plugin,
+						 gboolean enabled);
 
 /* Thanks to attachment reminder plugin for this*/
 static void commit_changes (UIData *ui);
@@ -764,7 +768,7 @@ exit:
 	em_utils_uids_free (uids);
 }
 
-static gboolean
+gboolean
 init_composer_actions (GtkUIManager *ui_manager,
                        EMsgComposer *composer)
 {
@@ -780,7 +784,7 @@ init_composer_actions (GtkUIManager *ui_manager,
 	return TRUE;
 }
 
-static gboolean
+gboolean
 init_shell_actions (GtkUIManager *ui_manager,
                     EShellWindow *shell_window)
 {
@@ -807,27 +811,6 @@ init_shell_actions (GtkUIManager *ui_manager,
 	return TRUE;
 }
 
-gboolean
-e_plugin_ui_init (GtkUIManager *ui_manager,
-                  GObject *object)
-{
-	/* XXX This is a scenario I hadn't considered when designing
-	 *     EPluginUI: two different UI manager IDs with different
-	 *     closures sharing the same plugin entry point.  We know
-	 *     the closures are both GObjects so we query the type.
-	 *     Awkward, but it should work for now. */
-
-	if (E_IS_MSG_COMPOSER (object))
-		return init_composer_actions (
-			ui_manager, E_MSG_COMPOSER (object));
-
-	if (E_IS_SHELL_WINDOW (object))
-		return init_shell_actions (
-			ui_manager, E_SHELL_WINDOW (object));
-
-	return FALSE;
-}
-
 gint
 e_plugin_lib_enable (EPlugin *plugin,
                      gboolean enabled)



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