[Panel-devel] [RFC] Interaction model for "building" your shell
Kevin Ottens
ervin at kde.org
Thu Sep 15 00:01:28 CEST 2005
Hi list,
I know I'm generally silent on mailing lists, and in particular in this one
since I have to address some other parts of KDE before being able to come
back to my good old kicker applets that will sooner or later become
"plasmoids" (I don't know why I still find this name strange :D).
Ok, anyway... in this mail I'll try to expose some ideas I got about how to
deal with plasmoids from the user point of view, and how he can setup his
plasma "shell" to make it unique.
Some of the ideas below come from one blog from Aaron hinting that maybe the
whole concept of panels could disappear, and from some testing I've done with
E17.
First of all, since I mentionned E17, don't get me wrong. I'm not proposing
just to rip feature from it... but some of the things I considered as flaws
in their current model gave me some ideas. I'm not a (self-proclamed) genius
trying to impose his vision... I'm just trying to provide some food for
thought. ;-)
Here are the points I'll assume to be true about plasmoids:
1) Each plasmoid has a layout support.
2) When on the edge of the screen a plasmoid uses a one dimension layout.
3) Otherwise it uses a two dimensions layout.
4) You can change the size of a plasmoid (in both direction, or only one
depending on the current layout).
As for exposing, I'll consider the following precondition:
All the plasmoids the user will use are already on the desktop (or it'll
magically popup when he needs one more).
I assume this, simply because I'm not dealing with "how to add an plasmoid",
but really how to build your shell from a set of plasmoids.
So, first of all, the user has his set of plasmoids. He can drag them around
to build his shell. Each plasmoid has resize handles. If on the edge, you
only have one handle available for resizing, otherwise you have two of them.
That means that you fully control the size of a plasmoid in the case of a two
dimensions layout, but you only control its height if it's placed on the
bottom edge for example.
Next, if we want to get rid of panels, that means that we need to be able to
"connect" plasmoids together. The best way to do this, looks like using
"magnetic" edges. You drag a plasmoid close to the edge of another one and
you get two connected plasmoid when you drop.
This raises two issues:
1) How does it affect resizing?
2) How to disconnect?
As for resizing, the solution looks clear to me, when several plasmoids are
connected together, you get handles only for the biggest rectangular sets of
plasmoids. For examples:
- you connect several plasmoids in a row, you get handles for the full row, as
if it was only one unique plasmoid
- you connect several plasmoids forming a "U" (why not after all), you get
handles for each bar of this group (one horizontal, and two vertical groups)
As for disconnecting I see two solutions:
1) We consider having a special handle as overlay on the plasmoids connected
edges. When clicked, the connection is broken, and the plasmoids are slightly
moved so that there's some room between them.
2) We consider the first (as in read-order) to be the "master plasmoid" if you
move it, you move the whole group, otherwise you split the group at the moved
plasmoid. For example, if I have a row of four plasmoids, if I move the one
at the left it'll move the full group since I read from the left to the
right. If I move the third one (counting from the left), it'll result in two
rows of two plasmoids.
And finally... The open issue... How to trigger the "edit the shell" mode? I
see two possibilities:
1) Having a handle on each plasmoid that you can use for dragging. I'm not
sure it's really nice from a visual perspective...
2) Having a special action "somewhere"(*) triggering the edit mode. In this
case every windows are hidden, and only the desktop and its plasmoids are
accessible until you switch back to the normal mode.
Regards.
(*) This "somewhere" could be a special action available in the context menu
of all the plasmoids... but everybody knows the issue with context menus, you
have to know they are available.
--
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/panel-devel/attachments/20050914/1dc31f9d/attachment.pgp
More information about the Panel-devel
mailing list