Re: Revisiting the GNOME Panel in general...
- From: James Henstridge <james jamesh id au>
- To: Scott James Remnant <scott canonical com>
- Cc: GNOME Desktop Developers <desktop-devel-list gnome org>
- Subject: Re: Revisiting the GNOME Panel in general...
- Date: Wed, 29 Sep 2004 15:24:02 +0800
On 29/09/04 13:57, Scott James Remnant wrote:
On Tue, 2004-09-28 at 11:38 +0800, Davyd Madeley wrote:
On Mon, 2004-09-27 at 12:45 +0100, Scott James Remnant wrote:
On Thu, 2004-09-23 at 00:01 +0800, Davyd Madeley wrote:
Scott, we indeed have identical views. For anyone who didn't understand
my mumblings, try Scott's ;)
Excellent! From reading your original post I had the impression mine
were a bit more radical (especially combining launchers and nicons).
Call me fearfully conservative ;)
When you're thinking radical, there's no point backing down on the scary
bits <g>
* Applet API. I'm with you that basically we're making everything a
notification icon, in effect. The Applet APIs would need to be
overhauled to make the world a simpler place. A lot of the harder
work isn't needed with a more intelligent Panel.
I think we have pretty much everything we need already in the
notification area spec. We could almost overhaul libpanel-applet to be
EggTrayIcon I think. From my musing, all of the smarts would have to be
in the panel.
On a review of that, there's still some bits missing from
EggTrayIcon/notification icons we may want/need to do away with
"applets" entirely:
* "type" hint -- in order to place new icons intelligently, we'd need
some kind of associated purpose hint for them. This could be
"launcher", "hardware", "information", etc.
Is this useful in addition to giving applets unique names? (which would
be needed to let the panel order the icons correctly as they are created).
* size negotiation -- applets can query the panel to find out it's
size and orientation, notification icons can't. Possibly useful for
things like the contact lookup applet
The notification icon spec currently has no size negotiation. The spec
currently says " Tray icons may be assigned any size by the system tray,
and should do their best to cope with any size effectively.":
http://freedesktop.org/Standards/systemtray-spec/0.1/ar01s05.html
It should be possible to add some extra messages to change this default
behaviour though. The notification icon will probably want to know
whether the panel is horizontal or vertical. If it is horizontal, the
icon should be able to set a fixed width and be able to ask to expand to
fill free space. The icon would take its height from the panel height.
For a vertical panel, the same applies with height and width swapped.
The icon should also be notified of panel orientation changes and height
changes so it can change appearance appropriately.
* moving/re-ordering icons -- we'd need some way to be able to move
and re-order icons; this would need co-operation with the applet to
let the panel do that to it.
The window manager spec has something similar to this:
http://freedesktop.org/Standards/wm-spec/1.2/ar01s04.html#id2503404
This _NET_WM_MOVERESIZE hint is used to coordinate resizes between the
app and window manager using the resize grips found in the status bar of
many apps. Something similar could probably done to handle cooperative
moving of notification icons.
* menus -- how do we add things like the Move, Lock & Remove menu
items? How do those messages go to the panel
This is currently handled with the BonoboUI component code, so that
those menu items invoke actions in the panel rather than the applet.
One option is to treat these menu items as something that applets SHOULD
provide rather than appear magically through the use of Bonobo (this
might be the only option to make it possible to implement on other
desktops). A standard "applet widget" could make it easy to provide
these features though.
The move option can probably be implemented using the previously
mentioned method. Remove can be implemented by simply exiting or
destroying the notification icon widget. Handling lock down might be a
bit more difficult though.
This still leaves a few problems though:
1. how do you get the list of applets to provide something like the
current "add to panel" dialog?
2. How to add/remove applets from the session (if they should be
handled by the session manager, that is). This is a problem that
things like Novel's netapplet are already running into.
James.
--
Email: james jamesh id au
WWW: http://www.jamesh.id.au/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]