new panel look and feel

Marco Martin notmart at gmail.com
Sat Apr 19 16:21:17 CEST 2008


On Saturday 19 April 2008, Aaron J. Seigo wrote:
> > * tasks should draw their background with PanelSvg and there should be
> > some sort of transition effect between two svgs when the task goes
> > active/hovered
> > ** maybe could it become too memory consuming?
>
> if they share the renderer, it might be ok. there's really only one way to
> tell, though and that's to try it. there should only need to be one svg
> object per taskbar, however, and all tasks should share it.

i have a more or less working prototipe, that at the moment uses 4 panelsvg 
one for task status, really fugly.
i started with the early implementation that was already in
 that has a static svg in abstracttaskitem, so should be shared between all 
task items in that applet

>
> i don't think SvgPanel will work out of the box for this, however. we
> probably want a special SvgPanel (subclass?) or modify SvgPanel itself to
> support multiple Panel items in the same SVG.
PanelSvg does support multiple panels, the problem is that it has only one 
cache, so when you change the  sub svg to be drawn the cache gets destroyed 
and the svg must be drawn again, i was thinking of a qhash of pixmaps one for 
every sub element and the api could either remain as is now with 
setElementPrefix and then paint or with the prefix as a parameter of paint

>
> allowing PanelSVG to keep multiple items in the cache (so painting element1
> then element2 then element1 again (typical usage in this sort of scenario)
> doesn't result in creating a new pixmap and re-rendering every time)
>
> > ** since complex transitions compositions probably are still far two
> > PanelSvg will be needed that blend into each other
>
> why wouldn't one svg be enough?

was thinking about animating, like if the mouse gets over an item the notmal 
task pixmap fades out and the hover task pixmap fades in, just like the 
toolbox

> > ** elements we will probably need: active, inactive, iconified and
> > requesting attention, each one with a normal and a mouse over version
>
> could the hover (mouse over) version be achieved by painting an overlay of
> some sort? that would cut the hover overhead to just one svg element and
> one pixmap.
yeah, i was thinking of blending with hover and maybe for iconified to not 
draw any background at all

> > * Desktop containment should be able to draw shadows for the panel views
>
> i'm really, really hesitant on this one as doing it without really nasty
> hacks that end up looking cheap will be hard. really, this should be done
> in kwin.

yeah, don't know if there is a clean way to do it, but the concept that nuno 
showe me was really interesting: there should be a shadow drawn on the 
desktop, so behind the windows and if available another one drawn by kwin 
with compositing, so if a window is between the two shadows a really nice 
effect is achieved, the desktop would have a bigger shadow than the window, 
so a nice perspective effect would be achieved for relatively cheap.

> > * also breaking the model/view stuff, the panel containment should be
> > able to set the shaped mask of the panelview window
>
> as long as the containment has a proper shape() method, the view can query
> that. no model/view breakage.
>
> > and this could make the
> > panel autohiding harder to do
>
> not really




More information about the Panel-devel mailing list