GTK for OLPC: Difference between revisions
No edit summary |
|||
Line 17: | Line 17: | ||
[[Image:torture_screenshot.png|220px|Theme torturer tab]] |
[[Image:torture_screenshot.png|220px|Theme torturer tab]] |
||
[[Image:Torture_screenshot2.png|220px|Crash tester tab]] |
[[Image:Torture_screenshot2.png|220px|Crash tester tab]] |
||
⚫ | |||
This is the next big part of the project. There is a current version of the OLPC theme ("artwork" project in git), but it's only a start (it could use a complete rewrite, ''dixit'' some of the developers). I will work on it, my first goal being to match [Diana's mockups http://people.redhat.com/dfong/olpc/] the best I can while making a light/fast theme. An important issue will be to adapt the theme to the hardware constraints (high dpi value, color swizzling, greyscale mode, etc.). |
|||
I will keep Marco Pesenti Gritti (marcopg) and Dan Williams (dcbw) posted on my progress and coordinate with them. |
|||
== Various enhancements == |
== Various enhancements == |
||
Line 35: | Line 41: | ||
== Simulation Tools == |
== Simulation Tools == |
||
Federico made a simple "color swizzling" program that operates only on still images (to simulate color swizzling with the DCON chip). Plans are to integrate this into Xephyr and make it good enough for real time, but it probably won't be technically possible to run it at more than a few frames per second. Priority given to the theme itself, and I might use only still images for previewing. |
|||
Right now : making tests with "Xephyr" to simulate the laptop's display. |
|||
⚫ | |||
Right now: learning how to write a GTK engine/theme. I'll probably begin by searching whether there's an existing theme close to what we want, and I can start from there. It seems that some people at RedHat are already working on a special theme for OLPC, I'll need to coordinate with them as soon as the "torturer" part is finished. |
Revision as of 12:21, 9 July 2006
This is the wiki page for the "GTK+ for OLPC" project, as a "Summer of Code" project. The student is Manu Cornet, mentor is Federico Mena-Quintero. You can find the initial goals of the project on the OLPC Google Summer of Code page.
GTK theme/engine torturer and crash tester
This "gtk-theme-torturer" is an application to detect performance issues in GTK themes/engines. It does two things:
- For each of the most common widget types (very easy to add some more), it packs an instance of it in a container, and resizes/redraws it many, many times. You can set a "pain level" to determine the number of times widgets will get redrawn while scaling.
- It takes each one of the gtk_paint_* functions (implemented by the engines themselves) and tries all possible parameters configurations, including unusual values to see if the engine crashes.
The current version of gtk-theme-torturer is [here http://www.manucornet.net/pub/olpc/gtk-theme-torturer/] (current tarball in the parent directory). The torturer is fully functionnal and mainly finished. Future enhancements :
- Currently, the detailed log is sent to stdout. It would be more convenient to let the use choose (GtkFileChooser) a log file.
- Plans are to merge this app with Federico Mena Quintero's Widget Profiler in order to get a detailed analysis of the time that was necessary to allocate/map/redraw/etc. widgets.
GTK+ theme engine
This is the next big part of the project. There is a current version of the OLPC theme ("artwork" project in git), but it's only a start (it could use a complete rewrite, dixit some of the developers). I will work on it, my first goal being to match [Diana's mockups http://people.redhat.com/dfong/olpc/] the best I can while making a light/fast theme. An important issue will be to adapt the theme to the hardware constraints (high dpi value, color swizzling, greyscale mode, etc.).
I will keep Marco Pesenti Gritti (marcopg) and Dan Williams (dcbw) posted on my progress and coordinate with them.
Various enhancements
Cursor blinking
I began with this (probably quite simple to do). The purpose is to let the cursor blink for a few seconds, then just stay on and stop blinking (affects GtkEntry and GtkTextView).
This is done by :
- Adding an XSetting called "gtk-cursor-blink-lifetime", which defaults to 5 seconds.
- Adding a timeout with the corresponding lifetime each time the code asks the cursor to begin blinking. When the timeout is over, the cursor stays on.
A (probably final) version of the patch (both for GtkEntry and GtkTreeView) is available [here http://www.manucornet.net/pub/olpc/enhancements/cursor_blink_lifetime.diff].
Simulation Tools
Federico made a simple "color swizzling" program that operates only on still images (to simulate color swizzling with the DCON chip). Plans are to integrate this into Xephyr and make it good enough for real time, but it probably won't be technically possible to run it at more than a few frames per second. Priority given to the theme itself, and I might use only still images for previewing.