Update for new style API

pull/1/head
Timothy Pearson 12 years ago
parent 69df35d4cf
commit 7c7632c1a5

@ -934,7 +934,7 @@ void StyleCheckStyle::slotAccelManage()
}
void StyleCheckStyle::polish(TQWidget* widget)
void StyleCheckStyle::polish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
/* Having a global view on the widget makes accel
easier to catch. However, just intruding on the main window
@ -944,49 +944,55 @@ void StyleCheckStyle::polish(TQWidget* widget)
topLevelAccelManageTimer->start(200, true);
//
// Put in order of highest occurance to maximise hit rate
if (widget->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
widget->installEventFilter(this);
}
if (widget->inherits(TQLABEL_OBJECT_NAME_STRING))
{
widget->installEventFilter(this);
}
if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) {
TQWidget *widget = reinterpret_cast<TQWidget*>(ptr);
if (widget->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
{
widget->installEventFilter(this);
}
if (widget->inherits(TQMAINWINDOW_OBJECT_NAME_STRING) || widget->inherits(TQDIALOG_OBJECT_NAME_STRING) )
{
watcher->addWatched(widget);
// Put in order of highest occurance to maximise hit rate
if (widget->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
installObjectEventHandler(ceData, elementFlags, ptr, this);
}
if (widget->inherits(TQLABEL_OBJECT_NAME_STRING))
{
installObjectEventHandler(ceData, elementFlags, ptr, this);
}
if (widget->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
{
installObjectEventHandler(ceData, elementFlags, ptr, this);
}
if (widget->inherits(TQMAINWINDOW_OBJECT_NAME_STRING) || widget->inherits(TQDIALOG_OBJECT_NAME_STRING) )
{
watcher->addWatched(widget);
}
}
KStyle::polish( widget );
KStyle::polish( ceData, elementFlags, ptr );
}
void StyleCheckStyle::unPolish(TQWidget* widget)
void StyleCheckStyle::unPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
if (widget->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
widget->removeEventFilter(this);
}
if (widget->inherits(TQLABEL_OBJECT_NAME_STRING))
{
widget->removeEventFilter(this);
}
if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) {
TQWidget *widget = reinterpret_cast<TQWidget*>(ptr);
if (widget->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
{
widget->removeEventFilter(this);
if (widget->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
removeObjectEventHandler(ceData, elementFlags, ptr, this);
}
if (widget->inherits(TQLABEL_OBJECT_NAME_STRING))
{
removeObjectEventHandler(ceData, elementFlags, ptr, this);
}
if (widget->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
{
removeObjectEventHandler(ceData, elementFlags, ptr, this);
}
}
KStyle::unPolish( widget );
KStyle::unPolish( ceData, elementFlags, ptr );
}
@ -994,6 +1000,8 @@ void StyleCheckStyle::unPolish(TQWidget* widget)
// This function draws primitive elements as well as their masks.
void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@ -1161,7 +1169,7 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
// Small hack to ensure scrollbar gradients are drawn the right way.
flags ^= Style_Horizontal;
drawPrimitive(PE_ButtonBevel, p, r, cg, flags | Style_Enabled | Style_Raised);
drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, flags | Style_Enabled | Style_Raised);
// Draw a scrollbar riffle (note direction after above changes)
// HighColor & Default scrollbar
@ -1225,21 +1233,21 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
case PE_ScrollBarAddLine: {
drawPrimitive( PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) |
drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) |
((flags & Style_Down) ? Style_Down : Style_Raised) );
drawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown),
p, r, cg, flags );
p, ceData, elementFlags, r, cg, flags );
break;
}
case PE_ScrollBarSubLine: {
drawPrimitive( PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) |
drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) |
((flags & Style_Down) ? Style_Down : Style_Raised) );
drawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp),
p, r, cg, flags );
p, ceData, elementFlags, r, cg, flags );
break;
}
@ -1392,7 +1400,7 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
case PE_WindowFrame:
case PE_PanelLineEdit: {
bool sunken = flags & Style_Sunken;
int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth)
int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags)
: opt.lineWidth();
if (lw == 2)
{
@ -1415,7 +1423,7 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
p->drawLine(x+1, y+1, x+1, y2-1);
p->setPen(oldPen);
} else
KStyle::tqdrawPrimitive(pe, p, r, cg, flags, opt);
KStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt);
break;
}
@ -1502,8 +1510,8 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
p->save();
if ( flags & Style_Down )
p->translate( pixelMetric( PM_ButtonShiftHorizontal ),
pixelMetric( PM_ButtonShiftVertical ) );
p->translate( pixelMetric( PM_ButtonShiftHorizontal, ceData, elementFlags ),
pixelMetric( PM_ButtonShiftVertical, ceData, elementFlags ) );
if ( flags & Style_Enabled ) {
a.translate( r.x() + r.width() / 2, r.y() + r.height() / 2 );
@ -1520,7 +1528,7 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
p->restore();
} else
KStyle::tqdrawPrimitive( pe, p, r, cg, flags, opt );
KStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
}
}
}
@ -1528,11 +1536,13 @@ void StyleCheckStyle::drawPrimitive( PrimitiveElement pe,
void StyleCheckStyle::drawKStylePrimitive( KStylePrimitive kpe,
TQPainter* p,
const TQWidget* widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
const TQStyleOption &opt ) const
const TQStyleOption &opt,
const TQWidget* widget ) const
{
switch ( kpe )
{
@ -1700,18 +1710,20 @@ void StyleCheckStyle::drawKStylePrimitive( KStylePrimitive kpe,
}
default:
KStyle::drawKStylePrimitive( kpe, p, widget, r, cg, flags, opt);
KStyle::drawKStylePrimitive( kpe, p, ceData, elementFlags, r, cg, flags, opt, widget);
}
}
void StyleCheckStyle::drawControl( ControlElement element,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
const TQStyleOption& opt ) const
const TQStyleOption& opt,
const TQWidget *widget ) const
{
switch (element)
{
@ -1727,14 +1739,14 @@ void StyleCheckStyle::drawControl( ControlElement element,
if ( btnDefault || button->autoDefault() ) {
// Compensate for default indicator
static int di = pixelMetric( PM_ButtonDefaultIndicator );
static int di = pixelMetric( PM_ButtonDefaultIndicator, ceData, elementFlags );
br.addCoords( di, di, -di, -di );
}
if ( btnDefault )
drawPrimitive( PE_ButtonDefault, p, r, cg, flags );
drawPrimitive( PE_ButtonDefault, p, ceData, elementFlags, r, cg, flags );
drawPrimitive( PE_ButtonCommand, p, br, cg, flags );
drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, br, cg, flags );
break;
}
@ -1750,15 +1762,15 @@ void StyleCheckStyle::drawControl( ControlElement element,
// Shift button contents if pushed.
if ( active ) {
x += pixelMetric(PM_ButtonShiftHorizontal, widget);
y += pixelMetric(PM_ButtonShiftVertical, widget);
x += pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget);
y += pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget);
flags |= Style_Sunken;
}
// Does the button have a popup menu?
if ( button->isMenuButton() ) {
int dx = pixelMetric( PM_MenuButtonIndicator, widget );
drawPrimitive( PE_ArrowDown, p, TQRect(x + w - dx - 2, y + 2, dx, h - 4),
int dx = pixelMetric( PM_MenuButtonIndicator, ceData, elementFlags, widget );
drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, TQRect(x + w - dx - 2, y + 2, dx, h - 4),
cg, flags, opt );
w -= dx;
}
@ -1811,8 +1823,8 @@ void StyleCheckStyle::drawControl( ControlElement element,
// Draw a focus rect if the button has focus
if ( flags & Style_HasFocus )
drawPrimitive( PE_FocusRect, p,
TQStyle::visualRect(subRect(SR_PushButtonFocusRect, widget), widget),
drawPrimitive( PE_FocusRect, p, ceData, elementFlags,
TQStyle::visualRect(subRect(SR_PushButtonFocusRect, ceData, elementFlags, widget), ceData, elementFlags),
cg, flags );
break;
}
@ -1828,7 +1840,7 @@ void StyleCheckStyle::drawControl( ControlElement element,
TQRect tr = r;
if ( t->identifier() == tb->currentTab() )
tr.setBottom( tr.bottom() -
pixelMetric( TQStyle::PM_DefaultFrameWidth, tb ) );
pixelMetric( TQStyle::PM_DefaultFrameWidth, ceData, elementFlags, tb ) );
TQValueVector<StyleGuideViolation> violations = checkTitleStyle(t->text(), ShortTitle, HasAccels);
renderViolations(violations, p, r, AlignCenter |ShowPrefix, t->text());
@ -1837,7 +1849,7 @@ void StyleCheckStyle::drawControl( ControlElement element,
flags & Style_Enabled, 0, removedXX(stripAccelViolations(t->text())) );
if ( (flags & Style_HasFocus) && !t->text().isEmpty() )
drawPrimitive( PE_FocusRect, p, r, cg );
drawPrimitive( PE_FocusRect, p, ceData, elementFlags, r, cg );
break;
}
@ -1857,8 +1869,8 @@ void StyleCheckStyle::drawControl( ControlElement element,
if (flags & Style_HasFocus)
{
TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, widget), widget);
drawPrimitive(PE_FocusRect, p, fr, cg, flags);
TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
break;
}
@ -1878,8 +1890,8 @@ void StyleCheckStyle::drawControl( ControlElement element,
if (flags & Style_HasFocus)
{
TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, widget), widget);
drawPrimitive(PE_FocusRect, p, fr, cg, flags);
TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
break;
}
@ -1933,7 +1945,7 @@ void StyleCheckStyle::drawControl( ControlElement element,
bool enabled = mi->isEnabled();
bool checkable = popupmenu->isCheckable();
bool active = flags & Style_Active;
bool etchtext = styleHint( SH_EtchDisabledText );
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
bool reverse = TQApplication::reverseLayout();
int x, y, w, h;
r.rect( &x, &y, &w, &h );
@ -1998,7 +2010,7 @@ void StyleCheckStyle::drawControl( ControlElement element,
SFlags cflags = Style_Default;
cflags |= active ? Style_Enabled : Style_On;
drawPrimitive( PE_CheckMark, p, TQRect( cx + itemFrame, y + itemFrame,
drawPrimitive( PE_CheckMark, p, ceData, elementFlags, TQRect( cx + itemFrame, y + itemFrame,
checkcol - itemFrame*2, h - itemFrame*2), cg, cflags );
}
@ -2110,7 +2122,7 @@ void StyleCheckStyle::drawControl( ControlElement element,
// Does the menu item have a submenu?
if ( mi->popup() ) {
PrimitiveElement arrow = reverse ? PE_ArrowLeft : PE_ArrowRight;
int dim = pixelMetric(PM_MenuButtonIndicator);
int dim = pixelMetric(PM_MenuButtonIndicator, ceData, elementFlags);
TQRect vr = visualRect( TQRect( x + w - arrowHMargin - 2*itemFrame - dim,
y + h / 2 - dim / 2, dim, dim), r );
@ -2122,9 +2134,9 @@ void StyleCheckStyle::drawControl( ControlElement element,
TQColorGroup g2( discol, cg.highlight(), white, white,
enabled ? white : discol, discol, white );
drawPrimitive( arrow, p, vr, g2, Style_Enabled );
drawPrimitive( arrow, p, ceData, elementFlags, vr, g2, Style_Enabled );
} else
drawPrimitive( arrow, p, vr, cg,
drawPrimitive( arrow, p, ceData, elementFlags, vr, cg,
enabled ? Style_Enabled : Style_Default );
}
break;
@ -2164,16 +2176,18 @@ void StyleCheckStyle::drawControl( ControlElement element,
}
default:
KStyle::drawControl(element, p, widget, r, cg, flags, opt);
KStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget);
}
}
void StyleCheckStyle::drawControlMask( ControlElement element,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQStyleOption& opt ) const
const TQStyleOption& opt,
const TQWidget *widget ) const
{
switch (element)
{
@ -2190,20 +2204,22 @@ void StyleCheckStyle::drawControlMask( ControlElement element,
}
default:
KStyle::drawControlMask(element, p, widget, r, opt);
KStyle::drawControlMask(element, p, ceData, elementFlags, r, opt, widget);
}
}
void StyleCheckStyle::drawComplexControl( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
SCFlags controls,
SCFlags active,
const TQStyleOption& opt ) const
SCFlags controls,
SCFlags active,
const TQStyleOption& opt,
const TQWidget *widget ) const
{
switch(control)
{
@ -2247,8 +2263,8 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
// Get the button bounding box
TQRect ar = TQStyle::visualRect(
querySubControlMetrics(CC_ComboBox, widget, SC_ComboBoxArrow),
widget );
querySubControlMetrics(CC_ComboBox, ceData, elementFlags, SC_ComboBoxArrow, TQStyleOption::Default, widget),
ceData, elementFlags );
// Are we enabled?
if ( widget->isEnabled() )
@ -2258,7 +2274,7 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
if ( active & Style_Sunken )
flags |= Style_Sunken;
drawPrimitive(PE_ArrowDown, p, ar, cg, flags);
drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, ar, cg, flags);
}
// Draw an edit field if required
@ -2266,8 +2282,8 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
{
const TQComboBox * cb = (const TQComboBox *) widget;
TQRect re = TQStyle::visualRect(
querySubControlMetrics( CC_ComboBox, widget,
SC_ComboBoxEditField), widget );
querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
SC_ComboBoxEditField, TQStyleOption::Default, widget), ceData, elementFlags );
// Draw the indent
if (cb->editable()) {
@ -2290,9 +2306,9 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
cg.brush( TQColorGroup::Highlight ) );
TQRect re = TQStyle::visualRect(
subRect(SR_ComboBoxFocusRect, cb), widget);
subRect(SR_ComboBoxFocusRect, ceData, elementFlags, cb), ceData, elementFlags);
drawPrimitive( PE_FocusRect, p, re, cg,
drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg,
Style_FocusAtBorder, TQStyleOption(cg.highlight()));
}
}
@ -2305,8 +2321,8 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
const TQToolButton *toolbutton = (const TQToolButton *) widget;
TQRect button, menuarea;
button = querySubControlMetrics(control, widget, SC_ToolButton, opt);
menuarea = querySubControlMetrics(control, widget, SC_ToolButtonMenu, opt);
button = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButton, opt, widget);
menuarea = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButtonMenu, opt, widget);
SFlags bflags = flags,
mflags = flags;
@ -2320,7 +2336,7 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
{
// If we're pressed, on, or raised...
if (bflags & (Style_Down | Style_On | Style_Raised))
drawPrimitive(PE_ButtonTool, p, button, cg, bflags, opt);
drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, cg, bflags, opt);
// Check whether to draw a background pixmap
else if ( toolbutton->parentWidget() &&
@ -2362,14 +2378,14 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
if (controls & SC_ToolButtonMenu)
{
if (mflags & (Style_Down | Style_On | Style_Raised))
drawPrimitive(PE_ButtonDropDown, p, menuarea, cg, mflags, opt);
drawPrimitive(PE_ArrowDown, p, menuarea, cg, mflags, opt);
drawPrimitive(PE_ButtonDropDown, p, ceData, elementFlags, menuarea, cg, mflags, opt);
drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, menuarea, cg, mflags, opt);
}
if (toolbutton->hasFocus() && !toolbutton->focusProxy()) {
TQRect fr = toolbutton->rect();
fr.addCoords(3, 3, -3, -3);
drawPrimitive(PE_FocusRect, p, fr, cg);
drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg);
}
break;
@ -2377,8 +2393,8 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
default:
KStyle::drawComplexControl(control, p, widget,
r, cg, flags, controls, active, opt);
KStyle::drawComplexControl(control, p, ceData, elementFlags,
r, cg, flags, controls, active, opt, widget);
break;
}
}
@ -2386,9 +2402,11 @@ void StyleCheckStyle::drawComplexControl( ComplexControl control,
void StyleCheckStyle::drawComplexControlMask( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
const TQStyleControlElementData ceData,
const ControlElementFlags elementFlags,
const TQRect &r,
const TQStyleOption& opt ) const
const TQStyleOption& opt,
const TQWidget *widget ) const
{
switch (control)
{
@ -2406,12 +2424,12 @@ void StyleCheckStyle::drawComplexControlMask( ComplexControl control,
}
default:
KStyle::drawComplexControlMask(control, p, widget, r, opt);
KStyle::drawComplexControlMask(control, p, ceData, elementFlags, r, opt, widget);
}
}
TQRect StyleCheckStyle::subRect(SubRect r, const TQWidget *widget) const
TQRect StyleCheckStyle::subRect(SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget) const
{
// We want the focus rect for buttons to be adjusted from
// the TQt3 defaults to be similar to TQt 2's defaults.
@ -2422,11 +2440,11 @@ TQRect StyleCheckStyle::subRect(SubRect r, const TQWidget *widget) const
int dbw1 = 0, dbw2 = 0;
if (button->isDefault() || button->autoDefault()) {
dbw1 = pixelMetric(PM_ButtonDefaultIndicator, widget);
dbw1 = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
dbw2 = dbw1 * 2;
}
int dfw1 = pixelMetric(PM_DefaultFrameWidth, widget) * 2,
int dfw1 = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget) * 2,
dfw2 = dfw1 * 2;
return TQRect(wrect.x() + dfw1 + dbw1 + 1,
@ -2434,11 +2452,11 @@ TQRect StyleCheckStyle::subRect(SubRect r, const TQWidget *widget) const
wrect.width() - dfw2 - dbw2 - 1,
wrect.height() - dfw2 - dbw2 - 1);
} else
return KStyle::subRect(r, widget);
return KStyle::subRect(r, ceData, elementFlags, widget);
}
int StyleCheckStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
int StyleCheckStyle::pixelMetric(PixelMetric m, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const
{
switch(m)
{
@ -2465,15 +2483,17 @@ int StyleCheckStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
}
default:
return KStyle::pixelMetric(m, widget);
return KStyle::pixelMetric(m, ceData, elementFlags, widget);
}
}
TQSize StyleCheckStyle::sizeFromContents( ContentsType contents,
const TQWidget* widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQSize &contentSize,
const TQStyleOption& opt ) const
const TQStyleOption& opt,
const TQWidget* widget ) const
{
switch (contents)
{
@ -2483,8 +2503,8 @@ TQSize StyleCheckStyle::sizeFromContents( ContentsType contents,
const TQPushButton* button = (const TQPushButton*) widget;
int w = contentSize.width();
int h = contentSize.height();
int bm = pixelMetric( PM_ButtonMargin, widget );
int fw = pixelMetric( PM_DefaultFrameWidth, widget ) * 2;
int bm = pixelMetric( PM_ButtonMargin, ceData, elementFlags, widget );
int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget ) * 2;
w += bm + fw + 6; // ### Add 6 to make way for bold font.
h += bm + fw;
@ -2495,7 +2515,7 @@ TQSize StyleCheckStyle::sizeFromContents( ContentsType contents,
w = 80;
// Compensate for default indicator
int di = pixelMetric( PM_ButtonDefaultIndicator );
int di = pixelMetric( PM_ButtonDefaultIndicator, ceData, elementFlags );
w += di * 2;
h += di * 2;
}
@ -2566,15 +2586,17 @@ TQSize StyleCheckStyle::sizeFromContents( ContentsType contents,
default:
return KStyle::tqsizeFromContents( contents, widget, contentSize, opt );
return KStyle::sizeFromContents( contents, ceData, elementFlags, contentSize, opt, widget );
}
}
// Fix TQt's wacky image alignment
TQPixmap StyleCheckStyle::stylePixmap(StylePixmap stylepixmap,
const TQWidget* widget,
const TQStyleOption& opt) const
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQStyleOption& opt,
const TQWidget* widget) const
{
switch (stylepixmap) {
case SP_TitleBarMinButton:
@ -2585,166 +2607,169 @@ TQPixmap StyleCheckStyle::stylePixmap(StylePixmap stylepixmap,
break;
}
return KStyle::stylePixmap(stylepixmap, widget, opt);
return KStyle::stylePixmap(stylepixmap, ceData, elementFlags, opt, widget);
}
bool StyleCheckStyle::eventFilter( TQObject *object, TQEvent *event )
bool StyleCheckStyle::objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *event )
{
if (KStyle::eventFilter( object, event ))
if (KStyle::objectEventHandler( ceData, elementFlags, source, event ))
return true;
if (ceData.widgetObjectTypes.contains(TQOBJECT_OBJECT_NAME_STRING)) {
TQObject* object = reinterpret_cast<TQObject*>(source);
// Handle push button hover effects.
TQPushButton* button = dynamic_cast<TQPushButton*>(object);
if ( button )
{
if ( (event->type() == TQEvent::Enter) &&
(button->isEnabled()) ) {
hoverWidget = button;
button->repaint( false );
}
else if ( (event->type() == TQEvent::Leave) &&
(TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(hoverWidget)) ) {
hoverWidget = 0L;
button->repaint( false );
}
}
if ( event->type() == TQEvent::Paint && object->inherits(TQLABEL_OBJECT_NAME_STRING) )
{
TQLabel* lb = static_cast<TQLabel*>(TQT_TQWIDGET(object));
if (lb->pixmap() || lb->picture() || lb->movie() || (lb->textFormat() == TQt::RichText) ||
(lb->textFormat() == TQt::AutoText && TQStyleSheet::mightBeRichText(lb->text())) )
{
return false;
}
TQPainter p(lb);
TQRect cr = lb->contentsRect();
int m = lb->indent();
if ( m < 0 && lb->frameWidth() ) // no indent, but we do have a frame
m = lb->fontMetrics().width('x') / 2 - lb->margin();
if ( m > 0 )
{
int hAlign = TQApplication::horizontalAlignment( lb->alignment() );
if ( hAlign & AlignLeft )
cr.setLeft( cr.left() + m );
if ( hAlign & AlignRight )
cr.setRight( cr.right() - m );
if ( lb->alignment() & AlignTop )
cr.setTop( cr.top() + m );
if ( lb->alignment() & AlignBottom )
cr.setBottom( cr.bottom() - m );
}
TQValueVector<StyleGuideViolation> violations;
if (TQCString(lb->name()) == "KJanusWidgetTitleLabel" || lb->font().bold())
// Handle push button hover effects.
TQPushButton* button = dynamic_cast<TQPushButton*>(object);
if ( button )
{
// We're a page title
violations = checkTitleStyle(lb->text(), LongTitle, lb->buddy() ? HasAccels : NoAccels);
}
else
{
// We're probably, maybe, not a page title label
// Further checks might be needed, depending on how often this comes up in the wild
violations = checkSentenceStyle(lb->text(), lb->buddy() ? BuddiedWidget: BuddylessWidget, lb->buddy() ? HasAccels : NoAccels);
}
if (lb->buddy())
{
renderViolations(violations, &p, cr,lb->alignment() | ShowPrefix, lb->text() );
// ordinary text or pixmap label
drawItem( &p, cr, lb->alignment(), lb->colorGroup(), lb->isEnabled(),
0, removedXX(stripAccelViolations(lb->text())) );
}
else
{
renderViolations(violations, &p, cr,lb->alignment(), lb->text() );
// ordinary text or pixmap label
drawItem( &p, cr, lb->alignment(), lb->colorGroup(), lb->isEnabled(),
0, removedXX(stripAccelViolations(lb->text())) );
if ( (event->type() == TQEvent::Enter) &&
(button->isEnabled()) ) {
hoverWidget = button;
button->repaint( false );
}
else if ( (event->type() == TQEvent::Leave) &&
(TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(hoverWidget)) ) {
hoverWidget = 0L;
button->repaint( false );
}
}
p.end();
return true;
}
if ( event->type() == TQEvent::Paint && object->inherits(TQGROUPBOX_OBJECT_NAME_STRING) )
{
TQPaintEvent * pevent = TQT_TQPAINTEVENT(event);
TQGroupBox* gb = static_cast<TQGroupBox*>(TQT_TQWIDGET(object));
bool nestedGroupBox = false;
TQString stripped_title = removedXX(stripAccelViolations(gb->title()));
//Walk parent hierarchy to check whether any are groupboxes too..
TQObject* parent = TQT_TQOBJECT(gb);
// GCC suggested parentheses around assignment used as truth value
// I suggested that it could eat me. GCC won.
while ( (parent = parent->parent()) )
if ( event->type() == TQEvent::Paint && object->inherits(TQLABEL_OBJECT_NAME_STRING) )
{
if (parent->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
TQLabel* lb = static_cast<TQLabel*>(TQT_TQWIDGET(object));
if (lb->pixmap() || lb->picture() || lb->movie() || (lb->textFormat() == TQt::RichText) ||
(lb->textFormat() == TQt::AutoText && TQStyleSheet::mightBeRichText(lb->text())) )
{
nestedGroupBox = true;
break;
return false;
}
TQPainter p(lb);
TQRect cr = lb->contentsRect();
int m = lb->indent();
if ( m < 0 && lb->frameWidth() ) // no indent, but we do have a frame
m = lb->fontMetrics().width('x') / 2 - lb->margin();
if ( m > 0 )
{
int hAlign = TQApplication::horizontalAlignment( lb->alignment() );
if ( hAlign & AlignLeft )
cr.setLeft( cr.left() + m );
if ( hAlign & AlignRight )
cr.setRight( cr.right() - m );
if ( lb->alignment() & AlignTop )
cr.setTop( cr.top() + m );
if ( lb->alignment() & AlignBottom )
cr.setBottom( cr.bottom() - m );
}
TQValueVector<StyleGuideViolation> violations;
if (TQCString(lb->name()) == "KJanusWidgetTitleLabel" || lb->font().bold())
{
// We're a page title
violations = checkTitleStyle(lb->text(), LongTitle, lb->buddy() ? HasAccels : NoAccels);
}
else
{
// We're probably, maybe, not a page title label
// Further checks might be needed, depending on how often this comes up in the wild
violations = checkSentenceStyle(lb->text(), lb->buddy() ? BuddiedWidget: BuddylessWidget, lb->buddy() ? HasAccels : NoAccels);
}
if (lb->buddy())
{
renderViolations(violations, &p, cr,lb->alignment() | ShowPrefix, lb->text() );
// ordinary text or pixmap label
drawItem( &p, cr, lb->alignment(), lb->colorGroup(), lb->isEnabled(),
0, removedXX(stripAccelViolations(lb->text())) );
}
else
{
renderViolations(violations, &p, cr,lb->alignment(), lb->text() );
// ordinary text or pixmap label
drawItem( &p, cr, lb->alignment(), lb->colorGroup(), lb->isEnabled(),
0, removedXX(stripAccelViolations(lb->text())) );
}
p.end();
return true;
}
TQPainter paint( gb );
if ( stripped_title.length() )
if ( event->type() == TQEvent::Paint && object->inherits(TQGROUPBOX_OBJECT_NAME_STRING) )
{
// draw title
TQFontMetrics fm = paint.fontMetrics();
int h = fm.height();
int tw = fm.width( stripped_title, stripped_title.length() ) + 2*fm.width(TQChar(' '));
int x;
if ( gb->alignment() & AlignHCenter ) // center alignment
x = gb->frameRect().width()/2 - tw/2;
else if ( gb->alignment() & AlignRight ) // right alignment
x = gb->frameRect().width() - tw - 8;
else if ( gb->alignment() & AlignLeft ) // left alignment
x = 8;
else
{ // auto align
if( TQApplication::reverseLayout() )
TQPaintEvent * pevent = TQT_TQPAINTEVENT(event);
TQGroupBox* gb = static_cast<TQGroupBox*>(TQT_TQWIDGET(object));
bool nestedGroupBox = false;
TQString stripped_title = removedXX(stripAccelViolations(gb->title()));
//Walk parent hierarchy to check whether any are groupboxes too..
TQObject* parent = TQT_TQOBJECT(gb);
// GCC suggested parentheses around assignment used as truth value
// I suggested that it could eat me. GCC won.
while ( (parent = parent->parent()) )
{
if (parent->inherits(TQGROUPBOX_OBJECT_NAME_STRING))
{
nestedGroupBox = true;
break;
}
}
TQPainter paint( gb );
if ( stripped_title.length() )
{
// draw title
TQFontMetrics fm = paint.fontMetrics();
int h = fm.height();
int tw = fm.width( stripped_title, stripped_title.length() ) + 2*fm.width(TQChar(' '));
int x;
if ( gb->alignment() & AlignHCenter ) // center alignment
x = gb->frameRect().width()/2 - tw/2;
else if ( gb->alignment() & AlignRight ) // right alignment
x = gb->frameRect().width() - tw - 8;
else
else if ( gb->alignment() & AlignLeft ) // left alignment
x = 8;
else
{ // auto align
if( TQApplication::reverseLayout() )
x = gb->frameRect().width() - tw - 8;
else
x = 8;
}
TQRect r( x, 0, tw, h );
TQValueVector<StyleGuideViolation> violations = checkTitleStyle( gb->title(), ShortTitle, HasAccels );
renderViolations( violations, &paint, r, AlignCenter | ShowPrefix, gb->title() );
drawItem(&paint, r, AlignCenter | ShowPrefix, gb->colorGroup(),
gb->isEnabled(), 0, stripped_title );
paint.setClipRegion( pevent->region().subtract( r ) );
}
TQRect r( x, 0, tw, h );
TQValueVector<StyleGuideViolation> violations = checkTitleStyle( gb->title(), ShortTitle, HasAccels );
renderViolations( violations, &paint, r, AlignCenter | ShowPrefix, gb->title() );
drawItem(&paint, r, AlignCenter | ShowPrefix, gb->colorGroup(),
gb->isEnabled(), 0, stripped_title );
paint.setClipRegion( pevent->region().subtract( r ) );
}
if (nestedGroupBox)
{
paint.save();
TQPen errorPen(TQt::red, 4, TQPen::DashDotDotLine);
paint.setPen(errorPen);
paint.drawRect( gb->frameRect() );
paint.restore();
}
else
{
tqdrawPrimitive( TQStyle::PE_GroupBoxFrame, &paint, gb->frameRect(),
gb->colorGroup(), TQStyle::Style_Default,
TQStyleOption(gb->lineWidth(), gb->midLineWidth(),
gb->frameShape(), gb->frameShadow()) );
if (nestedGroupBox)
{
paint.save();
TQPen errorPen(TQt::red, 4, TQPen::DashDotDotLine);
paint.setPen(errorPen);
paint.drawRect( gb->frameRect() );
paint.restore();
}
else
{
drawPrimitive( TQStyle::PE_GroupBoxFrame, &paint, ceData, elementFlags, gb->frameRect(),
gb->colorGroup(), TQStyle::Style_Default,
TQStyleOption(gb->lineWidth(), gb->midLineWidth(),
gb->frameShape(), gb->frameShadow()) );
}
return true; //We already drew the everything
}
return true; //We already drew the everything
}
return false;

@ -8,7 +8,7 @@
*
* Based on the KDE3 HighColor Style (version 1.0):
* Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org>
* (C) 2001-2002 Fredrik Höglund <fredrik@kde.org>
* (C) 2001-2002 Fredrik H<EFBFBD>glund <fredrik@kde.org>
*
* Drawing routines adapted from the KDE2 HCStyle,
* Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org>
@ -76,20 +76,24 @@ class StyleCheckStyle : public KStyle
StyleCheckStyle( );
virtual ~StyleCheckStyle();
void polish( TQWidget* widget );
void unPolish( TQWidget* widget );
void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void drawKStylePrimitive( KStylePrimitive kpe,
TQPainter* p,
const TQWidget* widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
const TQStyleOption& = TQStyleOption::Default ) const;
const TQStyleOption& = TQStyleOption::Default,
const TQWidget* widget = 0 ) const;
void drawPrimitive( PrimitiveElement pe,
TQPainter* p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@ -97,52 +101,62 @@ class StyleCheckStyle : public KStyle
void drawControl( ControlElement element,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
const TQStyleOption& = TQStyleOption::Default ) const;
const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawControlMask( ControlElement element,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQStyleOption& = TQStyleOption::Default ) const;
const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
SCFlags controls = SC_All,
SCFlags active = SC_None,
const TQStyleOption& = TQStyleOption::Default ) const;
const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawComplexControlMask( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
const TQStyleControlElementData ceData,
const ControlElementFlags elementFlags,
const TQRect &r,
const TQStyleOption& = TQStyleOption::Default ) const;
const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
int pixelMetric( PixelMetric m,
int pixelMetric( PixelMetric m, TQStyleControlElementData ceData, ControlElementFlags elementFlags,
const TQWidget *widget = 0 ) const;
TQSize sizeFromContents( ContentsType contents,
const TQWidget *widget,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQSize &contentSize,
const TQStyleOption& opt ) const;
const TQStyleOption& opt,
const TQWidget *widget = 0 ) const;
TQRect subRect( SubRect r,
TQRect subRect( SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags,
const TQWidget *widget ) const;
// Fix TQt3's wacky image positions
TQPixmap stylePixmap( StylePixmap stylepixmap,
const TQWidget *widget = 0,
const TQStyleOption& = TQStyleOption::Default ) const;
TQStyleControlElementData ceData, ControlElementFlags elementFlags,
const TQStyleOption& = TQStyleOption::Default, const TQWidget *widget = 0 ) const;
protected:
bool eventFilter( TQObject *object, TQEvent *event );
virtual bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
void renderGradient( TQPainter* p,
const TQRect& r,

Loading…
Cancel
Save