[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-usability
Subject:    Re: Theme manager classes
From:       Ravikiran Rajagopal <ravi () ee ! eng ! ohio-state ! edu>
Date:       2003-04-21 20:40:26
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,
  There are a few problems with the approach you outline. The biggest one I 
see is that DCOP requires the applications (KSplash, etc.) to be running when 
we save the settings from the KCModule. This is not realistic - atleast for 
KSplash.
  Here's my modification of the approach which is relies heavily on the 
KTrader framework. A "meta-theme" is a collection of themes for each 
application it can configure. Here's an example of a meta-theme file:

[Metatheme: MyMagicTheme]
Base metatheme=InheritThisMetaTheme
Window Decorations=Keramik,Liquid,Glow
Widget Style=Liquid,Keramik,Modern
Icons=Slick,Technical,crystal
Color Scheme=Emerald,Diesel
Splash Screen=MacClassic,Default
Noatun Skin Plugin=KJofol
Noatun KJofol Skin=Maegashira,Hex

1. Every application that wishes to be configured via a meta-theme provides a 
KDE service of type "Theme Module". This is a theme control module loaded by 
the theme manager, which provides a read-only interface which takes a list of 
themes and a theme directory as input. The theme control module provides a 
widget which can preview themes, and save theme information.

2. Each theme control module goes through the list of themes provided, and 
picks the first one actually available on the system or a default. It then 
generates a preview, and saves the information from that theme if told to do 
so.

3. When our theme manager reads a meta-theme and goes through its inherited 
hierarchy, it provides a list of check boxes allowing the user to turn off 
particular parts. In the example above, we provide checkboxes for window 
decorations, widget, style, icons, ..., naotun kjofol skin (assuming 
Inherited theme does not define more objects to configure). Depending on the 
checkboxes that are actually checked, we present tabs for preview of each 
feature. Ideas about integrating all the previews into a single canvas are 
welcome.

4. That's it for the KControl module.

My interest lies in a theme manager class that can be reused by standalone 
applications, which I think will be used by each of the modules mentioned 
above. This would simply be an abstraction of the class found in 
kdebase/kcontrol/thememgr.

Flames and suggestions welcome. Now I have to go back to thinking about Szego 
polynomials on the unit circle, and about getting some start on MathML 
support in khtml, so that I can HTMLize my dissertation. Damn.

Regards,
Ravi

Mosfet wrote on 2003-04-13 3:44:09:

The basic thing we were discussing in regards to a theme management library is 
that there is so many different applications to configure: KSplash, KDesktop, 
KPanel, KWin, widget styles, color schemes, etc... I think this should all be 
encapsulated into one API. Others wanted to use DCop to configure application 
themes. The end result is that we would make a general API that contains 
configuration methods for all these different things, then make the library 
call DCop as applications support it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+pFc6bI8Y8y0oVXcRArNsAKCO15+rN2YqeAy/50CHI6Ez1aLWEACeJU9+
IQVfwSWrW4sas+dNM1x0Yf0=
=KaKU
-----END PGP SIGNATURE-----

_______________________________________________
kde-usability mailing list
kde-usability@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-usability

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic