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

List:       kde-core-devel
Subject:    Highlighting parts of complex widgets in themes
From:       Karl Vogel <karl.vogel () seagha ! com>
Date:       2003-12-17 14:05:51
[Download RAW message or body]

Since I like the gnome Simple theme that much and I couldn't find it for
KDE, I
thought I'd have a look at implementing it.

The thinice engine (the gtk engine used in the simple theme) has
highlighting of
the buttons if you move over them. For normal widgets (e.g. buttons) this
can be
achieved by installing an event filter that listens for Enter and Leave
events.
(like it's also done in the Plastik theme)

However, this doesn't work for complex widgets like the scrollbar, as it is
composed of smaller Primitive Elements (arrow up, down, slider). The enter
and
leave event is for the entire scrollbar, so that alone can't be used as you
would highlight the entire widget, while only the Primitive Element should
be
highlight.

I currently implemented this by installing an eventfilter on the scrollbar
that
also listens for mouse move events and then records the current mouse
position
within the widget. Then I issue a repaint and in the drawing code of the 
Primitive Element, I check if the recorded mouse position is within the
element.

In order to receive the mouse move events, I had to enable mouse tracking on
the
widget, which I actived in the polish method of the style.

While this works, I'm wondering if there isn't a better way to do this.. as
this
feels kind of hackish and would mock things up if the application changes
the
tracking state. 

-- Karl
[prev in list] [next in list] [prev in thread] [next in thread] 

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