Use internal Qt hover drawing

pull/1/head
Timothy Pearson 12 years ago
parent 528ae8af06
commit 8e1d136772

@ -165,9 +165,6 @@ LipstikStyle::LipstikStyle() : KStyle( AllowMenuTransparency, ThreeButtonScrollB
kornMode(false), kornMode(false),
flatMode(false) flatMode(false)
{ {
hoverWidget = 0;
hoverTab = 0;
horizontalDots = 0; horizontalDots = 0;
verticalDots = 0; verticalDots = 0;
@ -1355,7 +1352,7 @@ void LipstikStyle::drawKStylePrimitive(KStylePrimitive kpe,
if(!enabled) if(!enabled)
surfaceFlags |= Is_Disabled; surfaceFlags |= Is_Disabled;
else if(hoverWidget == widget) { else if(flags & Style_MouseOver) {
surfaceFlags |= Highlight_Right|Highlight_Left; surfaceFlags |= Highlight_Right|Highlight_Left;
} }
@ -1381,7 +1378,7 @@ void LipstikStyle::drawKStylePrimitive(KStylePrimitive kpe,
if(!enabled) if(!enabled)
surfaceFlags |= Is_Disabled; surfaceFlags |= Is_Disabled;
else if(hoverWidget == widget) else if(flags & Style_MouseOver)
surfaceFlags |= Highlight_Top|Highlight_Bottom; surfaceFlags |= Highlight_Top|Highlight_Bottom;
renderSurface(p, TQRect(xcenter-6, ycenter-8, 13, 18), renderSurface(p, TQRect(xcenter-6, ycenter-8, 13, 18),
@ -1510,7 +1507,7 @@ void LipstikStyle::drawKStylePrimitive(KStylePrimitive kpe,
if(!enabled) if(!enabled)
surfaceFlags |= Is_Disabled; surfaceFlags |= Is_Disabled;
else if(hoverWidget == widget) { else if(flags & Style_MouseOver) {
surfaceFlags |= Highlight_Right|Highlight_Left; surfaceFlags |= Highlight_Right|Highlight_Left;
} }
@ -1535,7 +1532,7 @@ void LipstikStyle::drawKStylePrimitive(KStylePrimitive kpe,
if(!enabled) if(!enabled)
surfaceFlags |= Is_Disabled; surfaceFlags |= Is_Disabled;
else if(hoverWidget == widget) else if(flags & Style_MouseOver)
surfaceFlags |= Highlight_Top|Highlight_Bottom; surfaceFlags |= Highlight_Top|Highlight_Bottom;
renderSurface(p, TQRect(xcenter-6, ycenter-15, 13, 31), renderSurface(p, TQRect(xcenter-6, ycenter-15, 13, 31),
@ -1791,7 +1788,7 @@ void LipstikStyle::drawPrimitive(PrimitiveElement pe,
uint surfaceFlags = Draw_Left|Draw_Right|Draw_Top|Draw_Bottom|Is_Horizontal; uint surfaceFlags = Draw_Left|Draw_Right|Draw_Top|Draw_Bottom|Is_Horizontal;
if(hoverWidget == p->device()) if(flags & Style_MouseOver)
{ {
scrollbarHighlighted = true; scrollbarHighlighted = true;
if(horiz) if(horiz)
@ -2050,7 +2047,7 @@ void LipstikStyle::drawPrimitive(PrimitiveElement pe,
// -------------- // --------------
case PE_Splitter: { case PE_Splitter: {
// highlight on mouse over // highlight on mouse over
TQColor color = (hoverWidget == p->device())?cg.highlight():cg.background(); TQColor color = (flags & Style_MouseOver)?cg.highlight():cg.background();
//p->fillRect(r, color); //p->fillRect(r, color);
if (w > h) { if (w > h) {
if (h > 4) { if (h > 4) {
@ -2235,7 +2232,7 @@ void LipstikStyle::drawPrimitive(PrimitiveElement pe,
if(_drawToolBarHandle) { if(_drawToolBarHandle) {
if (horiz) { if (horiz) {
int center = r.left() + (r.width()/2) - 2 ; int center = r.left() + (r.width()/2) - 2 ;
if(hoverWidget == p->device()) if(flags & Style_MouseOver)
handleDotColor = cg.highlight(); handleDotColor = cg.highlight();
for(int j = kickerMode?r.top()+1:r.top()+4; j <= r.bottom()-2; j+=4) for(int j = kickerMode?r.top()+1:r.top()+4; j <= r.bottom()-2; j+=4)
{ {
@ -2243,7 +2240,7 @@ void LipstikStyle::drawPrimitive(PrimitiveElement pe,
} }
} else { } else {
int center = r.top() + (r.height()/2) - 2 ; int center = r.top() + (r.height()/2) - 2 ;
if(hoverWidget == p->device()) if(flags & Style_MouseOver)
handleDotColor = cg.highlight(); handleDotColor = cg.highlight();
for(int j = kickerMode?r.left()+1:r.left()+4; j <= r.right()-2; j+=5) for(int j = kickerMode?r.left()+1:r.left()+4; j <= r.right()-2; j+=5)
{ {
@ -2646,7 +2643,7 @@ void LipstikStyle::drawControl(ControlElement element,
} }
bool mouseOver = false; bool mouseOver = false;
if (opt.tab() == hoverTab) { if (opt.tab() == opt.hoverTab()) {
mouseOver = true; mouseOver = true;
flags |= Style_MouseOver; flags |= Style_MouseOver;
} }
@ -2681,9 +2678,6 @@ void LipstikStyle::drawControl(ControlElement element,
if (button->isFlat() ) if (button->isFlat() )
flatMode = true; flatMode = true;
if (widget == hoverWidget)
flags |= Style_MouseOver;
TQColorGroup g2 = cg; TQColorGroup g2 = cg;
if (isDefault) if (isDefault)
g2.setColor(TQColorGroup::Background, cg.background().dark(120) ); g2.setColor(TQColorGroup::Background, cg.background().dark(120) );
@ -3311,7 +3305,7 @@ void LipstikStyle::drawComplexControl(ComplexControl control,
surfaceFlags |= Round_UpperRight|Round_BottomRight; surfaceFlags |= Round_UpperRight|Round_BottomRight;
} }
if ((widget == hoverWidget) || (flags & Style_MouseOver)) { if (flags & Style_MouseOver) {
surfaceFlags |= Is_Highlight; surfaceFlags |= Is_Highlight;
if(editable) surfaceFlags |= Highlight_Left|Highlight_Right; if(editable) surfaceFlags |= Highlight_Left|Highlight_Right;
surfaceFlags |= Highlight_Top|Highlight_Bottom; surfaceFlags |= Highlight_Top|Highlight_Bottom;
@ -3335,7 +3329,7 @@ void LipstikStyle::drawComplexControl(ComplexControl control,
surfaceFlags |= Round_UpperLeft|Round_BottomLeft; surfaceFlags |= Round_UpperLeft|Round_BottomLeft;
} }
if ((widget == hoverWidget) || (flags & Style_MouseOver)) { if (flags & Style_MouseOver) {
surfaceFlags |= Is_Highlight; surfaceFlags |= Is_Highlight;
surfaceFlags |= Highlight_Top|Highlight_Bottom; surfaceFlags |= Highlight_Top|Highlight_Bottom;
} }
@ -3445,8 +3439,8 @@ void LipstikStyle::drawComplexControl(ComplexControl control,
// Its not highly efficient, but im fu***ng tired... // Its not highly efficient, but im fu***ng tired...
if (controls & SC_ToolButton) { if (controls & SC_ToolButton) {
// If we're pressed, on, or raised... // If we're pressed, on, or raised...
if (bflags & (Style_Down | Style_On | Style_Raised) || widget==hoverWidget) { if (bflags & (Style_Down | Style_On | Style_Raised) || (flags & Style_MouseOver)) {
if ( widget == hoverWidget && tb->parentWidget()->inherits( "KTabWidget" )) { if ( (flags & Style_MouseOver) && tb->parentWidget()->inherits( "KTabWidget" )) {
renderButton(p, r, cg, false, true, false, true, false ); renderButton(p, r, cg, false, true, false, true, false );
} else { } else {
drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, cg, bflags, opt); drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, cg, bflags, opt);
@ -3560,7 +3554,7 @@ void LipstikStyle::drawComplexControl(ComplexControl control,
} else { } else {
surfaceFlags |= Round_UpperRight; surfaceFlags |= Round_UpperRight;
} }
if ((widget == hoverWidget) || (sflags & Style_MouseOver)) { if (sflags & Style_MouseOver) {
surfaceFlags |= Is_Highlight; surfaceFlags |= Is_Highlight;
surfaceFlags |= Highlight_Top|Highlight_Left|Highlight_Right; surfaceFlags |= Highlight_Top|Highlight_Left|Highlight_Right;
} }
@ -3574,7 +3568,7 @@ void LipstikStyle::drawComplexControl(ComplexControl control,
} else { } else {
surfaceFlags |= Round_BottomRight; surfaceFlags |= Round_BottomRight;
} }
if ((widget == hoverWidget) || (sflags & Style_MouseOver)) { if (sflags & Style_MouseOver) {
surfaceFlags |= Is_Highlight; surfaceFlags |= Is_Highlight;
surfaceFlags |= Highlight_Bottom|Highlight_Left|Highlight_Right; surfaceFlags |= Highlight_Bottom|Highlight_Left|Highlight_Right;
} }
@ -4000,64 +3994,6 @@ bool LipstikStyle::objectEventHandler( TQStyleControlElementData ceData, Control
return false; return false;
} }
//Hover highlight... use tqt_cast to check if the widget inheits one of the classes.
if ( ::tqqt_cast<TQPushButton*>(obj) || ::tqqt_cast<TQComboBox*>(obj) ||
::tqqt_cast<TQSpinWidget*>(obj) || ::tqqt_cast<TQCheckBox*>(obj) ||
::tqqt_cast<TQRadioButton*>(obj) || ::tqqt_cast<TQToolButton*>(obj) ||
::tqqt_cast<TQSlider*>(obj) || ::tqqt_cast<TQScrollBar*>(obj) ||
obj->inherits(TQDOCKWINDOWHANDLE_OBJECT_NAME_STRING) || obj->inherits(TQSPLITTERHANDLE_OBJECT_NAME_STRING) )
{
if ((ev->type() == TQEvent::Enter) && TQT_TQWIDGET(obj)->isEnabled())
{
TQWidget* button = TQT_TQWIDGET(obj);
hoverWidget = button;
button->repaint(false);
}
else if ((ev->type() == TQEvent::Leave) && (TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(hoverWidget)) )
{
TQWidget* button = TQT_TQWIDGET(obj);
hoverWidget = 0;
button->repaint(false);
}
return false;
}
if ( ::tqqt_cast<TQTabBar*>(obj) ) {
if ((ev->type() == TQEvent::Enter) && TQT_TQWIDGET(obj)->isEnabled())
{
TQWidget* tabbar = TQT_TQWIDGET(obj);
hoverWidget = tabbar;
hoverTab = 0;
tabbar->repaint(false);
}
else if (ev->type() == TQEvent::MouseMove)
{
TQTabBar *tabbar = dynamic_cast<TQTabBar*>(obj);
TQMouseEvent *me = dynamic_cast<TQMouseEvent*>(ev);
if (tabbar && me) {
// avoid unnecessary repaints (which otherwise would occour on every
// MouseMove event causing high cpu load).
bool repaint = true;
TQTab *tab = tabbar->selectTab(me->pos() );
if (hoverTab == tab)
repaint = false;
hoverTab = tab;
if (repaint)
tabbar->repaint(false);
}
}
else if (ev->type() == TQEvent::Leave)
{
TQWidget* tabbar = TQT_TQWIDGET(obj);
hoverWidget = 0;
hoverTab = 0;
tabbar->repaint(false);
}
return false;
}
// Track show events for progress bars // Track show events for progress bars
if ( _animateProgressBar && ::tqqt_cast<TQProgressBar*>(obj) ) if ( _animateProgressBar && ::tqqt_cast<TQProgressBar*>(obj) )
{ {

@ -278,7 +278,6 @@ protected:
virtual bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e ); virtual bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
TQWidget* hoverWidget;
protected slots: protected slots:
void khtmlWidgetDestroyed(TQObject* w); void khtmlWidgetDestroyed(TQObject* w);
@ -340,8 +339,6 @@ private:
TQColor _defaultMenuStripeColor; TQColor _defaultMenuStripeColor;
// TQColor _arrowColor; // TQColor _arrowColor;
TQTab *hoverTab;
// track khtml widgets. // track khtml widgets.
TQMap<const TQWidget*,bool> khtmlWidgets; TQMap<const TQWidget*,bool> khtmlWidgets;

Loading…
Cancel
Save