Log In
New Account
  
Home My Page Project Cloud Code Snippets Project Openings modest
Summary Lists SCM Wiki

Plugin API

Modest plugin system

API and ABI

API

The API is available at the include directory for modest plugin. If the prefix for modest is /usr it will be at /usr/include/modest-plugin-1.0/. The most interesting thing there is the ModestProtocol framework. To support a new protocol (transport or store), you have to register a new instance of ModestAccountProtocol in the ModestProtocolRegistry. There you'll find methods to implement specific UI for setting them up.

ABI

As it's a new born plugin system, for now, we cannot provide an ABI contract. It will be changing as new features are requested for the plugin system. Once it's been around for a while, we'll estabilise the public API and provide the expected ABI contract.

Meanwhile, plugins should be kept in sync with modest.

How to build a new module

Linking

A module should be built using the paths obtained from pkg-config. The name of the pkg-config module is modest-plugin-1.0. As usual, you can check and fetch the specific deployment information in configure.ac:

    PKG_CHECK_MODULES(MODESTPLUGIN,modest-plugin-1.0)

Module format

The plugin should be a libnameofplugin.so file. You should provide also an information file with extension .modest-mail-plugin and this format:

    [Modest Mail Plugin]
    Module=nameofplugin
    IAge=2
    Name=Plugin name
    Description=Description of the plugin
    Authors=John Doe <jdoe@address.com>
    Copyright=Copyright <C2><A9>2008 John Doe
    Website=http://modest.garage.maemo.org

In fact only the Module field is used currently. Modest will go through all the .modest-mail-plugin files and load their modules. Fetching mail plugins module directory

Main plugins will be fetched in /usr/lib/modest/mail-plugins with the default setup. Anyway, you can fetch your specific modest plugin installation path using pkg-config:

    pkg-config --variable=plugindir modest-plugin-1.0

In configure.ac you can do this to export the plugindir to the Makefile files:

    MODESTPLUGIN_PLUGINDIR=`pkg-config modest-plugin-1.0 --variable=plugindir`
    AC_SUBST(MODESTPLUGIN_PLUGINDIR)

Implementation notes

Implementation notes for plugin system


(last edited April 28, 2009) - Read Only [info] [diff])
FindPage by browsing or searching
5 best incoming links: FrontPage (7), RecentChanges (5)
5 best outgoing links: PluginAPIImplementationNotes (4)
5 most popular nearby: FrontPage (3609), RecentChanges (529), PluginAPIImplementationNotes (365)

Terms of Use    Privacy Policy    Contribution Guidelines    Feedback

Powered By GForge Collaborative Development Environment