Darrell Anderson 12 years ago
commit 43eac4e25d

@ -41,113 +41,112 @@ MetalStyle::MetalStyle() : TQWindowsStyle() { }
/*! /*!
Reimplementation from TQStyle Reimplementation from TQStyle
*/ */
void MetalStyle::polish( TQApplication *app) void MetalStyle::applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
oldPalette = app->palette(); oldPalette = ceData.palette;
// we simply create a nice TQColorGroup with a couple of fancy // we simply create a nice TQColorGroup with a couple of fancy
// pixmaps here and apply to it all widgets // pixmaps here and apply to it all widgets
TQFont f("times", app->font().pointSize() ); TQFont f("times", ceData.font.pointSize() );
f.setBold( TRUE ); f.setBold( TRUE );
f.setItalic( TRUE ); f.setItalic( TRUE );
app->setFont( f, TRUE, "TQMenuBar"); applicationActionRequest(ceData, elementFlags, ptr, AAR_SetFont, TQStyleApplicationActionRequestData(f, TRUE, "TQMenuBar"));
app->setFont( f, TRUE, "TQPopupMenu"); applicationActionRequest(ceData, elementFlags, ptr, AAR_SetFont, TQStyleApplicationActionRequestData(f, TRUE, "TQPopupMenu"));
// TQPixmap button( stonedark_xpm );
// TQPixmap button( stonedark_xpm ); TQColor gold("#B9B9A5A54040"); //same as topgrad below
TQPixmap button( 1, 1 ); button.fill( gold );
TQColor gold("#B9B9A5A54040"); //same as topgrad below
TQPixmap button( 1, 1 ); button.fill( gold ); TQPixmap background(marble_xpm);
TQPixmap dark( 1, 1 ); dark.fill( red.dark() );
TQPixmap background(marble_xpm); TQPixmap mid( stone1_xpm );
TQPixmap dark( 1, 1 ); dark.fill( red.dark() ); TQPixmap light( stone1_xpm );//1, 1 ); light.fill( green );
TQPixmap mid( stone1_xpm );
TQPixmap light( stone1_xpm );//1, 1 ); light.fill( green ); TQPalette op = ceData.palette;
TQPalette op = app->palette(); TQColor backCol( 227,227,227 );
TQColor backCol( 227,227,227 ); // TQPalette op(white);
TQColorGroup active (op.active().foreground(),
// TQPalette op(white); TQBrush(op.active().button(),button),
TQColorGroup active (op.active().foreground(), TQBrush(op.active().light(), light),
TQBrush(op.active().button(),button), TQBrush(op.active().dark(), dark),
TQBrush(op.active().light(), light), TQBrush(op.active().mid(), mid),
TQBrush(op.active().dark(), dark), op.active().text(),
TQBrush(op.active().mid(), mid), TQt::white,
op.active().text(), op.active().base(),// TQColor(236,182,120),
TQt::white, TQBrush(backCol, background)
op.active().base(),// TQColor(236,182,120), );
TQBrush(backCol, background) active.setColor( TQColorGroup::ButtonText, TQt::white );
); active.setColor( TQColorGroup::Shadow, TQt::black );
active.setColor( TQColorGroup::ButtonText, TQt::white ); TQColorGroup disabled (op.disabled().foreground(),
active.setColor( TQColorGroup::Shadow, TQt::black ); TQBrush(op.disabled().button(),button),
TQColorGroup disabled (op.disabled().foreground(), TQBrush(op.disabled().light(), light),
TQBrush(op.disabled().button(),button), op.disabled().dark(),
TQBrush(op.disabled().light(), light), TQBrush(op.disabled().mid(), mid),
op.disabled().dark(), op.disabled().text(),
TQBrush(op.disabled().mid(), mid), TQt::white,
op.disabled().text(), op.disabled().base(),// TQColor(236,182,120),
TQt::white, TQBrush(backCol, background)
op.disabled().base(),// TQColor(236,182,120), );
TQBrush(backCol, background)
); TQPalette newPalette( active, disabled, active );
applicationActionRequest(ceData, elementFlags, ptr, AAR_SetPalette, TQStyleApplicationActionRequestData(newPalette, TRUE));
TQPalette newPalette( active, disabled, active );
app->setPalette( newPalette, TRUE );
} }
/*! /*!
Reimplementation from TQStyle Reimplementation from TQStyle
*/ */
void MetalStyle::unPolish( TQApplication *app) void MetalStyle::applicationUnPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
app->setPalette(oldPalette, TRUE); applicationActionRequest(ceData, elementFlags, ptr, AAR_SetPalette, TQStyleApplicationActionRequestData(oldPalette, TRUE));
app->setFont( app->font(), TRUE ); applicationActionRequest(ceData, elementFlags, ptr, AAR_SetFont, TQStyleApplicationActionRequestData(ceData.font, TRUE));
} }
/*! /*!
Reimplementation from TQStyle Reimplementation from TQStyle
*/ */
void MetalStyle::polish( TQWidget* w) void MetalStyle::polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
// the polish function sets some widgets to transparent mode and
// some to translate background mode in order to get the full
// benefit from the nice pixmaps in the color group.
// the polish function sets some widgets to transparent mode and if (ceData.widgetObjectTypes.contains("TQPushButton")) {
// some to translate background mode in order to get the full widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundMode, TQStyleWidgetActionRequestData(TQWidget::NoBackground));
// benefit from the nice pixmaps in the color group. return;
}
if (w->inherits("TQPushButton")){
w->setBackgroundMode( TQWidget::NoBackground ); if ( !(elementFlags & CEF_IsTopLevel) ) {
return; if ( !ceData.bgPixmap.isNull() ) {
} widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundOrigin, TQStyleWidgetActionRequestData(TQWidget::WindowOrigin));
}
if ( !w->isTopLevel() ) { }
if ( w->backgroundPixmap() )
w->setBackgroundOrigin( TQWidget::WindowOrigin );
}
} }
void MetalStyle::unPolish( TQWidget* w) void MetalStyle::unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
// the polish function sets some widgets to transparent mode and
// the polish function sets some widgets to transparent mode and // some to translate background mode in order to get the full
// some to translate background mode in order to get the full // benefit from the nice pixmaps in the color group.
// benefit from the nice pixmaps in the color group.
if (ceData.widgetObjectTypes.contains("TQPushButton")) {
if (w->inherits("TQPushButton")){ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundMode, TQStyleWidgetActionRequestData(TQWidget::PaletteButton));
w->setBackgroundMode( TQWidget::PaletteButton ); return;
return; }
} if ( !(elementFlags & CEF_IsTopLevel) ) {
if ( !w->isTopLevel() ) { if ( !ceData.bgPixmap.isNull() ) {
if ( w->backgroundPixmap() ) widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundOrigin, TQStyleWidgetActionRequestData(TQWidget::WidgetOrigin));
w->setBackgroundOrigin( TQWidget::WidgetOrigin ); }
} }
} }
void MetalStyle::drawPrimitive( PrimitiveElement pe, void MetalStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p, TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags flags, const TQStyleOption& opt ) const SFlags flags, const TQStyleOption& opt ) const
@ -170,13 +169,13 @@ void MetalStyle::drawPrimitive( PrimitiveElement pe,
drawMetalButton( p, r.x(), r.y(), r.width(), r.height(), drawMetalButton( p, r.x(), r.y(), r.width(), r.height(),
flags & Style_Down, !( flags & Style_Horizontal ) ); flags & Style_Down, !( flags & Style_Horizontal ) );
drawPrimitive( (flags & Style_Horizontal) ? PE_ArrowRight :PE_ArrowDown, drawPrimitive( (flags & Style_Horizontal) ? PE_ArrowRight :PE_ArrowDown,
p, r, cg, flags, opt ); p, ceData, elementFlags, r, cg, flags, opt );
break; break;
case PE_ScrollBarSubLine: case PE_ScrollBarSubLine:
drawMetalButton( p, r.x(), r.y(), r.width(), r.height(), drawMetalButton( p, r.x(), r.y(), r.width(), r.height(),
flags & Style_Down, !( flags & Style_Horizontal ) ); flags & Style_Down, !( flags & Style_Horizontal ) );
drawPrimitive( (flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp, drawPrimitive( (flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp,
p, r, cg, flags, opt ); p, ceData, elementFlags, r, cg, flags, opt );
break; break;
@ -185,24 +184,24 @@ void MetalStyle::drawPrimitive( PrimitiveElement pe,
flags & Style_Horizontal ); flags & Style_Horizontal );
break; break;
default: default:
TQWindowsStyle::drawPrimitive( pe, p, r, cg, flags, opt ); TQWindowsStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break; break;
} }
} }
void MetalStyle::drawControl( ControlElement element, void MetalStyle::drawControl( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how, SFlags how,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch( element ) { switch( element ) {
case CE_PushButton: case CE_PushButton:
{ {
const TQPushButton *btn;
btn = (const TQPushButton*)widget;
int x1, y1, x2, y2; int x1, y1, x2, y2;
r.coords( &x1, &y1, &x2, &y2 ); r.coords( &x1, &y1, &x2, &y2 );
@ -212,14 +211,14 @@ void MetalStyle::drawControl( ControlElement element,
TQBrush fill; TQBrush fill;
if ( btn->isDown() ) if ( elementFlags & CEF_IsDown )
fill = cg.brush( TQColorGroup::Mid ); fill = cg.brush( TQColorGroup::Mid );
else if ( btn->isOn() ) else if ( elementFlags & CEF_IsOn )
fill = TQBrush( cg.mid(), Dense4Pattern ); fill = TQBrush( cg.mid(), Dense4Pattern );
else else
fill = cg.brush( TQColorGroup::Button ); fill = cg.brush( TQColorGroup::Button );
if ( btn->isDefault() ) { if ( elementFlags & CEF_IsDefault ) {
TQPointArray a; TQPointArray a;
a.setPoints( 9, a.setPoints( 9,
x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1, x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1,
@ -232,23 +231,23 @@ void MetalStyle::drawControl( ControlElement element,
y2 -= 2; y2 -= 2;
} }
SFlags flags = Style_Default; SFlags flags = Style_Default;
if ( btn->isOn() ) if ( elementFlags & CEF_IsOn )
flags |= Style_On; flags |= Style_On;
if ( btn->isDown() ) if ( elementFlags & CEF_IsDown )
flags |= Style_Down; flags |= Style_Down;
if ( !btn->isFlat() && !btn->isDown() ) if ( !(elementFlags & CEF_IsFlat) && !(elementFlags & CEF_IsDown) )
flags |= Style_Raised; flags |= Style_Raised;
drawPrimitive( PE_ButtonCommand, p, drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags,
TQRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1), TQRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1),
cg, flags, opt ); cg, flags, opt );
if ( btn->isMenuButton() ) { if ( (elementFlags & CEF_IsMenuWidget) ) {
flags = Style_Default; flags = Style_Default;
if ( btn->isEnabled() ) if ( elementFlags & CEF_IsEnabled )
flags |= Style_Enabled; flags |= Style_Enabled;
int dx = ( y1 - y2 - 4 ) / 3; int dx = ( y1 - y2 - 4 ) / 3;
drawPrimitive( PE_ArrowDown, p, drawPrimitive( PE_ArrowDown, p, ceData, elementFlags,
TQRect(x2 - dx, dx, y1, y2 - y1), TQRect(x2 - dx, dx, y1, y2 - y1),
cg, flags, opt ); cg, flags, opt );
} }
@ -258,8 +257,6 @@ void MetalStyle::drawControl( ControlElement element,
} }
case CE_PushButtonLabel: case CE_PushButtonLabel:
{ {
const TQPushButton *btn;
btn = (const TQPushButton*)widget;
int x, y, w, h; int x, y, w, h;
r.rect( &x, &y, &w, &h ); r.rect( &x, &y, &w, &h );
@ -267,9 +264,9 @@ void MetalStyle::drawControl( ControlElement element,
r.coords( &x1, &y1, &x2, &y2 ); r.coords( &x1, &y1, &x2, &y2 );
int dx = 0; int dx = 0;
int dy = 0; int dy = 0;
if ( btn->isMenuButton() ) if ( (elementFlags & CEF_IsMenuWidget) )
dx = ( y2 - y1 ) / 3; dx = ( y2 - y1 ) / 3;
if ( btn->isOn() || btn->isDown() ) { if ( (elementFlags & CEF_IsOn) || (elementFlags & CEF_IsDown) ) {
dx--; dx--;
dy--; dy--;
} }
@ -281,64 +278,62 @@ void MetalStyle::drawControl( ControlElement element,
h -= 4; h -= 4;
drawItem( p, TQRect( x, y, w, h ), drawItem( p, TQRect( x, y, w, h ),
AlignCenter|ShowPrefix, AlignCenter|ShowPrefix,
cg, btn->isEnabled(), cg, (elementFlags & CEF_IsEnabled),
btn->pixmap(), btn->text(), -1, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text, -1,
(btn->isDown() || btn->isOn())? &cg.brightText() : &cg.buttonText() ); ((elementFlags & CEF_IsDown) || (elementFlags & CEF_IsOn))? &cg.brightText() : &cg.buttonText() );
if ( dx || dy ) if ( dx || dy )
p->translate( -dx, -dy ); p->translate( -dx, -dy );
break; break;
} }
default: default:
TQWindowsStyle::drawControl( element, p, widget, r, cg, how, opt ); TQWindowsStyle::drawControl( element, p, ceData, elementFlags, r, cg, how, opt, widget );
break; break;
} }
} }
void MetalStyle::drawComplexControl( ComplexControl cc, void MetalStyle::drawComplexControl( ComplexControl cc,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how, SFlags how,
SCFlags sub, SCFlags sub,
SCFlags subActive, SCFlags subActive,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch ( cc ) { switch ( cc ) {
case CC_Slider: case CC_Slider:
{ {
const TQSlider *slider = ( const TQSlider* ) widget; TQRect handle = querySubControlMetrics( CC_Slider, ceData, elementFlags,
TQRect handle = querySubControlMetrics( CC_Slider, widget, SC_SliderHandle, opt, widget);
SC_SliderHandle, opt);
if ( sub & SC_SliderGroove ) if ( sub & SC_SliderGroove )
TQWindowsStyle::drawComplexControl( cc, p, widget, r, cg, how, TQWindowsStyle::drawComplexControl( cc, p, ceData, elementFlags, r, cg, how,
SC_SliderGroove, subActive, opt ); SC_SliderGroove, subActive, opt, widget );
if ( (sub & SC_SliderHandle) && handle.isValid() ) if ( (sub & SC_SliderHandle) && handle.isValid() )
drawMetalButton( p, handle.x(), handle.y(), handle.width(), drawMetalButton( p, handle.x(), handle.y(), handle.width(),
handle.height(), FALSE, handle.height(), FALSE,
slider->orientation() == TQSlider::Horizontal); ceData.orientation == TQSlider::Horizontal);
break; break;
} }
case CC_ComboBox: case CC_ComboBox:
{ {
// not exactly correct...
const TQComboBox *cmb = ( const TQComboBox* ) widget;
qDrawWinPanel( p, r.x(), r.y(), r.width(), r.height(), cg, TRUE, qDrawWinPanel( p, r.x(), r.y(), r.width(), r.height(), cg, TRUE,
cmb->isEnabled() ? &cg.brush( TQColorGroup::Base ) : (elementFlags & CEF_IsEnabled) ? &cg.brush( TQColorGroup::Base ) :
&cg.brush( TQColorGroup::Background ) ); &cg.brush( TQColorGroup::Background ) );
drawMetalButton( p, r.x() + r.width() - 2 - 16, r.y() + 2, 16, r.height() - 4, drawMetalButton( p, r.x() + r.width() - 2 - 16, r.y() + 2, 16, r.height() - 4,
how & Style_Sunken, TRUE ); how & Style_Sunken, TRUE );
drawPrimitive( PE_ArrowDown, p, drawPrimitive( PE_ArrowDown, p, ceData, elementFlags,
TQRect( r.x() + r.width() - 2 - 16 + 2, TQRect( r.x() + r.width() - 2 - 16 + 2,
r.y() + 2 + 2, 16 - 4, r.height() - 4 -4 ), r.y() + 2 + 2, 16 - 4, r.height() - 4 -4 ),
cg, cg,
cmb->isEnabled() ? Style_Enabled : Style_Default, (elementFlags & CEF_IsEnabled) ? Style_Enabled : Style_Default,
opt ); opt );
break; break;
} }
default: default:
TQWindowsStyle::drawComplexControl( cc, p, widget, r, cg, how, sub, subActive, TQWindowsStyle::drawComplexControl( cc, p, ceData, elementFlags, r, cg, how, sub, subActive,
opt ); opt, widget );
break; break;
} }
} }
@ -473,13 +468,13 @@ void MetalStyle::drawMetalGradient( TQPainter *p, int x, int y, int w, int h,
int MetalStyle::pixelMetric( PixelMetric metric, const TQWidget *w ) const int MetalStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *w ) const
{ {
switch ( metric ) { switch ( metric ) {
case PM_MenuBarFrameWidth: case PM_MenuBarFrameWidth:
return 2; return 2;
default: default:
return TQWindowsStyle::pixelMetric( metric, w ); return TQWindowsStyle::pixelMetric( metric, ceData, elementFlags, w );
} }
} }

@ -26,13 +26,15 @@ class MetalStyle : public TQWindowsStyle
{ {
public: public:
MetalStyle(); MetalStyle();
void polish( TQApplication*); void applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void unPolish( TQApplication*); void applicationUnPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void polish( TQWidget* ); void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void unPolish( TQWidget* ); void unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void drawPrimitive( PrimitiveElement pe, void drawPrimitive( PrimitiveElement pe,
TQPainter *p, TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags flags = Style_Default, SFlags flags = Style_Default,
@ -40,22 +42,26 @@ public:
void drawControl( ControlElement element, void drawControl( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how = Style_Default, SFlags how = Style_Default,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl cc, void drawComplexControl( ComplexControl cc,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how = Style_Default, SFlags how = Style_Default,
SCFlags sub = SC_All, SCFlags sub = SC_All,
SCFlags subActive = SC_None, SCFlags subActive = SC_None,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
int pixelMetric( PixelMetric, const TQWidget * ) const; const TQWidget *widget = 0 ) const;
int pixelMetric( PixelMetric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget * = 0 ) const;
private: private:

@ -769,156 +769,154 @@ NorwegianWoodStyle::NorwegianWoodStyle() : TQWindowsStyle()
/*! /*!
Reimplementation from TQStyle Reimplementation from TQStyle
*/ */
void NorwegianWoodStyle::polish( TQApplication *app) void NorwegianWoodStyle::applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
oldPalette = ceData.palette;
oldPalette = app->palette();
// we simply create a nice TQColorGroup with a couple of fancy wood
// we simply create a nice TQColorGroup with a couple of fancy wood // pixmaps here and apply to it all widgets
// pixmaps here and apply to it all widgets
TQImage img(button_xpm);
TQImage img(button_xpm); TQImage orig = img;
TQImage orig = img; orig.detach();
orig.detach(); TQPixmap button;
TQPixmap button; button.convertFromImage(img);
button.convertFromImage(img);
int i;
int i; for (i=0; i<img.numColors(); i++) {
for (i=0; i<img.numColors(); i++) { TQRgb rgb = img.color(i);
TQRgb rgb = img.color(i); TQColor c(rgb);
TQColor c(rgb); rgb = c.dark(120).rgb();
rgb = c.dark(120).rgb(); img.setColor(i,rgb);
img.setColor(i,rgb); }
} TQPixmap mid;
TQPixmap mid; mid.convertFromImage(img);
mid.convertFromImage(img);
img = orig;
img = orig; img.detach();
img.detach(); for (i=0; i<img.numColors(); i++) {
for (i=0; i<img.numColors(); i++) { TQRgb rgb = img.color(i);
TQRgb rgb = img.color(i); TQColor c(rgb);
TQColor c(rgb); rgb = c.light().rgb();
rgb = c.light().rgb(); img.setColor(i,rgb);
img.setColor(i,rgb); }
} TQPixmap light;
TQPixmap light; light.convertFromImage(img);
light.convertFromImage(img);
img = orig;
img = orig; img.detach();
img.detach(); for (i=0; i<img.numColors(); i++) {
for (i=0; i<img.numColors(); i++) { TQRgb rgb = img.color(i);
TQRgb rgb = img.color(i); TQColor c(rgb);
TQColor c(rgb); rgb = c.dark(180).rgb();
rgb = c.dark(180).rgb(); img.setColor(i,rgb);
img.setColor(i,rgb); }
} TQPixmap dark;
TQPixmap dark; dark.convertFromImage(img);
dark.convertFromImage(img);
TQImage bgimage(polish_xpm);
TQImage bgimage(polish_xpm); TQPixmap background;
TQPixmap background; background.convertFromImage(bgimage);
background.convertFromImage(bgimage);
img = bgimage;
img = bgimage; img.detach();
img.detach(); for (i=0; i<img.numColors(); i++) {
for (i=0; i<img.numColors(); i++) { TQRgb rgb = img.color(i);
TQRgb rgb = img.color(i); TQColor c(rgb);
TQColor c(rgb); rgb = c.dark(180).rgb();
rgb = c.dark(180).rgb(); img.setColor(i,rgb);
img.setColor(i,rgb); }
} sunkenDark = new TQPixmap;
sunkenDark = new TQPixmap; sunkenDark->convertFromImage(img);
sunkenDark->convertFromImage(img);
img = bgimage;
img = bgimage; img.detach();
img.detach(); for (i=0; i<img.numColors(); i++) {
for (i=0; i<img.numColors(); i++) { TQRgb rgb = img.color(i);
TQRgb rgb = img.color(i); TQColor c(rgb);
TQColor c(rgb); rgb = c.light(130).rgb();
rgb = c.light(130).rgb(); img.setColor(i,rgb);
img.setColor(i,rgb); }
} sunkenLight= new TQPixmap;
sunkenLight= new TQPixmap; sunkenLight->convertFromImage(img);
sunkenLight->convertFromImage(img);
TQPalette op(TQColor(212,140,95));
TQPalette op(TQColor(212,140,95)); // TQPalette op(white);
// TQPalette op(white); TQColorGroup active (op.active().foreground(),
TQColorGroup active (op.active().foreground(), TQBrush(op.active().button(),button),
TQBrush(op.active().button(),button), TQBrush(op.active().light(), light),
TQBrush(op.active().light(), light), TQBrush(op.active().dark(), dark),
TQBrush(op.active().dark(), dark), TQBrush(op.active().mid(), mid),
TQBrush(op.active().mid(), mid), op.active().text(),
op.active().text(), TQt::white,
TQt::white, TQColor(236,182,120),
TQColor(236,182,120), TQBrush(op.active().background(), background)
TQBrush(op.active().background(), background) );
); TQColorGroup disabled (op.disabled().foreground(),
TQColorGroup disabled (op.disabled().foreground(), TQBrush(op.disabled().button(),button),
TQBrush(op.disabled().button(),button), TQBrush(op.disabled().light(), light),
TQBrush(op.disabled().light(), light), op.disabled().dark(),
op.disabled().dark(), TQBrush(op.disabled().mid(), mid),
TQBrush(op.disabled().mid(), mid), op.disabled().text(),
op.disabled().text(), TQt::white,
TQt::white, TQColor(236,182,120),
TQColor(236,182,120), TQBrush(op.disabled().background(), background)
TQBrush(op.disabled().background(), background) );
);
applicationActionRequest(ceData, elementFlags, ptr, AAR_SetPalette, TQStyleApplicationActionRequestData(TQPalette(active, disabled, active), TRUE));
app->setPalette(TQPalette(active, disabled, active), TRUE );
} }
void NorwegianWoodStyle::unPolish( TQApplication *app) void NorwegianWoodStyle::applicationUnPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
app->setPalette(oldPalette, TRUE); applicationActionRequest(ceData, elementFlags, ptr, AAR_SetPalette, TQStyleApplicationActionRequestData(oldPalette, TRUE));
} }
/*! /*!
Reimplementation from TQStyle Reimplementation from TQStyle
*/ */
void NorwegianWoodStyle::polish( TQWidget* w) void NorwegianWoodStyle::polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
// the polish function sets some widgets to transparent mode and
// the polish function sets some widgets to transparent mode and // some to translate background mode in order to get the full
// some to translate background mode in order to get the full // benefit from the nice pixmaps in the color group.
// benefit from the nice pixmaps in the color group.
if ( !(elementFlags & CEF_IsTopLevel) ) {
if ( !w->isTopLevel() ) { if ( (ceData.widgetObjectTypes.contains("TQPushButton")) || (ceData.widgetObjectTypes.contains("TQToolButton")) || (ceData.widgetObjectTypes.contains("TQComboBox")) ) {
if ( w->inherits("TQPushButton") widgetActionRequest(ceData, elementFlags, ptr, WAR_SetAutoMask);
|| w->inherits("TQToolButton") return;
|| w->inherits("TQComboBox") ) { }
w->setAutoMask( TRUE ); if (!ceData.bgPixmap.isNull()) {
return; widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundOrigin, TQStyleWidgetActionRequestData(TQWidget::WindowOrigin));
}
} }
if ( w->backgroundPixmap() )
w->setBackgroundOrigin( TQWidget::WindowOrigin );
}
} }
void NorwegianWoodStyle::unPolish( TQWidget* w) void NorwegianWoodStyle::unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{ {
// the polish function sets some widgets to transparent mode and // the polish function sets some widgets to transparent mode and
// some to translate background mode in order to get the full // some to translate background mode in order to get the full
// benefit from the nice pixmaps in the color group. // benefit from the nice pixmaps in the color group.
if ( !w->isTopLevel() ) {
if ( w->inherits("TQPushButton") if ( !(elementFlags & CEF_IsTopLevel) ) {
|| w->inherits("TQToolButton") if ( (ceData.widgetObjectTypes.contains("TQPushButton")) || (ceData.widgetObjectTypes.contains("TQToolButton")) || (ceData.widgetObjectTypes.contains("TQComboBox")) ) {
|| w->inherits("TQComboBox") ) { widgetActionRequest(ceData, elementFlags, ptr, WAR_UnSetAutoMask);
w->setAutoMask( FALSE ); return;
return; }
if (!ceData.bgPixmap.isNull()) {
widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundOrigin, TQStyleWidgetActionRequestData(TQWidget::WidgetOrigin));
}
} }
if ( w->backgroundPixmap() )
w->setBackgroundOrigin( TQWidget::WidgetOrigin );
}
} }
void NorwegianWoodStyle::drawPrimitive( PrimitiveElement pe, void NorwegianWoodStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p, TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags flags, const TQStyleOption& opt ) const SFlags flags, const TQStyleOption& opt ) const
@ -970,45 +968,45 @@ void NorwegianWoodStyle::drawPrimitive( PrimitiveElement pe,
} }
case PE_ScrollBarAddLine: case PE_ScrollBarAddLine:
if ( flags & Style_Horizontal ) if ( flags & Style_Horizontal )
drawSemicircleButton( p, r, PointRight, flags & Style_Down, cg ); drawSemicircleButton( p, ceData, elementFlags, r, PointRight, flags & Style_Down, cg );
else else
drawSemicircleButton( p, r, PointDown, flags & Style_Down, cg ); drawSemicircleButton( p, ceData, elementFlags, r, PointDown, flags & Style_Down, cg );
break; break;
case PE_ScrollBarSubLine: case PE_ScrollBarSubLine:
if ( flags & Style_Horizontal ) if ( flags & Style_Horizontal )
drawSemicircleButton( p, r, PointLeft, flags & Style_Down, cg ); drawSemicircleButton( p, ceData, elementFlags, r, PointLeft, flags & Style_Down, cg );
else else
drawSemicircleButton( p, r, PointUp, flags & Style_Down, cg ); drawSemicircleButton( p, ceData, elementFlags, r, PointUp, flags & Style_Down, cg );
break; break;
default: default:
TQWindowsStyle::drawPrimitive( pe, p, r, cg, flags, opt ); TQWindowsStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break; break;
} }
} }
void NorwegianWoodStyle::drawControl( ControlElement element, void NorwegianWoodStyle::drawControl( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how, const TQStyleOption& opt ) const SFlags how, const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch( element ) { switch( element ) {
case CE_PushButton: case CE_PushButton:
{ {
const TQPushButton *btn;
btn = ( const TQPushButton * )widget;
TQColorGroup myCg( cg ); TQColorGroup myCg( cg );
SFlags flags = Style_Default; SFlags flags = Style_Default;
if ( btn->isOn() ) if ( elementFlags & CEF_IsOn )
flags |= Style_On; flags |= Style_On;
if ( btn->isDown() ) if ( elementFlags & CEF_IsDown )
flags |= Style_Down; flags |= Style_Down;
if ( btn->isOn() || btn->isDown() ) if ( (elementFlags & CEF_IsOn) || (elementFlags & CEF_IsDown) )
flags |= Style_Sunken; flags |= Style_Sunken;
if ( btn->isDefault() ) if ( elementFlags & CEF_IsDefault )
flags |= Style_Default; flags |= Style_Default;
if ( ! btn->isFlat() && !(flags & Style_Down) ) if ( ! (elementFlags & CEF_IsFlat) && !(flags & Style_Down) )
flags |= Style_Raised; flags |= Style_Raised;
int x1, y1, x2, y2; int x1, y1, x2, y2;
@ -1018,26 +1016,26 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
p->setBrush( TQBrush( cg.button(), NoBrush ) ); p->setBrush( TQBrush( cg.button(), NoBrush ) );
TQBrush fill; TQBrush fill;
if ( btn->isDown() ) if ( elementFlags & CEF_IsDown )
fill = cg.brush( TQColorGroup::Mid ); fill = cg.brush( TQColorGroup::Mid );
else if ( btn->isOn() ) else if ( elementFlags & CEF_IsOn )
fill = TQBrush( cg.mid(), Dense4Pattern ); fill = TQBrush( cg.mid(), Dense4Pattern );
else else
fill = cg.brush( TQColorGroup::Button ); fill = cg.brush( TQColorGroup::Button );
myCg.setBrush( TQColorGroup::Mid, fill ); myCg.setBrush( TQColorGroup::Mid, fill );
if ( btn->isDefault() ) { if ( elementFlags & CEF_IsDefault ) {
x1 += 2; x1 += 2;
y1 += 2; y1 += 2;
x2 -= 2; x2 -= 2;
y2 -= 2; y2 -= 2;
} }
drawPrimitive( PE_ButtonCommand, p, drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags,
TQRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1), TQRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1),
myCg, flags, opt ); myCg, flags, opt );
if ( btn->isDefault() ) { if ( elementFlags & CEF_IsDefault ) {
TQPen pen( TQt::black, 4 ); TQPen pen( TQt::black, 4 );
pen.setCapStyle( TQt::RoundCap ); pen.setCapStyle( TQt::RoundCap );
pen.setJoinStyle( TQt::RoundJoin ); pen.setJoinStyle( TQt::RoundJoin );
@ -1045,14 +1043,14 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
drawroundrect( p, x1 - 1, y1 - 1, x2 - x1 + 3, y2 - y1 + 3, 8 ); drawroundrect( p, x1 - 1, y1 - 1, x2 - x1 + 3, y2 - y1 + 3, 8 );
} }
if ( btn->isMenuButton() ) { if ( elementFlags & CEF_IsMenuWidget ) {
int dx = ( y1 - y2 - 4 ) / 3; int dx = ( y1 - y2 - 4 ) / 3;
// reset the flags // reset the flags
flags = Style_Default; flags = Style_Default;
if ( btn->isEnabled() ) if ( elementFlags & CEF_IsEnabled )
flags |= Style_Enabled; flags |= Style_Enabled;
drawPrimitive( PE_ArrowDown, p, drawPrimitive( PE_ArrowDown, p, ceData, elementFlags,
TQRect( x2 - dx, dx, y1, y2 - y1), TQRect( x2 - dx, dx, y1, y2 - y1),
myCg, flags, opt ); myCg, flags, opt );
} }
@ -1063,8 +1061,6 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
} }
case CE_PushButtonLabel: case CE_PushButtonLabel:
{ {
const TQPushButton *btn;
btn = (const TQPushButton*)widget;
int x, y, w, h; int x, y, w, h;
r.rect( &x, &y, &w, &h ); r.rect( &x, &y, &w, &h );
@ -1072,7 +1068,7 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
r.coords( &x1, &y1, &x2, &y2 ); r.coords( &x1, &y1, &x2, &y2 );
int dx = 0; int dx = 0;
int dy = 0; int dy = 0;
if ( btn->isMenuButton() ) if ( elementFlags & CEF_IsMenuWidget )
dx = ( y2 - y1 ) / 3; dx = ( y2 - y1 ) / 3;
if ( dx || dy ) if ( dx || dy )
p->translate( dx, dy ); p->translate( dx, dy );
@ -1083,25 +1079,27 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
h -= 4; h -= 4;
drawItem( p, TQRect( x, y, w, h ), drawItem( p, TQRect( x, y, w, h ),
AlignCenter | ShowPrefix, AlignCenter | ShowPrefix,
cg, btn->isEnabled(), cg, (elementFlags & CEF_IsEnabled),
btn->pixmap(), btn->text(), -1, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text, -1,
(btn->isDown() || btn->isOn()) ? &cg.brightText() ((elementFlags & CEF_IsDown) || (elementFlags & CEF_IsOn)) ? &cg.brightText()
: &cg.buttonText() ); : &cg.buttonText() );
if ( dx || dy ) if ( dx || dy )
p->translate( -dx, -dy ); p->translate( -dx, -dy );
break; break;
} }
default: default:
TQWindowsStyle::drawControl( element, p, widget, r, cg, how, opt ); TQWindowsStyle::drawControl( element, p, ceData, elementFlags, r, cg, how, opt, widget );
break; break;
} }
} }
void NorwegianWoodStyle::drawControlMask( ControlElement element, void NorwegianWoodStyle::drawControlMask( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch( element ) { switch( element ) {
case CE_PushButton: case CE_PushButton:
@ -1113,37 +1111,36 @@ void NorwegianWoodStyle::drawControlMask( ControlElement element,
break; break;
} }
default: default:
TQWindowsStyle::drawControlMask( element, p, widget, r, opt ); TQWindowsStyle::drawControlMask( element, p, ceData, elementFlags, r, opt, widget );
break; break;
} }
} }
void NorwegianWoodStyle::drawComplexControl( ComplexControl cc, void NorwegianWoodStyle::drawComplexControl( ComplexControl cc,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how, SFlags how,
SCFlags sub, SCFlags sub,
SCFlags subActive, SCFlags subActive,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch( cc ) { switch( cc ) {
case CC_ComboBox: case CC_ComboBox:
{ {
const TQComboBox *cmb;
cmb = (const TQComboBox*)widget;
int awh, ax, ay, sh, sy, dh, ew; int awh, ax, ay, sh, sy, dh, ew;
get_combo_parameters( subRect(SR_PushButtonContents, widget), get_combo_parameters( subRect(SR_PushButtonContents, ceData, elementFlags, widget),
ew, awh, ax, ay, sh, dh, sy ); ew, awh, ax, ay, sh, dh, sy );
drawPrimitive( PE_ButtonCommand, p, r, cg, Style_Raised, opt ); drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, r, cg, Style_Raised, opt );
TQStyle *mstyle = TQStyleFactory::create( "Motif" ); TQStyle *mstyle = TQStyleFactory::create( "Motif" );
if ( mstyle ) if ( mstyle )
mstyle->drawPrimitive( PE_ArrowDown, p, mstyle->drawPrimitive( PE_ArrowDown, p, ceData, elementFlags,
TQRect(ax, ay, awh, awh), cg, how, opt ); TQRect(ax, ay, awh, awh), cg, how, opt );
else else
drawPrimitive( PE_ArrowDown, p, drawPrimitive( PE_ArrowDown, p, ceData, elementFlags,
TQRect(ax, ay, awh, awh), cg, how, opt ); TQRect(ax, ay, awh, awh), cg, how, opt );
TQPen oldPen = p->pen(); TQPen oldPen = p->pen();
@ -1155,9 +1152,9 @@ void NorwegianWoodStyle::drawComplexControl( ComplexControl cc,
p->drawLine( ax + awh - 1, sy + 1, ax + awh - 1, sy + sh - 1 ); p->drawLine( ax + awh - 1, sy + 1, ax + awh - 1, sy + sh - 1 );
p->setPen( oldPen ); p->setPen( oldPen );
if ( cmb->editable() ) { if ( elementFlags & CEF_IsEditable ) {
TQRect r( querySubControlMetrics(CC_ComboBox, widget, TQRect r( querySubControlMetrics(CC_ComboBox, ceData, elementFlags,
SC_ComboBoxEditField, opt) ); SC_ComboBoxEditField, opt, widget) );
qDrawShadePanel( p, r, cg, TRUE, 1, qDrawShadePanel( p, r, cg, TRUE, 1,
&cg.brush(TQColorGroup::Button) ); &cg.brush(TQColorGroup::Button) );
} }
@ -1165,17 +1162,19 @@ void NorwegianWoodStyle::drawComplexControl( ComplexControl cc,
break; break;
} }
default: default:
TQWindowsStyle::drawComplexControl( cc, p, widget, r, cg, how, TQWindowsStyle::drawComplexControl( cc, p, ceData, elementFlags, r, cg, how,
sub, subActive, opt ); sub, subActive, opt, widget );
break; break;
} }
} }
void NorwegianWoodStyle::drawComplexControlMask( ComplexControl control, void NorwegianWoodStyle::drawComplexControlMask( ComplexControl control,
TQPainter *p, TQPainter *p,
const TQWidget *widget, const TQStyleControlElementData ceData,
const ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
switch ( control ) { switch ( control ) {
case CC_ComboBox: case CC_ComboBox:
@ -1187,15 +1186,17 @@ void NorwegianWoodStyle::drawComplexControlMask( ComplexControl control,
break; break;
} }
default: default:
TQWindowsStyle::drawComplexControlMask( control, p, widget, r, opt ); TQWindowsStyle::drawComplexControlMask( control, p, ceData, elementFlags, r, opt, widget );
break; break;
} }
} }
TQRect NorwegianWoodStyle::querySubControlMetrics( ComplexControl control, TQRect NorwegianWoodStyle::querySubControlMetrics( ComplexControl control,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
SubControl sc, SubControl sc,
const TQStyleOption& opt ) const const TQStyleOption& opt,
const TQWidget *widget ) const
{ {
TQRect rect; TQRect rect;
switch ( control ) { switch ( control ) {
@ -1204,62 +1205,58 @@ TQRect NorwegianWoodStyle::querySubControlMetrics( ComplexControl control,
switch( sc ) { switch( sc ) {
case SC_ComboBoxEditField: case SC_ComboBoxEditField:
{ {
rect = subRect( SR_PushButtonContents, widget ); rect = subRect( SR_PushButtonContents, ceData, elementFlags, widget );
int ew = get_combo_extra_width( rect.height(), 0 ); int ew = get_combo_extra_width( rect.height(), 0 );
rect.setRect( rect.x() + 1, rect.y() + 1, rect.setRect( rect.x() + 1, rect.y() + 1,
rect.width() - 2 - ew, rect.height() - 2 ); rect.width() - 2 - ew, rect.height() - 2 );
break; break;
} }
default: default:
rect = TQWindowsStyle::querySubControlMetrics( control, widget, rect = TQWindowsStyle::querySubControlMetrics( control, ceData, elementFlags,
sc, opt ); sc, opt, widget );
break; break;
} }
break; break;
} }
case CC_ScrollBar: case CC_ScrollBar:
{ {
const TQScrollBar* sb; bool horz = ceData.orientation == TQScrollBar::Horizontal;
sb = (const TQScrollBar*)widget;
bool horz = sb->orientation() == TQScrollBar::Horizontal;
int b = 2; int b = 2;
int w = horz ? sb->height() : sb->width(); int w = horz ? ceData.rect.height() : ceData.rect.width();
switch ( sc ) { switch ( sc ) {
case SC_ScrollBarAddLine: case SC_ScrollBarAddLine:
rect.setRect( b, b, w - 2 * b, w - 2 * b ); rect.setRect( b, b, w - 2 * b, w - 2 * b );
if ( horz ) if ( horz )
rect.moveBy( sb->width() - w, 0 ); rect.moveBy( ceData.rect.width() - w, 0 );
else else
rect.moveBy( 0, sb->height() - w ); rect.moveBy( 0, ceData.rect.height() - w );
break; break;
case SC_ScrollBarSubLine: case SC_ScrollBarSubLine:
rect.setRect( b, b, w - 2 * b, w - 2 * b ); rect.setRect( b, b, w - 2 * b, w - 2 * b );
break; break;
default: default:
rect = TQWindowsStyle::querySubControlMetrics( control, widget, rect = TQWindowsStyle::querySubControlMetrics( control, ceData, elementFlags,
sc, opt ); sc, opt, widget );
break; break;
} }
break; break;
} }
default: default:
rect = TQWindowsStyle::querySubControlMetrics( control, widget, rect = TQWindowsStyle::querySubControlMetrics( control, ceData, elementFlags,
sc, opt ); sc, opt, widget );
break; break;
} }
return rect; return rect;
} }
TQRect NorwegianWoodStyle::subRect( SubRect sr, const TQWidget * widget ) const TQRect NorwegianWoodStyle::subRect( SubRect sr, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget * widget ) const
{ {
TQRect r; TQRect r;
switch ( sr ) { switch ( sr ) {
case SR_PushButtonContents: case SR_PushButtonContents:
{ {
const TQPushButton *btn; r = ceData.rect;
btn = (const TQPushButton*)widget;
r = btn->rect();
int d = TQMIN( r.width(), r.height() ) / 2; int d = TQMIN( r.width(), r.height() ) / 2;
int b = buttonthickness( d ); int b = buttonthickness( d );
@ -1276,14 +1273,14 @@ TQRect NorwegianWoodStyle::subRect( SubRect sr, const TQWidget * widget ) const
} }
case SR_ComboBoxFocusRect: case SR_ComboBoxFocusRect:
{ {
r = subRect( SR_PushButtonContents, widget ); r = subRect( SR_PushButtonContents, ceData, elementFlags, widget );
int ew = get_combo_extra_width( r.height() ); int ew = get_combo_extra_width( r.height() );
r.setRect( r.x() + 1, r.y() + 1, r.width() - 2 - ew, r.setRect( r.x() + 1, r.y() + 1, r.width() - 2 - ew,
r.height() - 2 ); r.height() - 2 );
break; break;
} }
default: default:
r = TQWindowsStyle::subRect( sr, widget ); r = TQWindowsStyle::subRect( sr, ceData, elementFlags, widget );
break; break;
} }
return r; return r;
@ -1358,11 +1355,12 @@ static void get_combo_parameters( const TQRect &r,
static inline int buttonthickness( int d ) static inline int buttonthickness( int d )
{ return d > 20 ? 5 : ( d < 10 ? 2: 3 ); } { return d > 20 ? 5 : ( d < 10 ? 2: 3 ); }
void NorwegianWoodStyle::drawSemicircleButton( TQPainter *p, const TQRect &r, void NorwegianWoodStyle::drawSemicircleButton( TQPainter *p, TQStyleControlElementData ceData,
ControlElementFlags elementFlags, const TQRect &r,
int dir, bool sunken, int dir, bool sunken,
const TQColorGroup &g ) const const TQColorGroup &g ) const
{ {
int b = pixelMetric( PM_ScrollBarExtent ) > 20 ? 3 : 2; int b = pixelMetric( PM_ScrollBarExtent, ceData, elementFlags ) > 20 ? 3 : 2;
TQRegion extrn( r.x(), r.y(), r.width(), r.height(), TQRegion::Ellipse ); TQRegion extrn( r.x(), r.y(), r.width(), r.height(), TQRegion::Ellipse );
TQRegion intern( r.x()+b, r.y()+b, r.width()-2*b, r.height()-2*b, TQRegion::Ellipse ); TQRegion intern( r.x()+b, r.y()+b, r.width()-2*b, r.height()-2*b, TQRegion::Ellipse );

@ -26,13 +26,15 @@ class NorwegianWoodStyle : public TQWindowsStyle
{ {
public: public:
NorwegianWoodStyle(); NorwegianWoodStyle();
void polish( TQApplication*); void applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void polish( TQWidget* ); void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void unPolish( TQWidget* ); void unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void unPolish( TQApplication*); void applicationUnPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void drawPrimitive( PrimitiveElement pe, void drawPrimitive( PrimitiveElement pe,
TQPainter *p, TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags flags = Style_Default, SFlags flags = Style_Default,
@ -40,44 +42,54 @@ public:
void drawControl( ControlElement element, void drawControl( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how = Style_Default, SFlags how = Style_Default,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawControlMask( ControlElement element, void drawControlMask( ControlElement element,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl cc, void drawComplexControl( ComplexControl cc,
TQPainter *p, TQPainter *p,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQColorGroup &cg, const TQColorGroup &cg,
SFlags how = Style_Default, SFlags how = Style_Default,
SCFlags sub = SC_All, SCFlags sub = SC_All,
SCFlags subActive = SC_None, SCFlags subActive = SC_None,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
void drawComplexControlMask( ComplexControl control, void drawComplexControlMask( ComplexControl control,
TQPainter *p, TQPainter *p,
const TQWidget *widget, const TQStyleControlElementData ceData,
const ControlElementFlags elementFlags,
const TQRect &r, const TQRect &r,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
TQRect querySubControlMetrics( ComplexControl control, TQRect querySubControlMetrics( ComplexControl control,
const TQWidget *widget, TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
SubControl sc, SubControl sc,
const TQStyleOption& = TQStyleOption::Default ) const; const TQStyleOption& = TQStyleOption::Default,
const TQWidget *widget = 0 ) const;
TQRect subRect( SubRect r, const TQWidget *widget ) const; TQRect subRect( SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget ) const;
private: private:
void drawSemicircleButton(TQPainter *p, const TQRect &r, int dir, void drawSemicircleButton(TQPainter *p, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQRect &r, int dir,
bool sunken, const TQColorGroup &g ) const; bool sunken, const TQColorGroup &g ) const;
TQPalette oldPalette; TQPalette oldPalette;
TQPixmap *sunkenDark; TQPixmap *sunkenDark;

@ -257,18 +257,24 @@ class Q_EXPORT TQStyleWidgetActionRequestData {
public: public:
TQStyleWidgetActionRequestData(); TQStyleWidgetActionRequestData();
TQStyleWidgetActionRequestData(int metric1, int metric2=0); TQStyleWidgetActionRequestData(int metric1, int metric2=0);
TQStyleWidgetActionRequestData(TQPalette palette); TQStyleWidgetActionRequestData(TQPalette palette, bool informWidgets = FALSE, const char* className = 0);
TQStyleWidgetActionRequestData(TQFont font); TQStyleWidgetActionRequestData(TQFont font, bool informWidgets = FALSE, const char* className = 0);
TQStyleWidgetActionRequestData(TQRect rect); TQStyleWidgetActionRequestData(TQRect rect);
~TQStyleWidgetActionRequestData(); ~TQStyleWidgetActionRequestData();
public: public:
bool bool1;
bool bool2;
int metric1; int metric1;
int metric2; int metric2;
TQPalette palette; TQPalette palette;
TQFont font; TQFont font;
TQRect rect; TQRect rect;
const char * cstr;
TQString string;
}; };
typedef TQStyleWidgetActionRequestData TQStyleApplicationActionRequestData;
class Q_EXPORT TQStyle: public TQObject class Q_EXPORT TQStyle: public TQObject
{ {
TQ_OBJECT TQ_OBJECT
@ -1077,6 +1083,8 @@ public:
WAR_RepaintRect, WAR_RepaintRect,
WAR_EnableMouseTracking, WAR_EnableMouseTracking,
WAR_DisableMouseTracking, WAR_DisableMouseTracking,
WAR_SetAutoMask,
WAR_UnSetAutoMask,
WAR_SetCheckable, WAR_SetCheckable,
WAR_UnSetCheckable, WAR_UnSetCheckable,
WAR_FrameSetStyle, WAR_FrameSetStyle,
@ -1084,6 +1092,7 @@ public:
WAR_SetLayoutMargin, WAR_SetLayoutMargin,
WAR_SetPalette, WAR_SetPalette,
WAR_SetBackgroundMode, WAR_SetBackgroundMode,
WAR_SetBackgroundOrigin,
WAR_SetFont, WAR_SetFont,
WAR_RepaintAllAccelerators WAR_RepaintAllAccelerators
}; };
@ -1092,6 +1101,15 @@ public:
void setWidgetActionRequestHook( WidgetActionRequestHook ); void setWidgetActionRequestHook( WidgetActionRequestHook );
virtual bool widgetActionRequest( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, WidgetActionRequest request, TQStyleWidgetActionRequestData requestData = TQStyleWidgetActionRequestData() ); virtual bool widgetActionRequest( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, WidgetActionRequest request, TQStyleWidgetActionRequestData requestData = TQStyleWidgetActionRequestData() );
enum ApplicationActionRequest {
AAR_SetPalette,
AAR_SetFont
};
typedef bool (*ApplicationActionRequestHook)(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, ApplicationActionRequest request, TQStyleApplicationActionRequestData requestData);
void setApplicationActionRequestHook( ApplicationActionRequestHook );
virtual bool applicationActionRequest( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, ApplicationActionRequest request, TQStyleApplicationActionRequestData requestData = TQStyleApplicationActionRequestData() );
// Old 2.x TQStyle API // Old 2.x TQStyle API
#ifndef QT_NO_COMPAT #ifndef QT_NO_COMPAT
@ -1131,6 +1149,7 @@ private:
EventHandlerInstallationHook m_eventHandlerInstallationHook; EventHandlerInstallationHook m_eventHandlerInstallationHook;
EventHandlerRemovalHook m_eventHandlerRemovalHook; EventHandlerRemovalHook m_eventHandlerRemovalHook;
WidgetActionRequestHook m_widgetActionRequestHook; WidgetActionRequestHook m_widgetActionRequestHook;
ApplicationActionRequestHook m_applicationActionRequestHook;
ObjectEventSourceToHandlerMap m_objectEventSourceToHandlerMap; ObjectEventSourceToHandlerMap m_objectEventSourceToHandlerMap;
ObjectEventSourceDataToHandlerMap m_objectEventSourceDataToHandlerMap; ObjectEventSourceDataToHandlerMap m_objectEventSourceDataToHandlerMap;
ObjectEventSourceFlagsToHandlerMap m_objectEventSourceFlagsToHandlerMap; ObjectEventSourceFlagsToHandlerMap m_objectEventSourceFlagsToHandlerMap;
@ -1141,6 +1160,7 @@ inline TQStyle::ControlElementFlags operator|(const TQStyle::ControlElementFlags
// inline TQStyle::ControlElementFlags operator|=(TQStyle::ControlElementFlags &a, const TQStyle::ControlElementFlags b) { a = static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); return a; } // inline TQStyle::ControlElementFlags operator|=(TQStyle::ControlElementFlags &a, const TQStyle::ControlElementFlags b) { a = static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); return a; }
Q_EXPORT TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields=true); Q_EXPORT TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStyleControlElementData populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, TQStringList objectTypeList, const TQStyleOption& opt, bool populateReliantFields=true); Q_EXPORT TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, TQStringList objectTypeList, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStringList getObjectTypeListForObject(const TQObject* object); Q_EXPORT TQStringList getObjectTypeListForObject(const TQObject* object);

@ -403,6 +403,7 @@ TQStyle::TQStyle()
m_eventHandlerInstallationHook = NULL; m_eventHandlerInstallationHook = NULL;
m_eventHandlerRemovalHook = NULL; m_eventHandlerRemovalHook = NULL;
m_widgetActionRequestHook = NULL; m_widgetActionRequestHook = NULL;
m_applicationActionRequestHook = NULL;
conditionalAcceleratorsEnabled = false; conditionalAcceleratorsEnabled = false;
d = new TQStylePrivate; d = new TQStylePrivate;
} }
@ -526,8 +527,7 @@ void TQStyle::unPolish( TQStyleControlElementData ceData, ControlElementFlags, v
\sa unPolish() \sa unPolish()
*/ */
void TQStyle::polish( TQApplication *app ) { void TQStyle::polish( TQApplication *app ) {
TQStyleControlElementData ceData; TQStyleControlElementData ceData = populateControlElementDataFromApplication(app, TQStyleOption());
ceData.widgetObjectTypes = getObjectTypeListForObject(app);
applicationPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app); applicationPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app);
} }
@ -539,8 +539,7 @@ void TQStyle::polish( TQApplication *app ) {
\sa polish() \sa polish()
*/ */
void TQStyle::unPolish( TQApplication *app ) { void TQStyle::unPolish( TQApplication *app ) {
TQStyleControlElementData ceData; TQStyleControlElementData ceData = populateControlElementDataFromApplication(app, TQStyleOption());
ceData.widgetObjectTypes = getObjectTypeListForObject(app);
applicationUnPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app); applicationUnPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app);
} }
@ -2217,6 +2216,12 @@ bool TQStyle::widgetActionRequest( TQStyleControlElementData ceData, ControlElem
else if (request == WAR_DisableMouseTracking) { else if (request == WAR_DisableMouseTracking) {
widget->setMouseTracking(FALSE); widget->setMouseTracking(FALSE);
} }
else if (request == WAR_SetAutoMask) {
widget->setAutoMask(TRUE);
}
else if (request == WAR_UnSetAutoMask) {
widget->setAutoMask(FALSE);
}
else if (request == WAR_SetCheckable) { else if (request == WAR_SetCheckable) {
TQPopupMenu *pm = dynamic_cast<TQPopupMenu*>(widget); TQPopupMenu *pm = dynamic_cast<TQPopupMenu*>(widget);
if (pm) { if (pm) {
@ -2253,6 +2258,9 @@ bool TQStyle::widgetActionRequest( TQStyleControlElementData ceData, ControlElem
else if (request == WAR_SetBackgroundMode) { else if (request == WAR_SetBackgroundMode) {
widget->setBackgroundMode((TQt::BackgroundMode)requestData.metric1); widget->setBackgroundMode((TQt::BackgroundMode)requestData.metric1);
} }
else if (request == WAR_SetBackgroundOrigin) {
widget->setBackgroundOrigin((TQWidget::BackgroundOrigin)requestData.metric1);
}
else if (request == WAR_SetFont) { else if (request == WAR_SetFont) {
widget->setFont(requestData.font); widget->setFont(requestData.font);
} }
@ -2289,11 +2297,45 @@ bool TQStyle::widgetActionRequest( TQStyleControlElementData ceData, ControlElem
return true; return true;
} }
void TQStyle::acceleratorKeypressEventMonitor( TQObject *o, TQEvent *e ) { /*!
// RAJA FIXME \fn void TQStyle::setApplicationActionRequestHook( ApplicationActionRequestHook hook );
// Also, SH_HideUnderlineAcceleratorWhenAltUp should probably be set to 1 in the TQWindowsStyle::styleHint overridden method
// Additionally, the common styleHint code in TDE (that controls popupmenu settings and such via configuration files) needs to be modified to add a config option for this new style hint Sets a callback function \a hook which will be called whenever a new application action request
is made via the TQStyle::installObjectEventHandler method. The callback function must
use this definition: bool callbackFunction( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQStyle* handler ).
\sa void TQStyle::installObjectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQStyle* handler )
*/
void TQStyle::setApplicationActionRequestHook( ApplicationActionRequestHook hook ) {
m_applicationActionRequestHook = hook;
}
/*!
\fn bool applicationActionRequestHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, ApplicationActionRequest request );
Handles application action requests. Return FALSE to continue processing in base classes, TRUE to eat the request and halt processing.
*/
bool TQStyle::applicationActionRequest( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, ApplicationActionRequest request, TQStyleApplicationActionRequestData requestData ) {
bool cbret = false;
if (m_applicationActionRequestHook) {
cbret = (*m_applicationActionRequestHook)(ceData, elementFlags, source, request, requestData);
}
if (!cbret) {
if (ceData.widgetObjectTypes.contains("TQApplication")) {
TQApplication* application = reinterpret_cast<TQApplication*>(source);
if (request == AAR_SetPalette) {
application->setPalette(requestData.palette, requestData.bool1, requestData.cstr);
}
else if (request == AAR_SetFont) {
application->setFont(requestData.font, requestData.bool1, requestData.cstr);
}
return true;
}
}
return true;
}
void TQStyle::acceleratorKeypressEventMonitor( TQObject *o, TQEvent *e ) {
if (styleHint(SH_HideUnderlineAcceleratorWhenAltUp, TQStyleControlElementData(), CEF_None, TQStyleOption::Default, NULL, NULL) != 0) { if (styleHint(SH_HideUnderlineAcceleratorWhenAltUp, TQStyleControlElementData(), CEF_None, TQStyleOption::Default, NULL, NULL) != 0) {
TQWidget *widget = dynamic_cast<TQWidget*>(o); TQWidget *widget = dynamic_cast<TQWidget*>(o);
if (widget) { if (widget) {
@ -2337,12 +2379,16 @@ TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(int param1, int p
metric2 = param2; metric2 = param2;
} }
TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQPalette param) { TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQPalette param, bool informWidgets, const char* className) {
palette = param; palette = param;
bool1 = informWidgets;
cstr = className;
} }
TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQFont param) { TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQFont param, bool informWidgets, const char* className) {
font = param; font = param;
bool1 = informWidgets;
cstr = className;
} }
TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQRect param) { TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQRect param) {

@ -556,6 +556,18 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
return ceData; return ceData;
} }
TQStyleControlElementData populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption&, bool) {
TQStyleControlElementData ceData;
if (app) {
ceData.widgetObjectTypes = getObjectTypeListForObject(app);
ceData.palette = app->palette();
ceData.font = app->font();
}
return ceData;
}
/*! \reimp */ /*! \reimp */
void TQCommonStyle::drawPrimitive( PrimitiveElement pe, void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p, TQPainter *p,

Loading…
Cancel
Save