Maemo widget experience – circular clock with transparent background
So last week, I started writing a maemo fremantle widget in a few spare pockets of time. One thing got me stuck. I could not get the thing to be transparent. I tried looking at other widgets’ code but just couldn’t figure it out. Finally at the Extending Hildon Desktop BoF yesterday at the Maemo Summit, I got my answer: set the colormap of the window to be 32bit rgba.
Here is the code needed in the __init__ in a python widget:
colormap = self.get_screen().get_rgba_colormap() self.set_colormap (colormap)
In the expose event handler, you have to clear with the cairo context (which I had figured out last week) with code like:
cr = self.window.cairo_create() cr.set_source_rgba (1.0, 1.0, 1.0, 0.0) cr.set_operator(cairo.OPERATOR_SOURCE) cr.paint()
My flickr fremantle tag photoset shows the progression and what runs now is:

There is still a little work to do, like respecting theme colours and more accurate positioning of hour etc before I create a package to push into extras.
October 12th, 2009 at 9:37 am
One would expect the clearing happen with the CLEAR operator since such thing exists (and has higher chance of using shortcuts to do it).
Is ther any specific reason not to use CLEAR?
October 12th, 2009 at 9:51 am
no reason at all, with clear it will probably work also.
October 12th, 2009 at 10:34 am
The (my) example code uses transparency:
https://garage.maemo.org/svn/maemoexamples/trunk/example_desktop_widget/
If you didn’t find that, please file a bug saying that it should be mentioned from wherever you were looking.
October 12th, 2009 at 10:44 am
Murray: thanks, bug filed at:
https://garage.maemo.org/tracker/index.php?func=detail&aid=4658&group_id=273&atid=1090
Other stuff I looked at was uncommented source code so I had no clue what magic I needed
Your example code is actually very well commented, I wish I had seen it last week
October 13th, 2009 at 5:32 am
CLEAR does one of two things: It is either optimized to be faster than SRC or it falls back to SRC. In neither case, using the CLEAR operator is worse. If anything, it will be faster.