diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2008-05-09 02:11:40 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2008-05-09 02:11:40 +0800 |
commit | 116ed5dcc7bc07fc9a2e78aef4231bfe25fa9d0a (patch) | |
tree | 49a7516e812c322167681a65bfdca0285b336733 /plugins | |
parent | 3986fb032adb5b40ae86624f209524b3273d0148 (diff) | |
download | gsoc2013-evolution-116ed5dcc7bc07fc9a2e78aef4231bfe25fa9d0a.tar.gz gsoc2013-evolution-116ed5dcc7bc07fc9a2e78aef4231bfe25fa9d0a.tar.zst gsoc2013-evolution-116ed5dcc7bc07fc9a2e78aef4231bfe25fa9d0a.zip |
** Fixes bug #525241 (EPluginUI)
2008-05-08 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #525241 (EPluginUI)
* e-util/Makefile.am:
Add e-plugin-ui.[ch].
* e-util/e-plugin.h (EPluginClass):
Add a "get_symbol" method for extracting arbitrary symbols
from an EPlugin. Implementation of the method is optional.
* e-util/e-plugin.c (e_plugin_get_symbol):
New function invokes the new "get_symbol" EPlugin method.
* e-util/e-plugin.c (epl_get_symbol):
New function implements the new "get_symbol" EPlugin method.
It extracts the given symbol name from the GModule.
* e-util/e-plugin-ui.[ch]:
New EPluginHook subclass that allows plugins to extend menus,
toolbars, and popups that are managed by GtkUIManager instead
of BonoboUI. Should eventually replace EMenu/EPopup.
* shell/main.c (main): Register the EPluginUIHook type.
* composer/e-msg-composer.c (msg_composer_destroy),
(msg_composer_init): Rip out the EMenu logic.
* composer/e-msg-composer.c (msg_composer_init):
Register the GtkUIManager with EPluginUI.
* plugins/face/Makefile.am:
* plugins/face/org-gnome-face-ui.xml:
Remove org-gnome-face-ui.xml (obsolete).
* plugins/face/face.c (e_plugin_ui_init):
Initialization callback for EPluginUI. Adds a "face" action to
the EMsgComposer instance's "composer" action group.
* plugins/face/org-gnome-face.eplug.xml:
Replace the "bonobomenu" hook definition with a new one for
EPluginUI. Include the UI definition inline.
svn path=/trunk/; revision=35485
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/face/ChangeLog | 16 | ||||
-rw-r--r-- | plugins/face/Makefile.am | 4 | ||||
-rw-r--r-- | plugins/face/face.c | 36 | ||||
-rw-r--r-- | plugins/face/org-gnome-face-ui.xml | 12 | ||||
-rw-r--r-- | plugins/face/org-gnome-face.eplug.xml | 32 |
5 files changed, 63 insertions, 37 deletions
diff --git a/plugins/face/ChangeLog b/plugins/face/ChangeLog index 86a2af2140..c300752828 100644 --- a/plugins/face/ChangeLog +++ b/plugins/face/ChangeLog @@ -1,3 +1,19 @@ +2008-05-08 Matthew Barnes <mbarnes@redhat.com> + + ** Fixes part of bug #525241 (EPluginUI) + + * Makefile.am: + * org-gnome-face-ui.xml: + Remove org-gnome-face-ui.xml (obsolete). + + * face.c (e_plugin_ui_init): + Initialization callback for EPluginUI. Adds a "face" action to + the EMsgComposer instance's "composer" action group. + + * org-gnome-face.eplug.xml: + Replace the "bonobomenu" hook definition with a new one for + EPluginUI. Include the UI definition inline. + 2008-03-11 Matthew Barnes <mbarnes@redhat.com> ** Fixes part of bug #513951 diff --git a/plugins/face/Makefile.am b/plugins/face/Makefile.am index ec53eee1c2..8a44c94815 100644 --- a/plugins/face/Makefile.am +++ b/plugins/face/Makefile.am @@ -13,8 +13,7 @@ INCLUDES = -I. \ @EVO_PLUGIN_RULE@ plugin_DATA = \ - org-gnome-face.eplug \ - org-gnome-face-ui.xml + org-gnome-face.eplug plugin_LTLIBRARIES = liborg-gnome-face.la @@ -36,7 +35,6 @@ errordir = $(privdatadir)/errors EXTRA_DIST = \ org-gnome-face.eplug.xml \ - org-gnome-face-ui.xml \ $(error_DATA) BUILT_SOURCES = \ diff --git a/plugins/face/face.c b/plugins/face/face.c index 45851bee18..f431bc50f4 100644 --- a/plugins/face/face.c +++ b/plugins/face/face.c @@ -33,16 +33,16 @@ #define d(x) x -void org_gnome_composer_face (EPlugin * ep, EMMenuTargetWidget * target); -int e_plugin_lib_configure (EPlugin * ep); +gboolean e_plugin_ui_init (GtkUIManager *manager, + EMsgComposer *composer); -void org_gnome_composer_face (EPlugin * ep, EMMenuTargetWidget * t) +static void +action_face_cb (GtkAction *action, + EMsgComposer *composer) { - EMsgComposer *composer; gchar *filename, *file_contents; GError *error = NULL; - composer = (EMsgComposer *) t->target.widget; filename = g_build_filename (e_get_user_data_dir (), "faces", NULL); g_file_get_contents (filename, &file_contents, NULL, &error); @@ -117,3 +117,29 @@ void org_gnome_composer_face (EPlugin * ep, EMMenuTargetWidget * t) } e_msg_composer_modify_header (composer, "Face", file_contents); } + +static GtkActionEntry entries[] = { + + { "face", + NULL, + N_("_Face"), + NULL, + NULL, + G_CALLBACK (action_face_cb) } +}; + +gboolean +e_plugin_ui_init (GtkUIManager *manager, + EMsgComposer *composer) +{ + GtkhtmlEditor *editor; + + editor = GTKHTML_EDITOR (composer); + + /* Add actions to the "composer" action group. */ + gtk_action_group_add_actions ( + gtkhtml_editor_get_action_group (editor, "composer"), + entries, G_N_ELEMENTS (entries), composer); + + return TRUE; +} diff --git a/plugins/face/org-gnome-face-ui.xml b/plugins/face/org-gnome-face-ui.xml index 2bf2a75c65..e69de29bb2 100644 --- a/plugins/face/org-gnome-face-ui.xml +++ b/plugins/face/org-gnome-face-ui.xml @@ -1,12 +0,0 @@ -<Root> - <commands> - <cmd name="Face" _label="_Face"/> - </commands> - <menu> - <submenu name="Insert"> - <placeholder name="Component"> - <menuitem name="Face" verb="" /> - </placeholder> - </submenu> - </menu> -</Root> diff --git a/plugins/face/org-gnome-face.eplug.xml b/plugins/face/org-gnome-face.eplug.xml index cc56aac359..e84b93f809 100644 --- a/plugins/face/org-gnome-face.eplug.xml +++ b/plugins/face/org-gnome-face.eplug.xml @@ -1,22 +1,20 @@ <?xml version="1.0"?> <e-plugin-list> - <e-plugin id="org.gnome.evolution.face" type="shlib" _name="Face" - location="@PLUGINDIR@/liborg-gnome-face@SOEXT@"> + <e-plugin id="org.gnome.evolution.face" type="shlib" _name="Face" location="@PLUGINDIR@/liborg-gnome-face@SOEXT@"> - <author name="Sankar P" email="psankar@novell.com"/> - <_description>Attach Face header to outgoing messages. First time the user needs to configure a 48*48 png image. It is base64 encoded and stored in ~/.evolution/faces This will be used in messages that are sent further.</_description> + <author name="Sankar P" email="psankar@novell.com"/> + <_description>Attach Face header to outgoing messages. First time the user needs to configure a 48*48 png image. It is base64 encoded and stored in ~/.evolution/faces This will be used in messages that are sent further.</_description> - <hook class="org.gnome.evolution.mail.bonobomenu:1.0"> - <menu id="org.gnome.evolution.mail.composer" target="widget"> - <ui file="@PLUGINDIR@/org-gnome-face-ui.xml"/> - <item - type="item" - verb="Face" - path="/commands/Face" - activate="org_gnome_composer_face" - enable="one" - /> - </menu> - </hook> - </e-plugin> + <hook class="org.gnome.evolution.ui:1.0"> + <ui-manager id="org.gnome.evolution.composer"> + <menubar name='main-menu'> + <menu action='insert-menu'> + <placeholder name="insert-menu-top"> + <menuitem action="face"/> + </placeholder> + </menu> + </menubar> + </ui-manager> + </hook> + </e-plugin> </e-plugin-list> |