@ -769,156 +769,154 @@ NorwegianWoodStyle::NorwegianWoodStyle() : QWindowsStyle()
/*!
Reimplementation from QStyle
*/
void NorwegianWoodStyle : : polish( QApplication * app )
void NorwegianWoodStyle : : applicationPolish( QStyleControlElementData ceData , ControlElementFlags elementFlags , void * ptr )
{
oldPalette = app - > palette ( ) ;
// we simply create a nice QColorGroup with a couple of fancy wood
// pixmaps here and apply to it all widgets
QImage img ( button_xpm ) ;
QImage orig = img ;
orig . detach ( ) ;
QPixmap button ;
button . convertFromImage ( img ) ;
int i ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 120 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap mid ;
mid . convertFromImage ( img ) ;
img = orig ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . light ( ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap light ;
light . convertFromImage ( img ) ;
img = orig ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 180 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap dark ;
dark . convertFromImage ( img ) ;
QImage bgimage ( polish_xpm ) ;
QPixmap background ;
background . convertFromImage ( bgimage ) ;
img = bgimage ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 180 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
sunkenDark = new QPixmap ;
sunkenDark - > convertFromImage ( img ) ;
img = bgimage ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . light ( 130 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
sunkenLight = new QPixmap ;
sunkenLight - > convertFromImage ( img ) ;
QPalette op ( QColor ( 212 , 140 , 95 ) ) ;
// QPalette op(white);
QColorGroup active ( op . active ( ) . foreground ( ) ,
QBrush ( op . active ( ) . button ( ) , button ) ,
QBrush ( op . active ( ) . light ( ) , light ) ,
QBrush ( op . active ( ) . dark ( ) , dark ) ,
QBrush ( op . active ( ) . mid ( ) , mid ) ,
op . active ( ) . text ( ) ,
Qt : : white ,
QColor ( 236 , 182 , 120 ) ,
QBrush ( op . active ( ) . background ( ) , background )
) ;
QColorGroup disabled ( op . disabled ( ) . foreground ( ) ,
QBrush ( op . disabled ( ) . button ( ) , button ) ,
QBrush ( op . disabled ( ) . light ( ) , light ) ,
op . disabled ( ) . dark ( ) ,
QBrush ( op . disabled ( ) . mid ( ) , mid ) ,
op . disabled ( ) . text ( ) ,
Qt : : white ,
QColor ( 236 , 182 , 120 ) ,
QBrush ( op . disabled ( ) . background ( ) , background )
) ;
app - > setPalette ( QPalette ( active , disabled , active ) , TRUE ) ;
oldPalette = ceData . palette ;
// we simply create a nice QColorGroup with a couple of fancy wood
// pixmaps here and apply to it all widgets
QImage img ( button_xpm ) ;
QImage orig = img ;
orig . detach ( ) ;
QPixmap button ;
button . convertFromImage ( img ) ;
int i ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 120 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap mid ;
mid . convertFromImage ( img ) ;
img = orig ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . light ( ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap light ;
light . convertFromImage ( img ) ;
img = orig ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 180 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
QPixmap dark ;
dark . convertFromImage ( img ) ;
QImage bgimage ( polish_xpm ) ;
QPixmap background ;
background . convertFromImage ( bgimage ) ;
img = bgimage ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . dark ( 180 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
sunkenDark = new QPixmap ;
sunkenDark - > convertFromImage ( img ) ;
img = bgimage ;
img . detach ( ) ;
for ( i = 0 ; i < img . numColors ( ) ; i + + ) {
QRgb rgb = img . color ( i ) ;
QColor c ( rgb ) ;
rgb = c . light ( 130 ) . rgb ( ) ;
img . setColor ( i , rgb ) ;
}
sunkenLight = new QPixmap ;
sunkenLight - > convertFromImage ( img ) ;
QPalette op ( QColor ( 212 , 140 , 95 ) ) ;
// QPalette op(white);
QColorGroup active ( op . active ( ) . foreground ( ) ,
QBrush ( op . active ( ) . button ( ) , button ) ,
QBrush ( op . active ( ) . light ( ) , light ) ,
QBrush ( op . active ( ) . dark ( ) , dark ) ,
QBrush ( op . active ( ) . mid ( ) , mid ) ,
op . active ( ) . text ( ) ,
Qt : : white ,
QColor ( 236 , 182 , 120 ) ,
QBrush ( op . active ( ) . background ( ) , background )
) ;
QColorGroup disabled ( op . disabled ( ) . foreground ( ) ,
QBrush ( op . disabled ( ) . button ( ) , button ) ,
QBrush ( op . disabled ( ) . light ( ) , light ) ,
op . disabled ( ) . dark ( ) ,
QBrush ( op . disabled ( ) . mid ( ) , mid ) ,
op . disabled ( ) . text ( ) ,
Qt : : white ,
QColor ( 236 , 182 , 120 ) ,
QBrush ( op . disabled ( ) . background ( ) , background )
) ;
applicationActionRequest ( ceData , elementFlags , ptr , AAR_SetPalette , QStyleApplicationActionRequestData ( QPalette ( active , disabled , active ) , TRUE ) ) ;
}
void NorwegianWoodStyle : : unPolish( QApplication * app )
void NorwegianWoodStyle : : applicationUnPolish( QStyleControlElementData ceData , ControlElementFlags elementFlags , void * ptr )
{
app - > setPalette ( oldPalette , TRUE ) ;
applicationActionRequest ( ceData , elementFlags , ptr , AAR_SetPalette , QStyleApplicationActionRequestData ( oldPalette , TRUE ) ) ;
}
/*!
Reimplementation from QStyle
*/
void NorwegianWoodStyle : : polish ( Q Widget* w )
void NorwegianWoodStyle : : polish ( Q StyleControlElementData 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.
if ( ! w - > isTopLevel ( ) ) {
if ( w - > inherits ( " QPushButton " )
| | w - > inherits ( " QToolButton " )
| | w - > inherits ( " QComboBox " ) ) {
w - > setAutoMask ( TRUE ) ;
return ;
// 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.
if ( ! ( elementFlags & CEF_IsTopLevel ) ) {
if ( ( ceData . widgetObjectTypes . contains ( " QPushButton " ) ) | | ( ceData . widgetObjectTypes . contains ( " QToolButton " ) ) | | ( ceData . widgetObjectTypes . contains ( " QComboBox " ) ) ) {
widgetActionRequest ( ceData , elementFlags , ptr , WAR_SetAutoMask ) ;
return ;
}
if ( ! ceData . bgPixmap . isNull ( ) ) {
widgetActionRequest ( ceData , elementFlags , ptr , WAR_SetBackgroundOrigin , QStyleWidgetActionRequestData ( QWidget : : WindowOrigin ) ) ;
}
}
if ( w - > backgroundPixmap ( ) )
w - > setBackgroundOrigin ( QWidget : : WindowOrigin ) ;
}
}
void NorwegianWoodStyle : : unPolish ( Q Widget* w )
void NorwegianWoodStyle : : unPolish ( QStyleControlElementData 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.
if ( ! w - > isTopLevel ( ) ) {
if ( w - > inherits ( " QPushButton " )
| | w - > inherits ( " QToolButton " )
| | w - > inherits ( " QComboBox " ) ) {
w - > setAutoMask ( FALSE ) ;
return ;
// 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.
if ( ! ( elementFlags & CEF_IsTopLevel ) ) {
if ( ( ceData . widgetObjectTypes . contains ( " QPushButton " ) ) | | ( ceData . widgetObjectTypes . contains ( " QToolButton " ) ) | | ( ceData . widgetObjectTypes . contains ( " QComboBox " ) ) ) {
widgetActionRequest ( ceData , elementFlags , ptr , WAR_UnSetAutoMask ) ;
return ;
}
if ( ! ceData . bgPixmap . isNull ( ) ) {
widgetActionRequest ( ceData , elementFlags , ptr , WAR_SetBackgroundOrigin , QStyleWidgetActionRequestData ( QWidget : : WidgetOrigin ) ) ;
}
}
if ( w - > backgroundPixmap ( ) )
w - > setBackgroundOrigin ( QWidget : : WidgetOrigin ) ;
}
}
void NorwegianWoodStyle : : drawPrimitive ( PrimitiveElement pe ,
QPainter * p ,
QStyleControlElementData ceData ,
ControlElementFlags elementFlags ,
const QRect & r ,
const QColorGroup & cg ,
SFlags flags , const QStyleOption & opt ) const
@ -970,45 +968,45 @@ void NorwegianWoodStyle::drawPrimitive( PrimitiveElement pe,
}
case PE_ScrollBarAddLine :
if ( flags & Style_Horizontal )
drawSemicircleButton ( p , r, PointRight , flags & Style_Down , cg ) ;
drawSemicircleButton ( p , ceData, elementFlags , r, PointRight , flags & Style_Down , cg ) ;
else
drawSemicircleButton ( p , r, PointDown , flags & Style_Down , cg ) ;
drawSemicircleButton ( p , ceData, elementFlags , r, PointDown , flags & Style_Down , cg ) ;
break ;
case PE_ScrollBarSubLine :
if ( flags & Style_Horizontal )
drawSemicircleButton ( p , r, PointLeft , flags & Style_Down , cg ) ;
drawSemicircleButton ( p , ceData, elementFlags , r, PointLeft , flags & Style_Down , cg ) ;
else
drawSemicircleButton ( p , r, PointUp , flags & Style_Down , cg ) ;
drawSemicircleButton ( p , ceData, elementFlags , r, PointUp , flags & Style_Down , cg ) ;
break ;
default :
QWindowsStyle : : drawPrimitive ( pe , p , r, cg , flags , opt ) ;
QWindowsStyle : : drawPrimitive ( pe , p , ceData, elementFlags , r, cg , flags , opt ) ;
break ;
}
}
void NorwegianWoodStyle : : drawControl ( ControlElement element ,
QPainter * p ,
const QWidget * widget ,
QStyleControlElementData ceData ,
ControlElementFlags elementFlags ,
const QRect & r ,
const QColorGroup & cg ,
SFlags how , const QStyleOption & opt ) const
SFlags how , const QStyleOption & opt ,
const QWidget * widget ) const
{
switch ( element ) {
case CE_PushButton :
{
const QPushButton * btn ;
btn = ( const QPushButton * ) widget ;
QColorGroup myCg ( cg ) ;
SFlags flags = Style_Default ;
if ( btn- > isOn ( ) )
if ( elementFlags & CEF_IsOn )
flags | = Style_On ;
if ( btn- > isDown ( ) )
if ( elementFlags & CEF_IsDown )
flags | = Style_Down ;
if ( btn - > isOn ( ) | | btn - > isDown ( ) )
if ( ( elementFlags & CEF_IsOn ) | | ( elementFlags & CEF_IsDown ) )
flags | = Style_Sunken ;
if ( btn- > isDefault ( ) )
if ( elementFlags & CEF_IsDefault )
flags | = Style_Default ;
if ( ! btn - > isFlat ( ) & & ! ( flags & Style_Down ) )
if ( ! ( elementFlags & CEF_IsFlat ) & & ! ( flags & Style_Down ) )
flags | = Style_Raised ;
int x1 , y1 , x2 , y2 ;
@ -1018,26 +1016,26 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
p - > setBrush ( QBrush ( cg . button ( ) , NoBrush ) ) ;
QBrush fill ;
if ( btn- > isDown ( ) )
if ( elementFlags & CEF_IsDown )
fill = cg . brush ( QColorGroup : : Mid ) ;
else if ( btn- > isOn ( ) )
else if ( elementFlags & CEF_IsOn )
fill = QBrush ( cg . mid ( ) , Dense4Pattern ) ;
else
fill = cg . brush ( QColorGroup : : Button ) ;
myCg . setBrush ( QColorGroup : : Mid , fill ) ;
if ( btn- > isDefault ( ) ) {
if ( elementFlags & CEF_IsDefault ) {
x1 + = 2 ;
y1 + = 2 ;
x2 - = 2 ;
y2 - = 2 ;
}
drawPrimitive ( PE_ButtonCommand , p ,
drawPrimitive ( PE_ButtonCommand , p , ceData , elementFlags ,
QRect ( x1 , y1 , x2 - x1 + 1 , y2 - y1 + 1 ) ,
myCg , flags , opt ) ;
if ( btn- > isDefault ( ) ) {
if ( elementFlags & CEF_IsDefault ) {
QPen pen ( Qt : : black , 4 ) ;
pen . setCapStyle ( Qt : : RoundCap ) ;
pen . setJoinStyle ( Qt : : RoundJoin ) ;
@ -1045,14 +1043,14 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
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 ;
// reset the flags
flags = Style_Default ;
if ( btn- > isEnabled ( ) )
if ( elementFlags & CEF_IsEnabled )
flags | = Style_Enabled ;
drawPrimitive ( PE_ArrowDown , p ,
drawPrimitive ( PE_ArrowDown , p , ceData , elementFlags ,
QRect ( x2 - dx , dx , y1 , y2 - y1 ) ,
myCg , flags , opt ) ;
}
@ -1063,8 +1061,6 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
}
case CE_PushButtonLabel :
{
const QPushButton * btn ;
btn = ( const QPushButton * ) widget ;
int 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 ) ;
int dx = 0 ;
int dy = 0 ;
if ( btn- > isMenuButton ( ) )
if ( elementFlags & CEF_IsMenuWidget )
dx = ( y2 - y1 ) / 3 ;
if ( dx | | dy )
p - > translate ( dx , dy ) ;
@ -1083,25 +1079,27 @@ void NorwegianWoodStyle::drawControl( ControlElement element,
h - = 4 ;
drawItem ( p , QRect ( x , y , w , h ) ,
AlignCenter | ShowPrefix ,
cg , btn - > isEnabled ( ) ,
btn - > pixmap ( ) , btn - > text ( ) , - 1 ,
( btn - > isDown ( ) | | btn - > isOn ( ) ) ? & cg . brightText ( )
cg , ( elementFlags & CEF_IsEnabled ) ,
( ceData . fgPixmap . isNull ( ) ) ? NULL : & ceData . fgPixmap , ceData . text , - 1 ,
( ( elementFlags & CEF_IsDown ) | | ( elementFlags & CEF_IsOn ) ) ? & cg . brightText ( )
: & cg . buttonText ( ) ) ;
if ( dx | | dy )
p - > translate ( - dx , - dy ) ;
break ;
}
default :
QWindowsStyle : : drawControl ( element , p , widget , r , cg , how , op t ) ;
QWindowsStyle : : drawControl ( element , p , ceData, elementFlags , r , cg , how , op t, widge t ) ;
break ;
}
}
void NorwegianWoodStyle : : drawControlMask ( ControlElement element ,
QPainter * p ,
const QWidget * widget ,
QStyleControlElementData ceData ,
ControlElementFlags elementFlags ,
const QRect & r ,
const QStyleOption & opt ) const
const QStyleOption & opt ,
const QWidget * widget ) const
{
switch ( element ) {
case CE_PushButton :
@ -1113,37 +1111,36 @@ void NorwegianWoodStyle::drawControlMask( ControlElement element,
break ;
}
default :
QWindowsStyle : : drawControlMask ( element , p , widget, r , op t ) ;
QWindowsStyle : : drawControlMask ( element , p , ceData, elementFlags , r , opt , widge t ) ;
break ;
}
}
void NorwegianWoodStyle : : drawComplexControl ( ComplexControl cc ,
QPainter * p ,
const QWidget * widget ,
QStyleControlElementData ceData ,
ControlElementFlags elementFlags ,
const QRect & r ,
const QColorGroup & cg ,
SFlags how ,
SCFlags sub ,
SCFlags subActive ,
const QStyleOption & opt ) const
const QStyleOption & opt ,
const QWidget * widget ) const
{
switch ( cc ) {
case CC_ComboBox :
{
const QComboBox * cmb ;
cmb = ( const QComboBox * ) widget ;
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 ) ;
drawPrimitive ( PE_ButtonCommand , p , r, cg , Style_Raised , opt ) ;
drawPrimitive ( PE_ButtonCommand , p , ceData, elementFlags , r, cg , Style_Raised , opt ) ;
QStyle * mstyle = QStyleFactory : : create ( " Motif " ) ;
if ( mstyle )
mstyle - > drawPrimitive ( PE_ArrowDown , p ,
mstyle - > drawPrimitive ( PE_ArrowDown , p , ceData , elementFlags ,
QRect ( ax , ay , awh , awh ) , cg , how , opt ) ;
else
drawPrimitive ( PE_ArrowDown , p ,
drawPrimitive ( PE_ArrowDown , p , ceData , elementFlags ,
QRect ( ax , ay , awh , awh ) , cg , how , opt ) ;
QPen 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 - > setPen ( oldPen ) ;
if ( cmb- > editable ( ) ) {
QRect r ( querySubControlMetrics ( CC_ComboBox , widget ,
SC_ComboBoxEditField , opt ) ) ;
if ( elementFlags & CEF_IsEditable ) {
QRect r ( querySubControlMetrics ( CC_ComboBox , ceData, elementFlags ,
SC_ComboBoxEditField , opt , widget ) ) ;
qDrawShadePanel ( p , r , cg , TRUE , 1 ,
& cg . brush ( QColorGroup : : Button ) ) ;
}
@ -1165,17 +1162,19 @@ void NorwegianWoodStyle::drawComplexControl( ComplexControl cc,
break ;
}
default :
QWindowsStyle : : drawComplexControl ( cc , p , widget , r , cg , how ,
sub , subActive , opt ) ;
QWindowsStyle : : drawComplexControl ( cc , p , ceData, elementFlags , r , cg , how ,
sub , subActive , opt , widget ) ;
break ;
}
}
void NorwegianWoodStyle : : drawComplexControlMask ( ComplexControl control ,
QPainter * p ,
const QWidget * widget ,
const QStyleControlElementData ceData ,
const ControlElementFlags elementFlags ,
const QRect & r ,
const QStyleOption & opt ) const
const QStyleOption & opt ,
const QWidget * widget ) const
{
switch ( control ) {
case CC_ComboBox :
@ -1187,15 +1186,17 @@ void NorwegianWoodStyle::drawComplexControlMask( ComplexControl control,
break ;
}
default :
QWindowsStyle : : drawComplexControlMask ( control , p , widget, r , op t ) ;
QWindowsStyle : : drawComplexControlMask ( control , p , ceData, elementFlags , r , opt , widge t ) ;
break ;
}
}
QRect NorwegianWoodStyle : : querySubControlMetrics ( ComplexControl control ,
const QWidget * widget ,
QStyleControlElementData ceData ,
ControlElementFlags elementFlags ,
SubControl sc ,
const QStyleOption & opt ) const
const QStyleOption & opt ,
const QWidget * widget ) const
{
QRect rect ;
switch ( control ) {
@ -1204,62 +1205,58 @@ QRect NorwegianWoodStyle::querySubControlMetrics( ComplexControl control,
switch ( sc ) {
case SC_ComboBoxEditField :
{
rect = subRect ( SR_PushButtonContents , widget ) ;
rect = subRect ( SR_PushButtonContents , ceData, elementFlags , widget ) ;
int ew = get_combo_extra_width ( rect . height ( ) , 0 ) ;
rect . setRect ( rect . x ( ) + 1 , rect . y ( ) + 1 ,
rect . width ( ) - 2 - ew , rect . height ( ) - 2 ) ;
break ;
}
default :
rect = QWindowsStyle : : querySubControlMetrics ( control , widget ,
sc , opt ) ;
rect = QWindowsStyle : : querySubControlMetrics ( control , ceData, elementFlags ,
sc , opt , widget ) ;
break ;
}
break ;
}
case CC_ScrollBar :
{
const QScrollBar * sb ;
sb = ( const QScrollBar * ) widget ;
bool horz = sb - > orientation ( ) = = QScrollBar : : Horizontal ;
bool horz = ceData . orientation = = QScrollBar : : Horizontal ;
int b = 2 ;
int w = horz ? sb- > height ( ) : sb - > width ( ) ;
int w = horz ? ceData . rect . height ( ) : ceData . rect . width ( ) ;
switch ( sc ) {
case SC_ScrollBarAddLine :
rect . setRect ( b , b , w - 2 * b , w - 2 * b ) ;
if ( horz )
rect . moveBy ( sb- > width ( ) - w , 0 ) ;
rect . moveBy ( ceData. rect . width ( ) - w , 0 ) ;
else
rect . moveBy ( 0 , sb- > height ( ) - w ) ;
rect . moveBy ( 0 , ceData. rect . height ( ) - w ) ;
break ;
case SC_ScrollBarSubLine :
rect . setRect ( b , b , w - 2 * b , w - 2 * b ) ;
break ;
default :
rect = QWindowsStyle : : querySubControlMetrics ( control , widget ,
sc , opt ) ;
rect = QWindowsStyle : : querySubControlMetrics ( control , ceData, elementFlags ,
sc , opt , widget ) ;
break ;
}
break ;
}
default :
rect = QWindowsStyle : : querySubControlMetrics ( control , widget ,
sc , opt ) ;
rect = QWindowsStyle : : querySubControlMetrics ( control , ceData, elementFlags ,
sc , opt , widget ) ;
break ;
}
return rect ;
}
QRect NorwegianWoodStyle : : subRect ( SubRect sr , const Q Widget * widget ) const
QRect NorwegianWoodStyle : : subRect ( SubRect sr , const Q StyleControlElementData ceData , const ControlElementFlags elementFlags , const Q Widget * widget ) const
{
QRect r ;
switch ( sr ) {
case SR_PushButtonContents :
{
const QPushButton * btn ;
btn = ( const QPushButton * ) widget ;
r = btn - > rect ( ) ;
r = ceData . rect ;
int d = QMIN ( r . width ( ) , r . height ( ) ) / 2 ;
int b = buttonthickness ( d ) ;
@ -1276,14 +1273,14 @@ QRect NorwegianWoodStyle::subRect( SubRect sr, const QWidget * widget ) const
}
case SR_ComboBoxFocusRect :
{
r = subRect ( SR_PushButtonContents , widget ) ;
r = subRect ( SR_PushButtonContents , ceData, elementFlags , widget ) ;
int ew = get_combo_extra_width ( r . height ( ) ) ;
r . setRect ( r . x ( ) + 1 , r . y ( ) + 1 , r . width ( ) - 2 - ew ,
r . height ( ) - 2 ) ;
break ;
}
default :
r = QWindowsStyle : : subRect ( sr , widget ) ;
r = QWindowsStyle : : subRect ( sr , ceData, elementFlags , widget ) ;
break ;
}
return r ;
@ -1358,11 +1355,12 @@ static void get_combo_parameters( const QRect &r,
static inline int buttonthickness ( int d )
{ return d > 20 ? 5 : ( d < 10 ? 2 : 3 ) ; }
void NorwegianWoodStyle : : drawSemicircleButton ( QPainter * p , const QRect & r ,
void NorwegianWoodStyle : : drawSemicircleButton ( QPainter * p , QStyleControlElementData ceData ,
ControlElementFlags elementFlags , const QRect & r ,
int dir , bool sunken ,
const QColorGroup & g ) const
{
int b = pixelMetric ( PM_ScrollBarExtent ) > 20 ? 3 : 2 ;
int b = pixelMetric ( PM_ScrollBarExtent , ceData , elementFlags ) > 20 ? 3 : 2 ;
QRegion extrn ( r . x ( ) , r . y ( ) , r . width ( ) , r . height ( ) , QRegion : : Ellipse ) ;
QRegion intern ( r . x ( ) + b , r . y ( ) + b , r . width ( ) - 2 * b , r . height ( ) - 2 * b , QRegion : : Ellipse ) ;