Hi,
I just uploaded inkface-pygame v0.2.2 tarball. Here are some highlights of changes:
1. Important changes were made to improve the performance of drawing the elements to the pygame backend, . This involved use of pygame's advanced facilities (special pygame sprite groups - LayeredDirty). In short, inkface can flag only selective surfaces as dirty and only the parts of the screen occupied by those surfaces are refreshed. Before this change the animation.py test used to take constant ~40% CPU (irrespective of changes in the component surfaces). With this change the CPU consumption remains around ~5% during no GUI activities and consumes higher CPU only when parts of the GUI need redrawing (for animation.py it peaks at ~25%). This changes how animation are programmed (fo better). Check tests/animation.py and tests/twt.py for example. Soon I plan to release API docs to explain this better.
2. Using the SVG elements, higher level widgets can be coded. A sample application twitter-inkface (under apps/ directory), shows how textbox widgets can be created. They have usual qualities of textbox (blinking cursors, self adjusting text), but they can be themed easily y changing corresponding SVG files. Check out the video demo mentioned below for more details.
3. The text elements now can be drawn with colors.
4. The use of RGB24 surfaces was causing problem while running in Maemo SDK. All cairo surfaces are now changed to ARGB32 so that this works in Maemo diablo SDK.
5. The callback handler signatures - onKeyPress, onDraw - have been changed slightly to be more like traditional event handler signatures. They will be clear once API docs are ready.
To demonstrate above features, I have coded a twitter client. It is under the apps directory in source tree. It runs with two separate themes. Each theme consists of 2 SVG files, yet the difference in GUI's look is huge. Here is the demo video that shows the same.
http://blip.tv/file/1869874The performance improvement effort - as mentioned in 1 above - has made inkface-pygame incompatible with Maemo diablo SDK. This is because the pygame features like LayeredDirty are available only in 1.8.x while diablo has pygame version 1.7.x. I am trying to fix this by making use of old pygame features instead of LayeredDirty.
Comments are welcome.
--
Jayesh