The way to go forward seems to currently be that we deprecate the current GtkStyle API in 3.x and replace it with a new API. Compatibility code will then be removed in 4.x. Here are some tasks that need to be done (please keep sorted by the order they should happen in):
Please put your name down if you want to help out.
Task |
Status |
People |
Create a page of GTK+ widgets (fix this tasks name) |
(put link here) |
Alberto Ruiz |
Think about the artist's workflow when creating a theme. #workflow |
|
|
Create a specification of how GTK+ widgets should be drawn #specification |
|
Andreas, Alberto Ruiz, Benjamin Berg |
Have the (above) specification for drawing reviewed by artists and other people #consistency |
|
Andreas |
Create mockups of a new theme syntax #syntax |
|
|
Create a mockup engine #mockup |
not yet started |
Benjamin and ? |
Deprecate GtkStyle when in some 3.x version |
|
|
Here some improvements for GTK+ 2.x
Task |
Status |
People |
Create an API for theme engines to dynamically create GtkRCStyles and set style properties on them |
not yet started |
Benjamin Berg |
Workflow
By thinking about the artists when designing the new theming system, we will be able to achieve a higher quality in the end. A powerfull system that could do almost anything is worst then a system that is easy to use but more limited.
Drawing Specification
To be able to achieve a consistent drawing model inside all GTK+ widgets we need to create a specification for each widget. This need to be checked for completeness and consistency. When this is getting further we should probably also define a set of guidelines for new and custom widgets.
Consistency in the new specification is very important. So it should be proofread by a couple of people.
Some things that need to be defined:
- Basic set of colors that will be used by the themes and applications.
Syntax
The idea is to create several mockups of how a new theme syntax can look like. The merits of the different ideas can then be discussed.
Mockup Engine
Creating a new theming API is a large amount of work. Getting it right at the first time even more. So what we are planning to do is to create a basic compatibility engine for GTK+ 2.x that tries to emulate (important aspects of) the new design. This way we can hopefully check whether our ideas are working out, or some fundamental problems exist.