[Panel-devel] Containment

Aaron J. Seigo aseigo at kde.org
Sun Sep 16 04:39:18 CEST 2007


so i'm mostly done with a fairly important addition / reworking of how applets 
are managed. we needed the following things:

- something to paint backgrounds
	- needs to support different mimetypes
	- needs to be interactive, at least optionally
	- needs to support things like animation
- something to contain applets
	- zooming requires grouping
	- sharing a corona also requires grouping
	- groups manage applet layout and constraints (e.g. FormFactor) stuff

it occurred to me that this essentially describes an Applet, plus some 
additional features. so that's what i've done and called the result 
Containment. we now have a Plasma/Containment ServiceType for this, but it 
really is just an Applet.

loading/saving of applets is still done from a single KConfig object and in a 
single pass; a containment per-screen is created ...

the reason things aren't committed atm is that this breaks the current panel 
implementation pretty nicely ;) and i need to rework DesktopView now. 
essentially the view becomes even *less* important, with background painting 
and context menus being handled by Containments.

the ramifications of this are fairly extensive:

- we can share a Corona between multiple screens and panels
- we can have really frigging cool backgrounds =)
- it doesn't really introduce much more code complexity at all, as it's mostly 
just moving things around a bit and reworking how things get put together
- the people writing the Desktop plasmoid will love me, because now they 
create their desktop as a Container if they wish and make all their items 
children of itself. this is even nicer than the "no top level" approach. 
- applets can be backgrounds as well, which could be pretty interesting

there is exactly one new class in all of this: Containment. it looks a lot 
like a mashup between Corona, DesktopView and Applet. Corona and DesktopView 
both get a bit simpler in the process.

i'll be committing the results tomorrow (Sunday) sometime, but thought i'd 
give everyone a heads-up on this in case there were questions/concerns in the 

Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Trolltech
-------------- 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/20070915/e95124dc/attachment.pgp 

More information about the Panel-devel mailing list