Extensible Shell
- From: Thomas Wood <thos gnome org>
- To: Control Center List <gnomecc-list gnome org>
- Subject: Extensible Shell
- Date: Mon, 01 Feb 2010 10:18:12 +0000
Hi,
Jon McCann has been putting together some ideas for a pluggable, single
window approach to the control center shell. The code is available in
the extensible-shell branch of control-center. I'd like to start a
discussion on how the API works and how we expect it to be used.
So firstly, from reading the code, this is what I currently understand:
* CcPanel - a top level object representing a control center panel
- properties: id, display-name, current-page
- signals: active-changed
* CcPage - an object representing a page within a CcPanel
- properties: id, display-name
- signals: active-changed
Both objects derive from GtkAlignment. The current implementation in the
capplets that have converted is that each CcPage is packed into a
notebook created by the CcPanel object. Each page and panel also have a
set_active() function, which is called when the shell or Panel expects
the widget to be on screen.
libgnome-control-center-extension contains all this API, but also all
the cruft that was in the capplets/common directory. I don't think this
should all be publicly available. The theme utilities (for example)
should be kept private.
I'm hoping Jon can describe a bit more about how the shell, panels and
pages interact. From what I can see at the moment, the shell will parent
the panel object, but it does not interact with the pages object.
I have a few questions to start off the discussion:
* Why do CcPanel and CcPage derive from GtkAlignment rather than (e.g.)
GtkBin.
* Why does the shell not create a notebook for the panel and pack pages
into it? CcPanel would then not need to derive from GtkWidget.
* Should "active" be a property on the CcPanel and CcPage objects?
It will be important to have a good API to allow third party capplets to
be well integrated, so we must make sure we define and document this API
before it is available in a final release.
Regards,
Thomas
[Date Prev][
Date Next] [Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]