Hi,

I'd like to discuss some ideas I have about reworking the animation
plugin that comes with compiz-fusion.
I feel that the recent work done on the animation plugin and
libcompizconfig such as extension
options, the extension interface to animation itself and other things
are really a step in the right
direction for the plugin. The reason for this being, of course, is
that the options of animation are now
extendable.

However, I think that this extension interface can be taken further
and made much more robust than it is
now. Right now, it appears that plugins can import other plugin's
headers and their display index's, so two-way
communication between plugins there is certainly possible. However
with extension options, it appears that the
communication is really only one way. An example of this might be:

<plugin name="animation-addons">
 ...
  <extension base_plugin="animation">
   <base_option>open_effects</base_option>
    <(extend effects from here with string restrictions)>

On animation's side, we have

<option name="open_effects">
 <extensible/>

This is a nice interface, the the problem is that 'animation-addons'
must specifically extend 'animation'.
What happens if there is another plugin that animation-addons can also
extend? We have to add more
metadata and patch the plugin.

I think that the extension system would really benefit from something like this:

<plugin name="animation">
...
 <option name="open_effects">
  <extender feature="open_effects_animation">

<plugin name="windowFX">
...
  <option name="move_effects"/>
  <extended "open_effects_animation"/>

In this kind of system, a plugin can just provide an 'extension
feature' and other plugins are 'extended' by
this feature. This way, plugins can simply request all the
'open_effects' from the animation plugin and display
them. The benefit of this is that we now have actual library plugins
in options, plugins could already use code
from other plugins, but now they can use options from other plugins
without being extended.

I will post the second part to this in a second.

-- 
Sam Spilsbury -- Developer
_______________________________________________
Dev mailing list
[email protected]
http://lists.compiz-fusion.org/mailman/listinfo/dev

Reply via email to