Hi List !

David said :
I'm suggesting that we add some way to register and depend on features.
E.g. the cube and plane plugins would both register a "largedesktop"
feature. zoom plugin could depend on the "largedesktop" feature instead
of the cube plugin and it wouldn't be possible to load two plugins that
provide the same feature.

David, what you describe looks a lot like the Eclipse RCP bundle model
based on OSGi specifications. A very very flexible system :

First, everything is a plugin and is described
- by an id
- a description ans some usual informations
- a list of required previoulsy loaded plugins

And now the meal :)

- a list of extension points defining how other plugins can contribute
to it being by code, ressources, strings etc... (ex : ext point
org.freedesktop.compiz.largedesktop must be a desktop handling plugin
and is unique)

- a list of contributions (called Extensions) to other plugins
( ex : contribute to org.freedesktop.compiz.largedesktop with a class
named Cube implementing an accordingly interface ILargeDesktop)



Sadly, most if not all OSGi plugins systems are build around Java, but
I think it can be a great inspiration for any plugin system like the
compiz' one.

(OT : A C or C++ implementation would be a nice fullfeatured
freedesktop.org project !)

Happy coding !

--
Alexandre Mazari
Eleve Ingénieur 5eme Année Epitech
Responsable Technique poly/son (poly-son.pfe.epitech.net)
_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to