Comment 8 for bug 279503

Revision history for this message
Steven Sheehy (steven-sheehy) wrote :

Characteristics that a plug-in system must have (notes to myself or anyone else that wants to implement it):

- Load plug-ins from a directory in the user's home (e.g. ~/.dc++/plugins/) for user-added plug-ins
- Load plug-ins from the installed prefix (e.g. /usr/share/linuxdcpp/plugins) so we can ship some plug-ins with the program
- Use gmodule to load the plug-ins dynamically from either directory, user plug-ins overriding shipped plug-ins
- Create an interface that plug-ins would have to implement
- Support C++ plug-ins
- Possibly support python plug-ins in addition to C++
- Allow for dynamic replacement of UI elements like menu items (this will require conversion of glade files to GtkBuilder files and thus a minimum of 2.12 for GTK+)
- Support versioning of plug-ins
- For additional ideas see http://www.nuclex.org/articles/building-a-better-plugin-architecture

Any other ideas feel free to add them here.