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.
This commit is contained in:
29
modules/plugin-python/example/Makefile.am
Normal file
29
modules/plugin-python/example/Makefile.am
Normal file
@ -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
|
||||
5
modules/plugin-python/example/hello_python.py
Normal file
5
modules/plugin-python/example/hello_python.py
Normal file
@ -0,0 +1,5 @@
|
||||
'''hello_python.py - Python source designed to '''
|
||||
'''demonstrate the use of python Eplugins'''
|
||||
|
||||
def say_hello():
|
||||
print 'Hello ! From python'
|
||||
16
modules/plugin-python/example/org-gnome-hello-python-ui.xml
Normal file
16
modules/plugin-python/example/org-gnome-hello-python-ui.xml
Normal file
@ -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>
|
||||
@ -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>
|
||||
Reference in New Issue
Block a user