XfconfChannel support for plugins.

Nick Schermer nickschermer at gmail.com
Sun Oct 26 15:25:01 CET 2008


2008/10/25 Mike Massonnet <mmassonnet at gmail.com>:
> Le Wed, 15 Oct 2008 09:15:28 +0200,
> "Nick Schermer" <nickschermer at gmail.com> a écrit :
>
>> 2008/10/14 Brian J. Tarricone <bjt23 at cornell.edu>:
>> > Nick Schermer wrote:
>> >> Yeah that's probably 99% of the plugins, so it would be nice for
>> >> reading the plugin settings, but for writing you still need to
>> >> xfconf channel, with the property_base if you write everything to
>> >> a single channel. So IMHO it's not convering enough of the problem.
>> >
>> > No, no, I guess I wasn't clear.  You don't expose *anything*
>> > relating to the details of config storage to the plugins
>> > themselves.  They don't know about xfconf or anything.
>>
>> I did understand that, but IMHO a hashtable is not a friendly way of
>> storing/loading settings. Missing the _get_ and _set_ functions here
>> and I'm pretty sure nobody is going to use it if they have to convert
>> GValues.
>
> Sister functions of xfconf_... like functions for the panel API would do
> it.  The main purpose is to use the panel API without caring to save the
> configuration data by hand with a third API.
>
> Idealy, it could load the data automatically at creation and save it at
> termination.  Still there had to be a function to save the data when
> needed (closing the settings dialog for instance).
>
> xfce_panel_plugin_conf_get/set_int (XfcePanelPlugin*, ...);
>
> How is that going on?  I read on IRC some ideas from you both :)

It's already committed in xfconf: xfconf_channel_new_with_property_base() the
new panel will have a macro that does this:

#xfce_panel_plugin_xfconf_channel_new(plugin) \
  xfconf_channel_new_with_property_base ("xfce4-panel", \
    xfce_panel_plugin_get_property_base (plugin))

Where xfce_panel_plugin_get_property_base() return a string like
"/plugins/plugin-$unique_id".

Nick



More information about the Xfce4-dev mailing list