diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-08-29 08:21:54 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-30 05:23:20 +0800 |
commit | 32f545cdf031ebe3718791f18e8fb6b6141fd081 (patch) | |
tree | 980723161c32da855ca91b135318d7fa67dc18c7 /modules/plugin-python/example | |
parent | e8382099228d46ebef684c5384bab6ec710283ce (diff) | |
download | gsoc2013-evolution-32f545cdf031ebe3718791f18e8fb6b6141fd081.tar.gz gsoc2013-evolution-32f545cdf031ebe3718791f18e8fb6b6141fd081.tar.zst gsoc2013-evolution-32f545cdf031ebe3718791f18e8fb6b6141fd081.zip |
Simplify EPlugin loading at startup.
- Require all EPlugin and EPluginHook subtypes be registered before
loading plugins. This drastically simplifies the EPlugin/EPluginHook
negotiation.
- Turn most EPluginHook subtypes into GTypeModules and register their
types from an e_module_load() function (does not include shell hooks).
- Convert EPluginLib and the Mono and Python bindings to GTypeModules
and register their types from an e_module_load() function, and kill
EPluginTypeHook.
Diffstat (limited to 'modules/plugin-python/example')
4 files changed, 70 insertions, 0 deletions
diff --git a/modules/plugin-python/example/Makefile.am b/modules/plugin-python/example/Makefile.am new file mode 100644 index 0000000000..cc14dc94d9 --- /dev/null +++ b/modules/plugin-python/example/Makefile.am @@ -0,0 +1,29 @@ +AM_CPPFLAGS = \ + -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ + -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" + +@EVO_PLUGIN_RULE@ + +plugin_DATA = \ + hello_python.py \ + org-gnome-hello-python-ui.xml \ + org-gnome-hello-python.eplug + +liborg_gnome_py_plug_test_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) + +errordir = $(privdatadir)/errors + +BUILDME = org-gnome-hello-python.eplug \ +$(error_i18n) + +BUILT_SOURCES = \ + $(BUILDME) + +EXTRA_DIST = \ + hello_python.py \ + org-gnome-hello-python-ui.xml \ + org-gnome-hello-python.eplug.xml + +CLEANFILES = $(BUILT_SOURCES) + +-include $(top_srcdir)/git.mk diff --git a/modules/plugin-python/example/hello_python.py b/modules/plugin-python/example/hello_python.py new file mode 100644 index 0000000000..16dc2a12f8 --- /dev/null +++ b/modules/plugin-python/example/hello_python.py @@ -0,0 +1,5 @@ +'''hello_python.py - Python source designed to ''' +'''demonstrate the use of python Eplugins''' + +def say_hello(): + print 'Hello ! From python' diff --git a/modules/plugin-python/example/org-gnome-hello-python-ui.xml b/modules/plugin-python/example/org-gnome-hello-python-ui.xml new file mode 100644 index 0000000000..074960e84d --- /dev/null +++ b/modules/plugin-python/example/org-gnome-hello-python-ui.xml @@ -0,0 +1,16 @@ +<Root> + <commands> + <cmd name="HelloPy" _label="Hello Python" + _tip="Python Plugin Loader tests" + /> + </commands> + + <menu> + <placeholder name="MessagePlaceholder"> + <submenu name="Message"> + <separator f="" name="sep"/> + <menuitem name="HelloPy" verb=""/> + </submenu> + </placeholder> + </menu> +</Root> diff --git a/modules/plugin-python/example/org-gnome-hello-python.eplug.xml b/modules/plugin-python/example/org-gnome-hello-python.eplug.xml new file mode 100644 index 0000000000..8f77d5ba01 --- /dev/null +++ b/modules/plugin-python/example/org-gnome-hello-python.eplug.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<e-plugin-list> + <e-plugin id="org.gnome.evolution.hello_python" type="python" _name="Python Test Plugin" location="@PLUGINDIR@" module_name="hello_python"> + + <author name="Johnny Jacob" email="jjohnny@novell.com"/> + + <_description> + Test Plugin for Python EPlugin loader. + </_description> + + <hook class="org.gnome.evolution.mail.bonobomenu:1.0"> + <menu id="org.gnome.evolution.mail.browser" target="select"> + <!-- the path to the bonobo menu description. Any UI items on Evolution should come here --> + <ui file="@PLUGINDIR@/org-gnome-hello-python-ui.xml"/> + <item type="item" verb="HelloPy" path="/commands/HelloPy" enable="one" activate="say_hello"/> + </menu> + </hook> + + </e-plugin> +</e-plugin-list> |