-- Detente 0.0.9.2 --


If you have or find a pixmap based style please post me the link

bitwit AT digilanti DOT org

I will host a collection here... Themed Styles (pixmap based)
ProgressGroove, Spinbox, TabPanel, LineEdit, GenericPanel all clone bevel button border.
These RPMs are NOT RealPlayerMedia files !
These files and code are all for Linux KDE.

Packages created with rpmbuilder and alien




SuSE
i586 rpm
i686 rpm
athlon rpm
Mandrake
i586 rpm
i686 rpm
athlon rpm
Gentoo
ebuild
Fedora
i586 rpm
i686 rpm
athlon rpm
Slackware
i586 tgz
i686 tgz
athlon tgz
Source
tar bz2
Debian
i386 deb
Kubuntu
i386 deb

Developed with

SuSE 10.0
kernel 2.6.13-15-default i686 athlon
KDE Release 3.5.4
gcc version 4.0.2 (SuSE Linux)
KDevelop version 3.3.4

Detente Application:

KMenu->Development->GUIDesigner->Detente
  • Enable KControl->Appearence->Style->Configure for themed styles
  • Preview: Allows editing of style.themerc settings via requestors on LMB or RMB
  • Colors: Reads and writes kcsrc ( LMB tab bar empty area )
  • New: Makes a blank style.themerc with dummy pixmaps
  • Import: Themerc and pixmaps from user space
  • Export: Makes themerc with pixmaps from themed or lib style
  • 3 Alternate GroupBox styles
  • TODO: get "New" to make pixmaps from svg template
Can be run from term as > kcmshell detente

Detente Style:

KMenu->Personal Settings->Appearence & Themes->Style->Detente

Uses custom render routines to enhance things in lib and themed kstyles.
Currently implemented features are:
  • Enables transparent menus for themed styles
  • Etched effect for tab, menu and button text
  • GroupBox settings apply to lib styles too 09/06/06 ;-)
  • 4 border styles Default, Gradient, Bar and Bubble
  • GroupBox TitleAlignment
  • Feature: Alt Bevel Borders now works like this, when TRUE/ON
  • GroupBox, Panel, and Tab use BevelButton Up settings
    Spinbox, LineEdit and ProgressGroove use BevelButton Down settings
    In Preview, access BevelUp Settings by selecting the GroupBox
    In Preview, access BevelDown Settings by selecting the SpinBox

Themed Window Decoration:

KMenu->Personal Settings->Appearence & Themes->Window Decoration->KWMTheme
  • Preview: Allows editing of windec theme settings via LMB RMB popups
  • TODO: This is still incomplete but not too hard
    It will resemble the style part but due to
    differences between windec and style code
    it may not behave exactly the same way,
    I do want to keep to same overall functionality.


The start of some documentation.


Here is an attempt to describe this experimental software and answer a few questions.

Detente is a style wrapper and themerc editor. The style part uses the builtin fallthrough mechanism that all styles use. When a style gets a request to draw a button or element that it doesn't know how to draw, the default behavior is to fallthrough to the underlying style base Motif/Windows/Next etc. This is why the bevels are so ugly in themed styles, they don't match the theme, with config settings of 'no applied effects' the selected style should look normal because all calls fallthrough to theStyle and theStyle will handle all calls and look as it should.

When an effect is applied, Detente draws and does not fallthrough unless that is required to complete some part of the effect. These effects are only applied to the style when Detente is used, they will not show when this style is applied as desktop style, only when Detente is desktop style and Detente StyleToUse = theStyle.

Detente works with lib styles or themed styles, for lib styles, access to Detente effects only, for themed styles access to widget options via selecting a part in the preview with the left or right mouse button, left usually gets 'Up' settings while right usually gets 'Down' settings. I say usually because not all buttons are equal, some share settings, others are not in the preview because I haven't coded them yet or there is a problem with showing them in this preview widget...

Exceptions: I used GroupBox for BevelUp and SpinBox for BevelDown, logic, these items (GB&SB) do not have corresponding entries in a themerc and Bevel Up/Down didn't have a widget in the preview.

Q: How does Detente add etched or shadow or highlight to widget text ?
A: Detente intercepts the default text/label calls, draws an underlying effect then calls text/label routine from StyleToUse for this widget.

Q: How does Detente replace ugly themed style bevel borders ?
A: Detente intercepts the default frame calls and calls BevelUp or BevelDown routine from the StyleToUse based on the Style_Flag passed for the frame.

Q: How does Detente make the menus transparent for themed styles ?
A: Total bonus, no special coding on my part. Detente is a standard KStyle and contains the required routines for menu filter, themed style engine (builtin) does not have these routines, Detente can call the themed style routines it needs to draw buttons and things while providing the system with what it expects ie: a routine to filter menus, like normal lib based styles.

Q: How does Detente enable KControl->Appearence->Style->Configure for themed styles ?
A: Another bonus. The built in style engine use group KDE entry widgetStyle = basicstyle.la to initiate the themed style part of engine, it also uses group KDE entry WidgetStyle = styleName to identify style libraries. Because widgetStyle and WidgetStyle are different they can coexist in the same themerc, this gives kcontrol->style the notion that this might be a lib style so it enables the configure button. That button initiates a call to a library module named kcm_detente as per the themerc group Misc entry ConfigPage setting. Detente App is kcm_detente, can be called in a term as : > kcmshell detente

As far as the system (your desktop) goes, Detente is both a lib style and themed style. Coders can write effects, designers can realize a more complete look.

One cool part, If a coder writes a nice effect like glowing animated buttons or tinting, it can be applied to any lib or themed style depending on the type of effect and its requirements. It may need some special data, settings or may not look right with all styles just some.


Thanks:

Nick (maitre) for the help with scripting, testing and Tiblit.
franzf :-) for testing amd64, Gentoo ebuild and input.
Moty (motyR) for testing and input.
To all the brave users who let this monster loose in their hardware.
And to all the coders and users that make KDE possible.



Changelog:
0.0.9.2
- Fixed up "Create" tool now makes a more complete style.
- Fixed background pixmap in preview.
- Fixed GroupBox &=_ prefix render
- Added Simple Border type
- Removed Gradient border type

0.0.9.1
- just twiddling and tweaking some details, no major changes
- updated to KDE 3.5.4
0.0.9.0
- KHSSelector KGradientSelector bevel borders caused kcmcolor module to crash, fixed
- Splitter is invisible, indicated by cursor change on mouseover.
- Using KApp palette instead of qApp palette fixes redraw of preview
0.0.8.9
- Fixed borders for KPanels KHSSelector (color) KValueSelector (gradient)
- Added ToolButton Up/Down opts
0.0.8.8
- Fixed crash when switching lib style
- Added ToolButton to preview
- Added widgets to Tab 2 in preview, access via RMB on tab
0.0.8.7
- Borders apply to menus too ;-)
- Rearanged UI for better feedback
- Fixed GradientType opt save
- Adjusted TabPanel render
- Added text effect to GroupBox
0.0.8.6
- Fixed a nasty conflict with workspace and scrollview widgets ?
- Fixed kicker background.
- Masked TabPanel area
0.0.8.5
- Adjusted Bevel routines masking and borders (2 pix)
- GroupBox = BevelUp (was BevelDown)
- SpinBox = BevelDown (was bevelUp)
- HLine and VLine follow Bevel settings
- Renamed ComboBox entries for GroupBox Border settings Bar and Bubble are more accurate terms to desrcibe these.
0.0.8.4
- code not updated
- DOCS started (posted above, hope this helps)
0.0.8.4
- started a themed styles page
- now detente effects changes are seen immediately in preview
- rearranged the layout (screenshot 1)
- fixed a few bugs and ebuild, tnx franzf ;-)
- compiles with KDE 3.5.3
0.0.8.3
- made GroupBox settings apply to lib styles too 09/06/06 ;-)
- added GroupBox TitleAlign
- tweaked bevel borders
- Feature: Alt Bevel Borders now works like this, when TRUE/ON
- Spinbox, Panel, Tab and ProgressGroove use BevelButton Up settings
- LineEdit and GroupBox use BevelButton Down settings
-GroupBox has 4 border styles Default, Gradient, Bar and Bubble
0.0.8.2
testing tab panel borders
new progressbargroove border
and groupbox border styles
0.0.8.1
colors uses currentstyle.kcsrc
fixed some palette issues
fixed some config save bugs
0.0.8.0
some minor details and moved import()
new() code into detentewidget.ui.h