cbpporter Messages: 1400 Registered: September 2007
From my experience, Chameleon works and that's about it. It isn't really designed to be friendly or intuitive, it is just functional. And not documented.
You may start by looking in bazaar/Theme, a package that I created that can load a theme from an external zip file (or a folder). It handles everything form colors to menus and surprisingly still works even though it has not been updated in years. It covers pretty much all the controls so you could use that as a starting point. The external format is a bit random.
In bazaar\Themes\Skulpture.zip and SkulptureStone.zip you can find a slightly half-assed port of a KDE skin.
In your "main" method, you create a new local Theme and call Load with a theme. 3 sample themes are included in the Themes folder. One of them is just the "Bluebar" sample theme that covers only menus, but converted to my format.
Load just load the Assets.
Apply changes the look.
There can be some rare minor issues if you call Apply after the creation of your windows if I remember correctly.
Each Theme::LoadFoo private methods shows you how to set most of not all the look of a widget.