> So basically I suggest that you just start out with a regular windowmanager.
> It will have code somewhere to draw its decorations. Here you hook in and
> use LibGGI to draw on those preexisting windows.
I just had a quick look ... It works as expected ...
Windowmanagers just create a whole bunch of regular X windows to create all
their decoration stuff.
Now that enables us to play utterly cool tricks on any X desktop (the
windowmanager doesn't even need to cooperate, though it would help a great
deal): All you need is the windowID of the widget you want to (re-)generate
using LibGGI and do something like:
GGI_DEFMODE="80x80" GGI_DISPLAY="X:-inwin=0x1000073" ./flying_ggis
This is currently running here and I thus have a very funnily animated
icon for my disk drive ... It still respects the shape BTW ... we should
add an extension for such overlaying stuff ... oh - wait ...
Directbuffers and Alphachannels already allow it ...
So for a way cool windowmanager, all you would need to do would be to make
an option "ggispawn" available whereever you can define the look of a
widget. This would work just like say a "pixmap bla" option and instead
of loading the pixmap , it would cause the named LibGGI program to be
spawned with the right contents for GGI_DISPLAY and _DEFMODE ...
I know it's a waste of ressources, but it looks bloody cool ... !
It would be even more fun, if the WM would inject a standard set of events
for stuff like mouseover,enter/leave,click,keypress as well as some
metaevents that are determined by the WM (like activate,deactivate, greyout)
to allow for the really cool things to be done in a simple way (one could
refork with parameters, but I already talked about wasted ressources ...).
O.K. - let the fun begin ...
CU, ANdy
--
= Andreas Beck | Email : <[EMAIL PROTECTED]> =