diff options
Diffstat (limited to 'tqtinterface/qt4/src/styles')
24 files changed, 0 insertions, 15243 deletions
diff --git a/tqtinterface/qt4/src/styles/qt_styles.pri b/tqtinterface/qt4/src/styles/qt_styles.pri deleted file mode 100644 index 1dc8983..0000000 --- a/tqtinterface/qt4/src/styles/qt_styles.pri +++ /dev/null @@ -1,140 +0,0 @@ -# Qt styles module - -styles { - STYLES_P = styles - HEADERS +=$$STYLES_H/tqstylefactory.h \ - $$STYLES_P/tqstyleinterface_p.h \ - $$STYLES_H/tqstyleplugin.h \ - $$STYLES_H/tqcommonstyle.h - SOURCES +=$$STYLES_CPP/tqstylefactory.cpp \ - $$STYLES_CPP/tqstyleplugin.cpp \ - $$STYLES_CPP/tqcommonstyle.cpp - - contains( styles, all ) { - styles += mac cde motifplus sgi platinum compact interlace windows motif - } - - x11|embedded|!macx-*:styles -= mac - contains( styles, mac ) { - HEADERS +=$$STYLES_H/tqmacstyle_mac.h \ - $$STYLES_H/tqmacstylepixmaps_mac_p.h - SOURCES +=$$STYLES_CPP/tqmacstyle_mac.cpp - HEADERS *= $$STYLES_CPP/tqaquastyle_p.h - SOURCES *= $$STYLES_CPP/tqaquastyle_p.cpp - - !contains( styles, windows ) { - message( mac requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_MAC - - #embedded|!macx-*:styles -= aqua - contains( styles, aqua ) { - HEADERS += $$STYLES_H/tqaquastyle.h - SOURCES += $$STYLES_CPP/tqaquastyle.cpp - HEADERS *= $$STYLES_CPP/tqaquastyle_p.h - SOURCES *= $$STYLES_CPP/tqaquastyle_p.cpp - - !contains( styles, windows ) { - message( aqua requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_AQUA - - contains( styles, cde ) { - HEADERS +=$$STYLES_H/tqcdestyle.h - SOURCES +=$$STYLES_CPP/tqcdestyle.cpp - - !contains( styles, motif ) { - message( cde requires motif ) - styles += motif - } - } - else:DEFINES += TQT_NO_STYLE_CDE - - contains( styles, motifplus ) { - HEADERS +=$$STYLES_H/tqmotifplusstyle.h - SOURCES +=$$STYLES_CPP/tqmotifplusstyle.cpp - !contains( styles, motif ) { - message( motifplus requires motif ) - styles += motif - } - } - else:DEFINES += TQT_NO_STYLE_MOTIFPLUS - - contains( styles, interlace ) { - HEADERS +=$$STYLES_H/tqinterlacestyle.h - SOURCES +=$$STYLES_CPP/tqinterlacestyle.cpp - !contains( styles, windows ) { - message( interlace requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_INTERLACE - - contains( styles, platinum ) { - HEADERS +=$$STYLES_H/tqplatinumstyle.h - SOURCES +=$$STYLES_CPP/tqplatinumstyle.cpp - !contains( styles, windows ) { - message( platinum requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_PLATINUM - - contains( styles, windowsxp ) { - HEADERS +=$$STYLES_H/tqwindowsxpstyle.h - SOURCES +=$$STYLES_CPP/tqwindowsxpstyle.cpp - !contains( styles, windowsxp ) { - message( windowsxp requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_WINDOWSXP - - contains( styles, sgi ) { - HEADERS +=$$STYLES_H/tqsgistyle.h - SOURCES +=$$STYLES_CPP/tqsgistyle.cpp - !contains( styles, motif ) { - message( sgi requires motif ) - styles += motif - } - } - else:DEFINES += TQT_NO_STYLE_SGI - - contains( styles, compact ) { - HEADERS +=$$STYLES_H/tqcompactstyle.h - SOURCES +=$$STYLES_CPP/tqcompactstyle.cpp - !contains( styles, windows ) { - message( compact requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_COMPACT - - wince-*:styles += pocketpc - contains( styles, pocketpc ) { - HEADERS +=$$STYLES_H/tqpocketpcstyle_wce.h - SOURCES +=$$STYLES_CPP/tqpocketpcstyle_wce.cpp - - !contains( styles, windows ) { - message( pocketpc requires windows ) - styles += windows - } - } - else:DEFINES += TQT_NO_STYLE_POCKETPC - - contains( styles, windows ) { - HEADERS +=$$STYLES_H/tqwindowsstyle.h - SOURCES +=$$STYLES_CPP/tqwindowsstyle.cpp - } - else:DEFINES += TQT_NO_STYLE_WINDOWS - - contains( styles, motif ) { - HEADERS +=$$STYLES_H/tqmotifstyle.h - SOURCES +=$$STYLES_CPP/tqmotifstyle.cpp - } - else:DEFINES += TQT_NO_STYLE_MOTIF -} diff --git a/tqtinterface/qt4/src/styles/tqcdestyle.cpp b/tqtinterface/qt4/src/styles/tqcdestyle.cpp deleted file mode 100644 index 8dda161..0000000 --- a/tqtinterface/qt4/src/styles/tqcdestyle.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/**************************************************************************** -** -** Implementation of CDE-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqcdestyle.h" - -#if !defined(TQT_NO_STYLE_CDE) || defined(TQT_PLUGIN) - -#include "tqpainter.h" -#include "tqdrawutil.h" -#include "tqbutton.h" -#include <limits.h> - -/*! - \class TQCDEStyle tqcdestyle.h - \brief The TQCDEStyle class provides a CDE look and feel. - - \ingroup appearance - - This style provides a slightly improved Motif look similar to some - versions of the Common Desktop Environment (CDE). The main - differences are thinner frames and more modern radio buttons and - checkboxes. Together with a dark background and a bright - text/foreground color, the style looks quite attractive (at least - for Motif fans). - - Note that the functions provided by TQCDEStyle are - reimplementations of TQStyle functions; see TQStyle for their - documentation. -*/ - -/*! - Constructs a TQCDEStyle. - - If \a useHighlightCols is FALSE (the default), then the style will - polish the application's color palette to emulate the Motif way of - highlighting, which is a simple inversion between the base and the - text color. -*/ -TQCDEStyle::TQCDEStyle( bool useHighlightCols ) : TQMotifStyle( useHighlightCols ) -{ -} - -/*! - Destroys the style. -*/ -TQCDEStyle::~TQCDEStyle() -{ -} - - -/*!\reimp -*/ -int TQCDEStyle::tqpixelMetric( PixelMetric metric, const TQWidget *widget ) const -{ - int ret; - - switch( metric ) { - case PM_DefaultFrameWidth: - ret = 1; - break ; - case PM_MenuBarFrameWidth: - ret = 1; - break; - case PM_ScrollBarExtent: - ret = 13; - break; - default: - ret = TQMotifStyle::tqpixelMetric( metric, widget ); - break; - } - return ret; -} - -/*! \reimp -*/ -void TQCDEStyle::tqdrawControl( ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how, - const TQStyleOption& opt ) const -{ - - switch( element ) { - case CE_MenuBarItem: - { - if ( how & Style_Active ) // active item - qDrawShadePanel( p, r, cg, TRUE, 1, - &cg.brush( TQColorGroup::Button ) ); - else // other item - p->fillRect( r, cg.brush( TQColorGroup::Button ) ); - TQCommonStyle::tqdrawControl( element, p, widget, r, cg, how, opt ); - break; - } - default: - TQMotifStyle::tqdrawControl( element, p, widget, r, cg, how, opt ); - break; - } - - -} - -/*! \reimp -*/ -void TQCDEStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch( pe ) { - case PE_Indicator: { -#ifndef TQT_NO_BUTTON - bool down = flags & Style_Down; - bool on = flags & Style_On; - bool showUp = !( down ^ on ); - TQBrush fill = showUp || flags & Style_NoChange ? cg.brush( TQColorGroup::Button ) : cg.brush( TQColorGroup::Mid ); - qDrawShadePanel( p, r, cg, !showUp, tqpixelMetric( PM_DefaultFrameWidth ), &cg.brush( TQColorGroup::Button ) ); - - if ( !( flags & Style_Off ) ) { - TQPointArray a( 7 * 2 ); - int i, xx, yy; - xx = r.x() + 3; - yy = r.y() + 5; - for ( i = 0; i < 3; i++ ) { - a.setPoint( 2 * i, xx, yy ); - a.setPoint( 2 * i + 1, xx, yy + 2 ); - xx++; yy++; - } - yy -= 2; - for ( i = 3; i < 7; i++ ) { - a.setPoint( 2 * i, xx, yy ); - a.setPoint( 2 * i + 1, xx, yy + 2 ); - xx++; yy--; - } - if ( flags & Style_NoChange ) - p->setPen( cg.dark() ); - else - p->setPen( cg.foreground() ); - p->drawLineSegments( a ); - } -#endif - } - break; - case PE_ExclusiveIndicator: - { -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - static const TQCOORD pts1[] = { // up left lines - 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; - static const TQCOORD pts4[] = { // bottom right lines - 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, - 11,4, 10,3, 10,2 }; - static const TQCOORD pts5[] = { // inner fill - 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; - bool down = flags & Style_Down; - bool on = flags & Style_On; - p->eraseRect( r ); - TQPointArray a( TQCOORDARRLEN(pts1), pts1 ); - a.translate( r.x(), r.y() ); - p->setPen( ( down || on ) ? cg.dark() : cg.light() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts4), pts4 ); - a.translate( r.x(), r.y() ); - p->setPen( ( down || on ) ? cg.light() : cg.dark() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts5), pts5 ); - a.translate( r.x(), r.y() ); - TQColor fillColor = on ? cg.dark() : cg.background(); - p->setPen( fillColor ); - p->setBrush( on ? cg.brush( TQColorGroup::Dark ) : - cg.brush( TQColorGroup::Background ) ); - p->drawPolygon( a ); - break; - } - - case PE_ExclusiveIndicatorMask: - { - static const TQCOORD pts1[] = { - // up left lines - 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1, - // bottom right lines - 10,2, 10,3, 11,4, 11,7, 10,8, 10,9, 9,10, 8,10, 7,11, 4,11, 3,10, 2,10 - }; - TQPointArray a(TQCOORDARRLEN(pts1), pts1); - a.translate(r.x(), r.y()); - p->setPen(Qt::color1); - p->setBrush(Qt::color1); - p->drawPolygon(a); - break; - } - case PE_ArrowUp: - case PE_ArrowDown: - case PE_ArrowRight: - case PE_ArrowLeft: { - TQRect rect = r; - TQPointArray bFill; // fill polygon - TQPointArray bTop; // top shadow. - TQPointArray bBot; // bottom shadow. - TQPointArray bLeft; // left shadow. - TQWMatrix matrix; // xform matrix - bool vertical = pe == PE_ArrowUp || pe == PE_ArrowDown; - bool horizontal = !vertical; - int dim = rect.width() < rect.height() ? rect.width() : rect.height(); - int colspec = 0x0000; // color specification array - - if ( dim < 2 ) // too small arrow - return; - - // adjust size and center (to fix rotation below) - if ( rect.width() > dim ) { - rect.setX( rect.x() + ( ( rect.width() - dim ) / 2 ) ); - rect.setWidth( dim ); - } - if ( rect.height() > dim ) { - rect.setY( rect.y() + ( ( rect.height() - dim ) / 2 ) ); - rect.setHeight( dim ); - } - - if ( dim > 3 ) { - bFill.resize( dim & 1 ? 3 : 4 ); - bTop.resize( 2 ); - bBot.resize( 2 ); - bLeft.resize( 2 ); - bLeft.putPoints( 0, 2, 0, 0, 0, dim-1 ); - bTop.putPoints( 0, 2, 1, 0, dim-1, dim/2 ); - bBot.putPoints( 0, 2, 1, dim-1, dim-1, dim/2 ); - - if ( dim > 6 ) { // dim>6: must fill interior - bFill.putPoints( 0, 2, 1, dim-1, 1, 1 ); - if ( dim & 1 ) // if size is an odd number - bFill.setPoint( 2, dim - 2, dim / 2 ); - else - bFill.putPoints( 2, 2, dim-2, dim/2-1, dim-2, dim/2 ); - } - } else { - if ( dim == 3 ) { // 3x3 arrow pattern - bLeft.setPoints( 4, 0,0, 0,2, 1,1, 1,1 ); - bTop .setPoints( 2, 1,0, 1,0 ); - bBot .setPoints( 2, 1,2, 2,1 ); - } else { // 2x2 arrow pattern - bLeft.setPoints( 2, 0,0, 0,1 ); - bTop .setPoints( 2, 1,0, 1,0 ); - bBot .setPoints( 2, 1,1, 1,1 ); - } - } - - if ( pe == PE_ArrowUp || pe == PE_ArrowLeft ) { - matrix.translate( rect.x(), rect.y() ); - if ( vertical ) { - matrix.translate( 0, rect.height() - 1 ); - matrix.rotate( -90 ); - } else { - matrix.translate( rect.width() - 1, rect.height() - 1 ); - matrix.rotate( 180 ); - } - if ( flags & Style_Down ) - colspec = horizontal ? 0x2334 : 0x2343; - else - colspec = horizontal ? 0x1443 : 0x1434; - } else if ( pe == PE_ArrowDown || pe == PE_ArrowRight ) { - matrix.translate( rect.x(), rect.y() ); - if ( vertical ) { - matrix.translate( rect.width()-1, 0 ); - matrix.rotate( 90 ); - } - if ( flags & Style_Down ) - colspec = horizontal ? 0x2443 : 0x2434; - else - colspec = horizontal ? 0x1334 : 0x1343; - } - - TQColor *cols[5]; - if ( flags & Style_Enabled ) { - cols[0] = 0; - cols[1] = (TQColor *)&cg.button(); - cols[2] = (TQColor *)&cg.mid(); - cols[3] = (TQColor *)&cg.light(); - cols[4] = (TQColor *)&cg.dark(); - } else { - cols[0] = 0; - cols[1] = (TQColor *)&cg.button(); - cols[2] = (TQColor *)&cg.button(); - cols[3] = (TQColor *)&cg.button(); - cols[4] = (TQColor *)&cg.button(); - } - -#define CMID *cols[ (colspec>>12) & 0xf ] -#define CLEFT *cols[ (colspec>>8) & 0xf ] -#define CTOP *cols[ (colspec>>4) & 0xf ] -#define CBOT *cols[ colspec & 0xf ] - - TQPen savePen = p->pen(); // save current pen - TQBrush saveBrush = p->brush(); // save current brush - TQWMatrix wxm = p->tqworldMatrix(); - TQPen pen( Qt::NoPen ); - TQBrush brush = cg.brush( flags & Style_Enabled ? TQColorGroup::Button : - TQColorGroup::Mid ); - - p->setPen( pen ); - p->setBrush( brush ); - p->setWorldMatrix( matrix, TRUE ); // set transformation matrix - p->drawPolygon( bFill ); // fill arrow - p->setBrush( Qt::NoBrush ); // don't fill - - p->setPen( CLEFT ); - p->drawLineSegments( bLeft ); - p->setPen( CBOT ); - p->drawLineSegments( bBot ); - p->setPen( CTOP ); - p->drawLineSegments( bTop ); - - p->setWorldMatrix( wxm ); - p->setBrush( saveBrush ); // restore brush - p->setPen( savePen ); // restore pen - -#undef CMID -#undef CLEFT -#undef CTOP -#undef CBOT - - } - break; - default: - TQMotifStyle::tqdrawPrimitive( pe, p, r, cg, flags, opt ); - } -} - -#endif diff --git a/tqtinterface/qt4/src/styles/tqcdestyle.h b/tqtinterface/qt4/src/styles/tqcdestyle.h deleted file mode 100644 index bcd7eeb..0000000 --- a/tqtinterface/qt4/src/styles/tqcdestyle.h +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** -** -** Definition of the CDE-like style class -** -** Created : 990513 -** -** Copyright (C) 1999-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - - -#ifndef TQCDESTYLE_H -#define TQCDESTYLE_H - -#ifndef TQT_H -#include "tqmotifstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_CDE) || defined(TQT_PLUGIN) - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_CDE -#else -#define TQ_EXPORT_STYLE_CDE TQ_EXPORT -#endif - -class TQ_EXPORT_STYLE_CDE TQCDEStyle : public TQMotifStyle -{ - Q_OBJECT - TQ_OBJECT -public: - - TQCDEStyle( bool useHighlightCols = FALSE ); - virtual ~TQCDEStyle(); - - int tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const; - - void tqdrawControl( ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - -}; - -#endif // TQT_NO_STYLE_CDE - -#endif // TQCDESTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqcommonstyle.cpp b/tqtinterface/qt4/src/styles/tqcommonstyle.cpp deleted file mode 100644 index 90a5588..0000000 --- a/tqtinterface/qt4/src/styles/tqcommonstyle.cpp +++ /dev/null @@ -1,2727 +0,0 @@ -/**************************************************************************** -** -** Implementation of the TQCommonStyle class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqcommonstyle.h" - -#ifndef TQT_NO_STYLE - -#include "tqmenubar.h" -#include "tqapplication.h" -#include "tqpainter.h" -#include "tqdrawutil.h" -#include "tqpixmap.h" -#include "tqpushbutton.h" -#include "tqtabbar.h" -#include "tqscrollbar.h" -#include "tqtoolbutton.h" -#include "tqtoolbar.h" -#include "tqdockarea.h" -#include "tqheader.h" -#include "tqspinbox.h" -#include "tqrangecontrol.h" -#include "tqgroupbox.h" -#include "tqslider.h" -#include "tqlistview.h" -#include "tqcheckbox.h" -#include "tqradiobutton.h" -#include "tqbitmap.h" -#include "tqprogressbar.h" -#include "private/tqdialogbuttons_p.h" -#include <limits.h> -#include <tqpixmap.h> -#include "../widgets/tqtitlebar_p.h" -#include <tqtoolbox.h> - -/*! - \class TQCommonStyle tqcommonstyle.h - \brief The TQCommonStyle class encapsulates the common Look and Feel of a GUI. - - \ingroup appearance - - This abstract class implements some of the widget's look and feel - that is common to all GUI styles provided and shipped as part of - TQt. - - All the functions are documented in \l TQStyle. -*/ - -/*! - \enum TQt::ArrowType - - \value UpArrow - \value DownArrow - \value LeftArrow - \value RightArrow - -*/ - -// the active painter, if any... this is used as an optimzation to -// avoid creating a painter if we have an active one (since -// TQStyle::tqitemRect() needs a painter to operate correctly -static TQPainter *activePainter = 0; - -/*! - Constructs a TQCommonStyle. -*/ -TQCommonStyle::TQCommonStyle() : TQStyle() -{ - activePainter = 0; -} - -/*! \reimp */ -TQCommonStyle::~TQCommonStyle() -{ - activePainter = 0; -} - - -static const char * const check_list_controller_xpm[] = { -"16 16 4 1", -" c None", -". c #000000000000", -"X c #FFFFFFFF0000", -"o c #C71BC30BC71B", -" ", -" ", -" .......... ", -" .XXXXXXXX. ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" .XXXXXXXX.oo ", -" ..........oo ", -" oooooooooo ", -" oooooooooo ", -" ", -" "}; - -/*! \reimp */ -void TQCommonStyle::tqdrawPrimitive( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - activePainter = p; - - switch (pe) { -#ifndef TQT_NO_LISTVIEW - case TQStyle::PE_CheckListController: { - p->drawPixmap(r, TQPixmap((const char **)check_list_controller_xpm)); - break; } - case TQStyle::PE_CheckListExclusiveIndicator: { - TQCheckListItem *item = opt.checkListItem(); - TQListView *lv = item->listView(); - if(!item) - return; - int x = r.x(), y = r.y(); -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - static const TQCOORD pts1[] = { // dark lines - 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; - static const TQCOORD pts2[] = { // black lines - 2,8, 1,7, 1,4, 2,3, 2,2, 3,2, 4,1, 7,1, 8,2, 9,2 }; - static const TQCOORD pts3[] = { // background lines - 2,9, 3,9, 4,10, 7,10, 8,9, 9,9, 9,8, 10,7, 10,4, 9,3 }; - static const TQCOORD pts4[] = { // white lines - 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, - 11,4, 10,3, 10,2 }; - // static const TQCOORD pts5[] = { // inner fill - // 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; - //TQPointArray a; - // p->eraseRect( x, y, w, h ); - - if ( flags & Style_Enabled ) - p->setPen( cg.text() ); - else - p->setPen( TQPen( lv->tqpalette().color( TQPalette::Disabled, TQColorGroup::Text ) ) ); - TQPointArray a( TQCOORDARRLEN(pts1), pts1 ); - a.translate( x, y ); - //p->setPen( cg.dark() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts2), pts2 ); - a.translate( x, y ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts3), pts3 ); - a.translate( x, y ); - // p->setPen( black ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts4), pts4 ); - a.translate( x, y ); - // p->setPen( blue ); - p->drawPolyline( a ); - // a.setPoints( TQCOORDARRLEN(pts5), pts5 ); - // a.translate( x, y ); - // TQColor fillColor = isDown() ? g.background() : g.base(); - // p->setPen( fillColor ); - // p->setBrush( fillColor ); - // p->drawPolygon( a ); - if ( flags & Style_On ) { - p->setPen( TQt::NoPen ); - p->setBrush( cg.text() ); - p->drawRect( x+5, y+4, 2, 4 ); - p->drawRect( x+4, y+5, 4, 2 ); - } - break; } - case TQStyle::PE_CheckListIndicator: { - TQCheckListItem *item = opt.checkListItem(); - TQListView *lv = item->listView(); - if(!item) - return; - int x = r.x(), y = r.y(), w = r.width(), h = r.width(), marg = lv->itemMargin(); - - if ( flags & Style_Enabled ) - p->setPen( TQPen( cg.text(), 2 ) ); - else - p->setPen( TQPen( lv->tqpalette().color( TQPalette::Disabled, TQColorGroup::Text ), - 2 ) ); - bool parentControl = FALSE; - if ( item->parent() && item->parent()->rtti() == 1 && - ((TQCheckListItem*) item->parent())->type() == TQCheckListItem::Controller ) - parentControl = TRUE; - if ( flags & Style_Selected && !lv->rootIsDecorated() && !parentControl ) { - p->fillRect( 0, 0, x + marg + w + 4, item->height(), - cg.brush( TQColorGroup::Highlight ) ); - if ( item->isEnabled() ) - p->setPen( TQPen( cg.highlightedText(), 2 ) ); - } - - if ( flags & Style_NoChange ) - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->drawRect( x+marg, y+2, w-4, h-4 ); - ///////////////////// - x++; - y++; - if ( ( flags & Style_On) || ( flags & Style_NoChange ) ) { - TQPointArray a( 7*2 ); - int i, xx = x+1+marg, yy=y+5; - for ( i=0; i<3; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - yy -= 2; - for ( i=3; i<7; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - p->drawLineSegments( a ); - } - break; } -#endif - case TQStyle::PE_HeaderArrow: - p->save(); - if ( flags & Style_Down ) { - TQPointArray pa( 3 ); - p->setPen( cg.light() ); - p->drawLine( r.x() + r.width(), r.y(), r.x() + r.width() / 2, r.height() ); - p->setPen( cg.dark() ); - pa.setPoint( 0, r.x() + r.width() / 2, r.height() ); - pa.setPoint( 1, r.x(), r.y() ); - pa.setPoint( 2, r.x() + r.width(), r.y() ); - p->drawPolyline( pa ); - } else { - TQPointArray pa( 3 ); - p->setPen( cg.light() ); - pa.setPoint( 0, r.x(), r.height() ); - pa.setPoint( 1, r.x() + r.width(), r.height() ); - pa.setPoint( 2, r.x() + r.width() / 2, r.y() ); - p->drawPolyline( pa ); - p->setPen( cg.dark() ); - p->drawLine( r.x(), r.height(), r.x() + r.width() / 2, r.y() ); - } - p->restore(); - break; - - case TQStyle::PE_StatusBarSection: - qDrawShadeRect( p, r, cg, TRUE, 1, 0, 0 ); - break; - - case TQStyle::PE_ButtonCommand: - case TQStyle::PE_ButtonBevel: - case TQStyle::PE_ButtonTool: - case TQStyle::PE_ButtonDropDown: - case TQStyle::PE_HeaderSection: - case TQStyle::PE_HeaderSectionMenu: - qDrawShadePanel(p, r, cg, flags & (Style_Sunken | Style_Down | Style_On) , 1, - &cg.brush(TQColorGroup::Button)); - break; - - case TQStyle::PE_Separator: - qDrawShadeLine( p, r.left(), r.top(), r.right(), r.bottom(), cg, - flags & Style_Sunken, 1, 0); - break; - - case TQStyle::PE_FocusRect: { - const TQColor *bg = 0; - - if (!opt.isDefault()) - bg = &opt.color(); - - TQPen oldPen = p->pen(); - - if (bg) { - int h, s, v; - bg->hsv(&h, &s, &v); - if (v >= 128) - p->setPen(TQt::black); - else - p->setPen(TQt::white); - } else - p->setPen(cg.foreground()); - - if (flags & Style_FocusAtBorder) - p->drawRect(TQRect(r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2)); - else - p->drawRect(r); - - p->setPen(oldPen); - break; } - - case TQStyle::PE_SpinWidgetPlus: - case TQStyle::PE_SpinWidgetMinus: { - p->save(); - int fw = tqpixelMetric( PM_DefaultFrameWidth, 0 ); - TQRect br; - br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2, - r.height() - fw*2 ); - - p->fillRect( br, cg.brush( TQColorGroup::Button ) ); - p->setPen( cg.buttonText() ); - p->setBrush( cg.buttonText() ); - - int length; - int x = r.x(), y = r.y(), w = r.width(), h = r.height(); - if ( w <= 8 || h <= 6 ) - length = TQMIN( w-2, h-2 ); - else - length = TQMIN( 2*w / 3, 2*h / 3 ); - - if ( !(length & 1) ) - length -=1; - int xmarg = ( w - length ) / 2; - int ymarg = ( h - length ) / 2; - - p->drawLine( x + xmarg, ( y + h / 2 - 1 ), - x + xmarg + length - 1, ( y + h / 2 - 1 ) ); - if ( pe == TQStyle::PE_SpinWidgetPlus ) - p->drawLine( ( x+w / 2 ) - 1, y + ymarg, - ( x+w / 2 ) - 1, y + ymarg + length - 1 ); - p->restore(); - break; } - - case TQStyle::PE_SpinWidgetUp: - case TQStyle::PE_SpinWidgetDown: { - int fw = tqpixelMetric( PM_DefaultFrameWidth, 0 ); - TQRect br; - br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2, - r.height() - fw*2 ); - p->fillRect( br, cg.brush( TQColorGroup::Button ) ); - int x = r.x(), y = r.y(), w = r.width(), h = r.height(); - int sw = w-4; - if ( sw < 3 ) - break; - else if ( !(sw & 1) ) - sw--; - sw -= ( sw / 7 ) * 2; // Empty border - int sh = sw/2 + 2; // Must have empty row at foot of arrow - - int sx = x + w / 2 - sw / 2 - 1; - int sy = y + h / 2 - sh / 2 - 1; - - TQPointArray a; - if ( pe == TQStyle::PE_SpinWidgetDown ) - a.setPoints( 3, 0, 1, sw-1, 1, sh-2, sh-1 ); - else - a.setPoints( 3, 0, sh-1, sw-1, sh-1, sh-2, 1 ); - int bsx = 0; - int bsy = 0; - if ( flags & Style_Sunken ) { - bsx = tqpixelMetric(PM_ButtonShiftHorizontal); - bsy = tqpixelMetric(PM_ButtonShiftVertical); - } - p->save(); - p->translate( sx + bsx, sy + bsy ); - p->setPen( cg.buttonText() ); - p->setBrush( cg.buttonText() ); - p->drawPolygon( a ); - p->restore(); - break; } - - case TQStyle::PE_Indicator: { - if (flags & Style_NoChange) { - p->setPen(cg.foreground()); - p->fillRect(r, cg.brush(TQColorGroup::Button)); - p->drawRect(r); - p->drawLine(r.topLeft(), r.bottomRight()); - } else - qDrawShadePanel(p, r.x(), r.y(), r.width(), r.height(), - cg, flags & (Style_Sunken | Style_On), 1, - &cg.brush(TQColorGroup::Button)); - break; } - - case TQStyle::PE_IndicatorMask: { - p->fillRect(r, Qt::color1); - break; } - - case TQStyle::PE_ExclusiveIndicator: { - TQRect ir = r; - p->setPen(cg.dark()); - p->drawArc(r, 0, 5760); - - if (flags & (Style_Sunken | Style_On)) { - ir.addCoords(2, 2, -2, -2); - p->setBrush(cg.foreground()); - p->drawEllipse(ir); - } - - break; } - - case TQStyle::PE_ExclusiveIndicatorMask: { - p->setPen(Qt::color1); - p->setBrush(Qt::color1); - p->drawEllipse(r); - break; } - - case TQStyle::PE_DockWindowHandle: { - bool highlight = flags & Style_On; - - p->save(); - p->translate( r.x(), r.y() ); - if ( flags & Style_Horizontal ) { - int x = r.width() / 3; - if ( r.height() > 4 ) { - qDrawShadePanel( p, x, 2, 3, r.height() - 4, - cg, highlight, 1, 0 ); - qDrawShadePanel( p, x+3, 2, 3, r.height() - 4, - cg, highlight, 1, 0 ); - } - } else { - if ( r.width() > 4 ) { - int y = r.height() / 3; - qDrawShadePanel( p, 2, y, r.width() - 4, 3, - cg, highlight, 1, 0 ); - qDrawShadePanel( p, 2, y+3, r.width() - 4, 3, - cg, highlight, 1, 0 ); - } - } - p->restore(); - break; - } - - case TQStyle::PE_DockWindowSeparator: { - TQPoint p1, p2; - if ( flags & Style_Horizontal ) { - p1 = TQPoint( r.width()/2, 0 ); - p2 = TQPoint( p1.x(), r.height() ); - } else { - p1 = TQPoint( 0, r.height()/2 ); - p2 = TQPoint( r.width(), p1.y() ); - } - qDrawShadeLine( p, p1, p2, cg, 1, 1, 0 ); - break; } - - case TQStyle::PE_Panel: - case TQStyle::PE_PanelPopup: { - int lw = opt.isDefault() ? tqpixelMetric(PM_DefaultFrameWidth) - : opt.lineWidth(); - - qDrawShadePanel(p, r, cg, (flags & Style_Sunken), lw); - break; } - - case TQStyle::PE_PanelDockWindow: { - int lw = opt.isDefault() ? tqpixelMetric(PM_DockWindowFrameWidth) - : opt.lineWidth(); - - qDrawShadePanel(p, r, cg, FALSE, lw); - break; } - - case TQStyle::PE_PanelMenuBar: { - int lw = opt.isDefault() ? tqpixelMetric(PM_MenuBarFrameWidth) - : opt.lineWidth(); - - qDrawShadePanel(p, r, cg, FALSE, lw, &cg.brush(TQColorGroup::Button)); - break; } - - case TQStyle::PE_SizeGrip: { - p->save(); - - int x, y, w, h; - r.rect(&x, &y, &w, &h); - - int sw = TQMIN( h,w ); - if ( h > w ) - p->translate( 0, h - w ); - else - p->translate( w - h, 0 ); - - int sx = x; - int sy = y; - int s = sw / 3; - - if ( TQApplication::reverseLayout() ) { - sx = x + sw; - for ( int i = 0; i < 4; ++i ) { - p->setPen( TQPen( cg.light(), 1 ) ); - p->drawLine( x, sy - 1 , sx + 1, sw ); - p->setPen( TQPen( cg.dark(), 1 ) ); - p->drawLine( x, sy, sx, sw ); - p->setPen( TQPen( cg.dark(), 1 ) ); - p->drawLine( x, sy + 1, sx - 1, sw ); - sx -= s; - sy += s; - } - } else { - for ( int i = 0; i < 4; ++i ) { - p->setPen( TQPen( cg.light(), 1 ) ); - p->drawLine( sx-1, sw, sw, sy-1 ); - p->setPen( TQPen( cg.dark(), 1 ) ); - p->drawLine( sx, sw, sw, sy ); - p->setPen( TQPen( cg.dark(), 1 ) ); - p->drawLine( sx+1, sw, sw, sy+1 ); - sx += s; - sy += s; - } - } - - p->restore(); - break; } - - case TQStyle::PE_CheckMark: { - const int markW = r.width() > 7 ? 7 : r.width(); - const int markH = markW; - int posX = r.x() + ( r.width() - markW )/2 + 1; - int posY = r.y() + ( r.height() - markH )/2; - - // Could do with some optimizing/caching... - TQPointArray a( markH*2 ); - int i, xx, yy; - xx = posX; - yy = 3 + posY; - for ( i=0; i<markW/2; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - yy -= 2; - for ( ; i<markH; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - if ( !(flags & Style_Enabled) && !(flags & Style_On)) { - int pnt; - p->setPen( cg.highlightedText() ); - TQPoint offset(1,1); - for ( pnt = 0; pnt < (int)a.size(); pnt++ ) - a[pnt] += offset; - p->drawLineSegments( a ); - for ( pnt = 0; pnt < (int)a.size(); pnt++ ) - a[pnt] -= offset; - } - p->setPen( cg.text() ); - p->drawLineSegments( a ); - break; } - - case TQStyle::PE_PanelGroupBox: //We really do not need TQStyle::PE_GroupBoxFrame anymore, nasty holdover ### - tqdrawPrimitive( TQStyle::PE_GroupBoxFrame, p, r, cg, flags, opt ); - break; - case TQStyle::PE_GroupBoxFrame: { -#ifndef TQT_NO_FRAME - if ( opt.isDefault() ) - break; - int lwidth = opt.lineWidth(), mlwidth = opt.midLineWidth(); - if ( flags & (Style_Sunken|Style_Raised)) - qDrawShadeRect( p, r.x(), r.y(), r.width(), r.height(), cg, flags & Style_Sunken, lwidth, mlwidth ); - else - qDrawPlainRect( p, r.x(), r.y(), r.width(), r.height(), cg.foreground(), lwidth ); -#endif - break; } - - case TQStyle::PE_ProgressBarChunk: - p->fillRect( r.x(), r.y() + 3, r.width() -2, r.height() - 6, - cg.brush(TQColorGroup::Highlight)); - break; - - case TQStyle::PE_PanelLineEdit: - case TQStyle::PE_PanelTabWidget: - case TQStyle::PE_WindowFrame: - tqdrawPrimitive( TQStyle::PE_Panel, p, r, cg, flags, opt ); - break; - - case TQStyle::PE_RubberBand: - tqdrawPrimitive(TQStyle::PE_FocusRect, p, r, cg, flags, opt); - break; - default: - break; - } - - activePainter = 0; -} - -/*! \reimp */ -void TQCommonStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ -#if defined(TQT_CHECK_STATE) - if (! widget) { - qWarning("TQCommonStyle::tqdrawControl: widget parameter cannot be zero!"); - return; - } -#endif - - activePainter = p; - - switch (element) { - case CE_MenuBarEmptyArea: { - TQRegion reg; - if(p->hasClipping()) //ick - reg = p->clipRegion(); - else - reg = r; - ((TQWidget *)widget)->erase( reg ); - break; } - case CE_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - TQRect br = r; - int dbi = tqpixelMetric(PM_ButtonDefaultIndicator, widget); - - if (button->isDefault() || button->autoDefault()) { - if ( button->isDefault()) - tqdrawPrimitive(TQStyle::PE_ButtonDefault, p, br, cg, flags); - - br.setCoords(br.left() + dbi, - br.top() + dbi, - br.right() - dbi, - br.bottom() - dbi); - } - - p->save(); - p->setBrushOrigin( -widget->backgroundOffset().x(), - -widget->backgroundOffset().y() ); - tqdrawPrimitive(TQStyle::PE_ButtonCommand, p, br, cg, flags); - p->restore(); -#endif - break; - } - - case CE_PushButtonLabel: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - TQRect ir = r; - - if (button->isDown() || button->isOn()) { - flags |= Style_Sunken; - ir.moveBy(tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget)); - } - - if (button->isMenuButton()) { - int mbi = tqpixelMetric(PM_MenuButtonIndicator, widget); - TQRect ar(ir.right() - mbi, ir.y() + 2, mbi - 4, ir.height() - 4); - tqdrawPrimitive(TQStyle::PE_ArrowDown, p, ar, cg, flags, opt); - ir.setWidth(ir.width() - mbi); - } - - int tf=TQt::AlignVCenter | TQt::ShowPrefix; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tf |= TQt::NoAccel; - -#ifndef TQT_NO_ICONSET - if ( button->iconSet() && ! button->iconSet()->isNull() ) { - TQIconSet::Mode mode = - button->isEnabled() ? TQIconSet::Normal : TQIconSet::Disabled; - if ( mode == TQIconSet::Normal && button->hasFocus() ) - mode = TQIconSet::Active; - - TQIconSet::State state = TQIconSet::Off; - if ( button->isToggleButton() && button->isOn() ) - state = TQIconSet::On; - - TQPixmap pixmap = button->iconSet()->pixmap( TQIconSet::Small, mode, state ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - - //Center the icon if there is neither text nor pixmap - if ( button->text().isEmpty() && !button->pixmap() ) - p->drawPixmap( ir.x() + ir.width() / 2 - pixw / 2, ir.y() + ir.height() / 2 - pixh / 2, pixmap ); - else - p->drawPixmap( ir.x() + 2, ir.y() + ir.height() / 2 - pixh / 2, pixmap ); - - ir.moveBy(pixw + 4, 0); - ir.setWidth(ir.width() - (pixw + 4)); - // left-align text if there is - if (!button->text().isEmpty()) - tf |= TQt::AlignLeft; - else if (button->pixmap()) - tf |= TQt::AlignHCenter; - } else -#endif //TQT_NO_ICONSET - tf |= TQt::AlignHCenter; - drawItem(p, ir, tf, cg, - flags & Style_Enabled, button->pixmap(), button->text(), - button->text().length(), TQT_TQCOLOR_CONST(&(cg.buttonText())) ); - - if (flags & Style_HasFocus) - tqdrawPrimitive(TQStyle::PE_FocusRect, p, subRect(SR_PushButtonFocusRect, widget), - cg, flags); -#endif - break; - } - - case CE_CheckBox: - tqdrawPrimitive(TQStyle::PE_Indicator, p, r, cg, flags, opt); - break; - - case CE_CheckBoxLabel: - { -#ifndef TQT_NO_CHECKBOX - const TQCheckBox *checkbox = (const TQCheckBox *) widget; - - int tqalignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - - drawItem(p, r, tqalignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, - flags & Style_Enabled, checkbox->pixmap(), checkbox->text()); - - if (flags & Style_HasFocus) { - TQRect fr = tqvisualRect(subRect(SR_CheckBoxFocusRect, widget), widget); - tqdrawPrimitive(TQStyle::PE_FocusRect, p, fr, cg, flags); - } -#endif - break; - } - - case CE_RadioButton: - tqdrawPrimitive(TQStyle::PE_ExclusiveIndicator, p, r, cg, flags, opt); - break; - - case CE_RadioButtonLabel: - { -#ifndef TQT_NO_RADIOBUTTON - const TQRadioButton *radiobutton = (const TQRadioButton *) widget; - - int tqalignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - drawItem(p, r, tqalignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, - flags & Style_Enabled, radiobutton->pixmap(), radiobutton->text()); - - if (flags & Style_HasFocus) { - TQRect fr = tqvisualRect(subRect(SR_RadioButtonFocusRect, widget), widget); - tqdrawPrimitive(TQStyle::PE_FocusRect, p, fr, cg, flags); - } -#endif - break; - } - -#ifndef TQT_NO_TABBAR - case CE_TabBarTab: - { - const TQTabBar * tb = (const TQTabBar *) widget; - - if ( tb->tqshape() == TQTabBar::TriangularAbove || - tb->tqshape() == TQTabBar::TriangularBelow ) { - // triangular, above or below - int y; - int x; - TQPointArray a( 10 ); - a.setPoint( 0, 0, -1 ); - a.setPoint( 1, 0, 0 ); - y = r.height()-2; - x = y/3; - a.setPoint( 2, x++, y-1 ); - a.setPoint( 3, x++, y ); - a.setPoint( 3, x++, y++ ); - a.setPoint( 4, x, y ); - - int i; - int right = r.width() - 1; - for ( i = 0; i < 5; i++ ) - a.setPoint( 9-i, right - a.point( i ).x(), a.point( i ).y() ); - - if ( tb->tqshape() == TQTabBar::TriangularAbove ) - for ( i = 0; i < 10; i++ ) - a.setPoint( i, a.point(i).x(), - r.height() - 1 - a.point( i ).y() ); - - a.translate( r.left(), r.top() ); - - if ( flags & Style_Selected ) - p->setBrush( cg.base() ); - else - p->setBrush( cg.background() ); - p->setPen( cg.foreground() ); - p->drawPolygon( a ); - p->setBrush( TQt::NoBrush ); - } - break; - } - - case CE_TabBarLabel: - { - if ( opt.isDefault() ) - break; - - const TQTabBar * tb = (const TQTabBar *) widget; - TQTab * t = opt.tab(); - - TQRect tr = r; - if ( t->identifier() == tb->currentTab() ) - tr.setBottom( tr.bottom() - - tqpixelMetric( TQStyle::PM_DefaultFrameWidth, tb ) ); - - int tqalignment = TQt::AlignCenter | TQt::ShowPrefix; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - drawItem( p, tr, tqalignment, cg, - flags & Style_Enabled, 0, t->text() ); - - if ( (flags & Style_HasFocus) && !t->text().isEmpty() ) - tqdrawPrimitive( TQStyle::PE_FocusRect, p, r, cg ); - break; - } -#endif // TQT_NO_TABBAR -#ifndef TQT_NO_TOOLBOX - case CE_ToolBoxTab: - { - int d = 20 + r.height() - 3; - TQPointArray a( 7 ); - a.setPoint( 0, -1, r.height() + 1 ); - a.setPoint( 1, -1, 1 ); - a.setPoint( 2, r.width() - d, 1 ); - a.setPoint( 3, r.width() - 20, r.height() - 2 ); - a.setPoint( 4, r.width() - 1, r.height() - 2 ); - a.setPoint( 5, r.width() - 1, r.height() + 1 ); - a.setPoint( 6, -1, r.height() + 1 ); - - const TQToolBox *tb = (const TQToolBox*)widget; - - if ( flags & Style_Selected && tb->currentItem() ) - p->setBrush( tb->currentItem()->paletteBackgroundColor() ); - else - p->setBrush( cg.brush(TQColorGroup::Background) ); - - p->setPen( cg.mid().dark( 150 ) ); - p->drawPolygon( a ); - p->setPen( cg.light() ); - p->drawLine( 0, 2, r.width() - d, 2 ); - p->drawLine( r.width() - d - 1, 2, r.width() - 21, r.height() - 1 ); - p->drawLine( r.width() - 20, r.height() - 1, r.width(), r.height() - 1 ); - p->setBrush( TQt::NoBrush ); - break; - } -#endif // TQT_NO_TOOLBOX - case CE_ProgressBarGroove: - qDrawShadePanel(p, r, cg, TRUE, 1, &cg.brush(TQColorGroup::Background)); - break; - -#ifndef TQT_NO_PROGRESSBAR - case CE_ProgressBarContents: - { - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - // Correct the highlight color if same as background, - // or else we cannot see the progress... - TQColorGroup cgh = cg; - if ( cgh.highlight() == cgh.background() ) - cgh.setColor( TQColorGroup::Highlight, progressbar->tqpalette().active().highlight() ); - bool reverse = TQApplication::reverseLayout(); - int fw = 2; - int w = r.width() - 2*fw; - if ( !progressbar->totalSteps() ) { - // draw busy indicator - int x = progressbar->progress() % (w * 2); - if (x > w) - x = 2 * w - x; - x = reverse ? r.right() - x : x + r.x(); - p->setPen( TQPen(cgh.highlight(), 4) ); - p->drawLine(x, r.y() + 1, x, r.height() - fw); - } else { - const int unit_width = tqpixelMetric(PM_ProgressBarChunkWidth, widget); - int u; - if ( unit_width > 1 ) - u = (r.width()+unit_width/3) / unit_width; - else - u = w / unit_width; - int p_v = progressbar->progress(); - int t_s = progressbar->totalSteps() ? progressbar->totalSteps() : 1; - - if ( u > 0 && p_v >= INT_MAX / u && t_s >= u ) { - // scale down to something usable. - p_v /= u; - t_s /= u; - } - - // nu < tnu, if last chunk is only a partial chunk - int tnu, nu; - tnu = nu = p_v * u / t_s; - - if (nu * unit_width > w) - nu--; - - // Draw nu units out of a possible u of unit_width - // width, each a rectangle bordered by background - // color, all in a sunken panel with a percentage text - // display at the end. - int x = 0; - int x0 = reverse ? r.right() - ((unit_width > 1) ? - unit_width : fw) : r.x() + fw; - for (int i=0; i<nu; i++) { - tqdrawPrimitive( TQStyle::PE_ProgressBarChunk, p, - TQRect( x0+x, r.y(), unit_width, r.height() ), - cgh, Style_Default, opt ); - x += reverse ? -unit_width: unit_width; - } - - // Draw the last partial chunk to fill up the - // progressbar entirely - if (nu < tnu) { - int pixels_left = w - (nu*unit_width); - int offset = reverse ? x0+x+unit_width-pixels_left : x0+x; - tqdrawPrimitive( TQStyle::PE_ProgressBarChunk, p, - TQRect( offset, r.y(), pixels_left, - r.height() ), cgh, Style_Default, - opt ); - } - } - } - break; - - case CE_ProgressBarLabel: - { - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - TQColor penColor = cg.highlightedText(); - TQColor *pcolor = 0; - if ( progressbar->centerIndicator() && !progressbar->indicatorFollowsStyle() && - progressbar->progress()*2 >= progressbar->totalSteps() ) - pcolor = &penColor; - drawItem(p, r, TQt::AlignCenter | TQt::SingleLine, cg, flags & Style_Enabled, 0, - progressbar->progressString(), -1, pcolor ); - } - break; -#endif // TQT_NO_PROGRESSBAR - - case CE_MenuBarItem: - { -#ifndef TQT_NO_MENUDATA - if (opt.isDefault()) - break; - - TQMenuItem *mi = opt.menuItem(); - int tqalignment = TQt::AlignCenter|TQt::ShowPrefix|TQt::DontClip|TQt::SingleLine; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - drawItem( p, r, tqalignment, cg, - flags & Style_Enabled, mi->pixmap(), mi->text(), -1, - TQT_TQCOLOR_CONST(&cg.buttonText()) ); -#endif - break; - } - -#ifndef TQT_NO_TOOLBUTTON - case CE_ToolButtonLabel: - { - const TQToolButton *toolbutton = (const TQToolButton *) widget; - TQRect rect = r; - TQt::ArrowType arrowType = opt.isDefault() - ? TQt::DownArrow : opt.arrowType(); - - int shiftX = 0; - int shiftY = 0; - if (flags & (Style_Down | Style_On)) { - shiftX = tqpixelMetric(PM_ButtonShiftHorizontal, widget); - shiftY = tqpixelMetric(PM_ButtonShiftVertical, widget); - } - - if (!opt.isDefault()) { - PrimitiveElement pe; - switch (arrowType) { - case TQt::LeftArrow: pe = TQStyle::PE_ArrowLeft; break; - case TQt::RightArrow: pe = TQStyle::PE_ArrowRight; break; - case TQt::UpArrow: pe = TQStyle::PE_ArrowUp; break; - default: - case TQt::DownArrow: pe = TQStyle::PE_ArrowDown; break; - } - - rect.moveBy(shiftX, shiftY); - tqdrawPrimitive(pe, p, rect, cg, flags, opt); - } else { - TQColor btext = toolbutton->paletteForegroundColor(); - - if (toolbutton->iconSet().isNull() && - ! toolbutton->text().isNull() && - ! toolbutton->usesTextLabel()) { - int tqalignment = TQt::AlignCenter | TQt::ShowPrefix; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - - rect.moveBy(shiftX, shiftY); - drawItem(p, rect, tqalignment, cg, - flags & Style_Enabled, 0, toolbutton->text(), - toolbutton->text().length(), &btext); - } else { - TQPixmap pm; - TQIconSet::Size size = - toolbutton->usesBigPixmap() ? TQIconSet::Large : TQIconSet::Small; - TQIconSet::State state = - toolbutton->isOn() ? TQIconSet::On : TQIconSet::Off; - TQIconSet::Mode mode; - if (! toolbutton->isEnabled()) - mode = TQIconSet::Disabled; - else if ((flags & (Style_Down | Style_On)) || - ((flags & Style_Raised) && (flags & Style_AutoRaise))) - mode = TQIconSet::Active; - else - mode = TQIconSet::Normal; - pm = toolbutton->iconSet().pixmap( size, mode, state ); - - if ( toolbutton->usesTextLabel() ) { - p->setFont( toolbutton->font() ); - TQRect pr = rect, tr = rect; - int tqalignment = TQt::ShowPrefix; - if (!tqstyleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0)) - tqalignment |= TQt::NoAccel; - - if ( toolbutton->textPosition() == TQToolButton::Under ) { - int fh = p->fontMetrics().height(); - pr.addCoords( 0, 1, 0, -fh-3 ); - tr.addCoords( 0, pr.bottom(), 0, -3 ); - pr.moveBy(shiftX, shiftY); - drawItem( p, pr, TQt::AlignCenter, cg, TRUE, &pm, TQString::null ); - tqalignment |= TQt::AlignCenter; - } else { - pr.setWidth( pm.width() + 8 ); - tr.addCoords( pr.right(), 0, 0, 0 ); - pr.moveBy(shiftX, shiftY); - - drawItem( p, pr, TQt::AlignCenter, cg, TRUE, &pm, TQString::null ); - tqalignment |= TQt::AlignLeft | TQt::AlignVCenter; - } - - tr.moveBy(shiftX, shiftY); - drawItem( p, tr, tqalignment, cg, - flags & Style_Enabled, 0, toolbutton->textLabel(), - toolbutton->textLabel().length(), &btext); - } else { - rect.moveBy(shiftX, shiftY); - drawItem( p, rect, TQt::AlignCenter, cg, TRUE, &pm, TQString::null ); - } - } - } - - break; - } -#endif // TQT_NO_TOOLBUTTON -#ifndef TQT_NO_HEADER - case CE_HeaderLabel: - { - TQRect rect = r; - const TQHeader* header = (const TQHeader *) widget; - int section = opt.headerSection(); - - TQIconSet* icon = header->iconSet( section ); - if ( icon ) { - TQPixmap pixmap = icon->pixmap( TQIconSet::Small, - flags & Style_Enabled ? - TQIconSet::Normal : TQIconSet::Disabled ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - // "pixh - 1" because of tricky integer division - - TQRect pixRect = rect; - pixRect.setY( rect.center().y() - (pixh - 1) / 2 ); - drawItem ( p, pixRect, TQt::AlignVCenter, cg, flags & Style_Enabled, - &pixmap, TQString::null ); - if (TQApplication::reverseLayout()) - rect.setRight(rect.right() - pixw - 2); - else - rect.setLeft(rect.left() + pixw + 2); - } - - if (rect.isValid()) - drawItem ( p, rect, TQt::AlignVCenter, cg, flags & Style_Enabled, - 0, header->label( section ), -1, TQT_TQCOLOR_CONST(&(cg.buttonText())) ); - } -#endif // TQT_NO_HEADER - default: - break; - } - - activePainter = 0; -} - -/*! \reimp */ -void TQCommonStyle::tqdrawControlMask( TQ_ControlElement control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQStyleOption& opt ) const -{ - TQ_UNUSED(widget); - - activePainter = p; - - TQColorGroup cg(Qt::color1,Qt::color1,Qt::color1,Qt::color1,Qt::color1,Qt::color1,Qt::color1,Qt::color1,Qt::color0); - - switch (control) { - case CE_PushButton: - tqdrawPrimitive(TQStyle::PE_ButtonCommand, p, r, cg, Style_Default, opt); - break; - - case CE_CheckBox: - tqdrawPrimitive(TQStyle::PE_IndicatorMask, p, r, cg, Style_Default, opt); - break; - - case CE_RadioButton: - tqdrawPrimitive(TQStyle::PE_ExclusiveIndicatorMask, p, r, cg, Style_Default, opt); - break; - - default: - p->fillRect(r, Qt::color1); - break; - } - - activePainter = 0; -} - -/*! \reimp */ -TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const -{ -#if defined(TQT_CHECK_STATE) - if (! widget) { - qWarning("TQCommonStyle::subRect: widget parameter cannot be zero!"); - return TQRect(); - } -#endif - - TQRect rect, wrect(widget->rect()); - - switch (r) { -#ifndef TQT_NO_DIALOGBUTTONS - case SR_DialogButtonAbort: - case SR_DialogButtonRetry: - case SR_DialogButtonIgnore: - case SR_DialogButtonAccept: - case SR_DialogButtonReject: - case SR_DialogButtonApply: - case SR_DialogButtonHelp: - case SR_DialogButtonAll: - case SR_DialogButtonCustom: { - TQDialogButtons::Button srch = TQDialogButtons::None; - if(r == SR_DialogButtonAccept) - srch = TQDialogButtons::Accept; - else if(r == SR_DialogButtonReject) - srch = TQDialogButtons::Reject; - else if(r == SR_DialogButtonAll) - srch = TQDialogButtons::All; - else if(r == SR_DialogButtonApply) - srch = TQDialogButtons::Apply; - else if(r == SR_DialogButtonHelp) - srch = TQDialogButtons::Help; - else if(r == SR_DialogButtonRetry) - srch = TQDialogButtons::Retry; - else if(r == SR_DialogButtonIgnore) - srch = TQDialogButtons::Ignore; - else if(r == SR_DialogButtonAbort) - srch = TQDialogButtons::Abort; - - const int bwidth = tqpixelMetric(PM_DialogButtonsButtonWidth, widget), - bheight = tqpixelMetric(PM_DialogButtonsButtonHeight, widget), - bspace = tqpixelMetric(PM_DialogButtonsSeparator, widget), - fw = tqpixelMetric(PM_DefaultFrameWidth, widget); - const TQDialogButtons *dbtns = (const TQDialogButtons *) widget; - int start = fw; - if(dbtns->orientation() == Qt::Horizontal) - start = wrect.right() - fw; - TQDialogButtons::Button btns[] = { TQDialogButtons::All, TQDialogButtons::Reject, TQDialogButtons::Accept, //reverse order (right to left) - TQDialogButtons::Apply, TQDialogButtons::Retry, TQDialogButtons::Ignore, TQDialogButtons::Abort, - TQDialogButtons::Help }; - for(unsigned int i = 0, cnt = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) { - if(dbtns->isButtonVisible(btns[i])) { - TQSize szH = dbtns->tqsizeHint(btns[i]); - int mwidth = TQMAX(bwidth, szH.width()), mheight = TQMAX(bheight, szH.height()); - if(dbtns->orientation() == Qt::Horizontal) { - start -= mwidth; - if(cnt) - start -= bspace; - } else if(cnt) { - start += mheight; - start += bspace; - } - cnt++; - if(btns[i] == srch) { - if(dbtns->orientation() == Qt::Horizontal) - return TQRect(start, wrect.bottom() - fw - mheight, mwidth, mheight); - else - return TQRect(fw, start, mwidth, mheight); - } - } - } - if(r == SR_DialogButtonCustom) { - if(dbtns->orientation() == Qt::Horizontal) - return TQRect(fw, fw, start - fw - bspace, wrect.height() - (fw*2)); - else - return TQRect(fw, start, wrect.width() - (fw*2), wrect.height() - start - (fw*2)); - } - return TQRect(); } -#endif //TQT_NO_DIALOGBUTTONS - case SR_PushButtonContents: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - int dx1, dx2; - - dx1 = tqpixelMetric(PM_DefaultFrameWidth, widget); - if (button->isDefault() || button->autoDefault()) - dx1 += tqpixelMetric(PM_ButtonDefaultIndicator, widget); - dx2 = dx1 * 2; - - rect.setRect(wrect.x() + dx1, - wrect.y() + dx1, - wrect.width() - dx2, - wrect.height() - dx2); -#endif - break; - } - - case SR_PushButtonFocusRect: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - int dbw1 = 0, dbw2 = 0; - if (button->isDefault() || button->autoDefault()) { - dbw1 = tqpixelMetric(PM_ButtonDefaultIndicator, widget); - dbw2 = dbw1 * 2; - } - - int dfw1 = tqpixelMetric(PM_DefaultFrameWidth, widget) * 2, - dfw2 = dfw1 * 2; - - rect.setRect(wrect.x() + dfw1 + dbw1, - wrect.y() + dfw1 + dbw1, - wrect.width() - dfw2 - dbw2, - wrect.height() - dfw2 - dbw2); -#endif - break; - } - - case SR_CheckBoxIndicator: - { - int h = tqpixelMetric( PM_IndicatorHeight, widget ); - rect.setRect(0, ( wrect.height() - h ) / 2, - tqpixelMetric( PM_IndicatorWidth, widget ), h ); - break; - } - - case SR_CheckBoxContents: - { -#ifndef TQT_NO_CHECKBOX - TQRect ir = subRect(SR_CheckBoxIndicator, widget); - rect.setRect(ir.right() + 6, wrect.y(), - wrect.width() - ir.width() - 6, wrect.height()); -#endif - break; - } - - case SR_CheckBoxFocusRect: - { -#ifndef TQT_NO_CHECKBOX - const TQCheckBox *checkbox = (const TQCheckBox *) widget; - if ( !checkbox->pixmap() && checkbox->text().isEmpty() ) { - rect = subRect( SR_CheckBoxIndicator, widget ); - rect.addCoords( 1, 1, -1, -1 ); - break; - } - TQRect cr = subRect(SR_CheckBoxContents, widget); - - // don't create a painter if we have an active one - TQPainter *p = 0; - if (! activePainter) - p = new TQPainter(checkbox); - rect = tqitemRect((activePainter ? activePainter : p), - cr, TQt::AlignLeft | TQt::AlignVCenter | TQt::ShowPrefix, - checkbox->isEnabled(), - checkbox->pixmap(), - checkbox->text()); - - delete p; - - rect.addCoords( -3, -2, 3, 2 ); - rect = rect.intersect(wrect); -#endif - break; - } - - case SR_RadioButtonIndicator: - { - int h = tqpixelMetric( PM_ExclusiveIndicatorHeight, widget ); - rect.setRect(0, ( wrect.height() - h ) / 2, - tqpixelMetric( PM_ExclusiveIndicatorWidth, widget ), h ); - break; - } - - case SR_RadioButtonContents: - { - TQRect ir = subRect(SR_RadioButtonIndicator, widget); - rect.setRect(ir.right() + 6, wrect.y(), - wrect.width() - ir.width() - 6, wrect.height()); - break; - } - - case SR_RadioButtonFocusRect: - { -#ifndef TQT_NO_RADIOBUTTON - const TQRadioButton *radiobutton = (const TQRadioButton *) widget; - if ( !radiobutton->pixmap() && radiobutton->text().isEmpty() ) { - rect = subRect( SR_RadioButtonIndicator, widget ); - rect.addCoords( 1, 1, -1, -1 ); - break; - } - TQRect cr = subRect(SR_RadioButtonContents, widget); - - // don't create a painter if we have an active one - TQPainter *p = 0; - if (! activePainter) - p = new TQPainter(radiobutton); - rect = tqitemRect((activePainter ? activePainter : p), - cr, TQt::AlignLeft | TQt::AlignVCenter | TQt::ShowPrefix, - radiobutton->isEnabled(), - radiobutton->pixmap(), - radiobutton->text()); - delete p; - - rect.addCoords( -3, -2, 3, 2 ); - rect = rect.intersect(wrect); -#endif - break; - } - - case SR_ComboBoxFocusRect: - rect.setRect(3, 3, widget->width()-6-16, widget->height()-6); - break; - -#ifndef TQT_NO_SLIDER - case SR_SliderFocusRect: - { - const TQSlider * sl = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, sl ); - int thickness = tqpixelMetric( PM_SliderControlThickness, sl ); - - if ( sl->orientation() == Qt::Horizontal ) - rect.setRect( 0, tickOffset-1, sl->width(), thickness+2 ); - else - rect.setRect( tickOffset-1, 0, thickness+2, sl->height() ); - rect = rect.intersect( sl->rect() ); // ## is this really necessary? - break; - } -#endif // TQT_NO_SLIDER - -#ifndef TQT_NO_MAINWINDOW - case SR_DockWindowHandleRect: - { - if (! widget->parentWidget()) - break; - - const TQDockWindow * dw = (const TQDockWindow *) widget->parentWidget(); - - if ( !dw->area() || !dw->isCloseEnabled() ) - rect.setRect( 0, 0, widget->width(), widget->height() ); - else { - if ( dw->area()->orientation() == Qt::Horizontal ) - rect.setRect(0, 15, widget->width(), widget->height() - 15); - else - rect.setRect(0, 1, widget->width() - 15, widget->height() - 1); - } - break; - } -#endif // TQT_NO_MAINWINDOW - - case SR_ProgressBarGroove: - case SR_ProgressBarContents: - { -#ifndef TQT_NO_PROGRESSBAR - TQFontMetrics fm( ( widget ? widget->fontMetrics() : - TQApplication::fontMetrics() ) ); - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - int textw = 0; - if (progressbar->percentageVisible()) - textw = fm.width("100%") + 6; - - if (progressbar->indicatorFollowsStyle() || - ! progressbar->centerIndicator()) - rect.setCoords(wrect.left(), wrect.top(), - wrect.right() - textw, wrect.bottom()); - else - rect = wrect; -#endif - break; - } - - case SR_ProgressBarLabel: - { -#ifndef TQT_NO_PROGRESSBAR - TQFontMetrics fm( ( widget ? widget->fontMetrics() : - TQApplication::fontMetrics() ) ); - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - int textw = 0; - if (progressbar->percentageVisible()) - textw = fm.width("100%") + 6; - - if (progressbar->indicatorFollowsStyle() || - ! progressbar->centerIndicator()) - rect.setCoords(wrect.right() - textw, wrect.top(), - wrect.right(), wrect.bottom()); - else - rect = wrect; -#endif - break; - } - - case SR_ToolButtonContents: - rect = querySubControlMetrics(CC_ToolButton, widget, SC_ToolButton); - break; - - case SR_ToolBoxTabContents: - rect = wrect; - rect.addCoords( 0, 0, -30, 0 ); - break; - - default: - rect = wrect; - break; - } - - return rect; -} - -#ifndef TQT_NO_RANGECONTROL -/* - I really need this and I don't want to expose it in TQRangeControl.. -*/ -static int qPositionFromValue( const TQRangeControl * rc, int logical_val, - int span ) -{ - if ( span <= 0 || logical_val < rc->minValue() || - rc->maxValue() <= rc->minValue() ) - return 0; - if ( logical_val > rc->maxValue() ) - return span; - - uint range = rc->maxValue() - rc->minValue(); - uint p = logical_val - rc->minValue(); - - if ( range > (uint)INT_MAX/4096 ) { - const int scale = 4096*2; - return ( (p/scale) * span ) / (range/scale); - // ### the above line is probably not 100% correct - // ### but fixing it isn't worth the extreme pain... - } else if ( range > (uint)span ) { - return (2*p*span + range) / (2*range); - } else { - uint div = span / range; - uint mod = span % range; - return p*div + (2*p*mod + range) / (2*range); - } - //equiv. to (p*span)/range + 0.5 - // no overflow because of this implicit assumption: - // span <= 4096 -} -#endif // TQT_NO_RANGECONTROL - -/*! \reimp */ -void TQCommonStyle::tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - SCFlags controls, - SCFlags active, - const TQStyleOption& opt ) const -{ -#if defined(TQT_CHECK_STATE) - if (! widget) { - qWarning("TQCommonStyle::tqdrawComplexControl: widget parameter cannot be zero!"); - return; - } -#endif - - activePainter = p; - - switch (control) { -#ifndef TQT_NO_SCROLLBAR - case CC_ScrollBar: - { - const TQScrollBar *scrollbar = (const TQScrollBar *) widget; - TQRect addline, subline, addpage, subpage, slider, first, last; - bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue()); - - subline = querySubControlMetrics(control, widget, SC_ScrollBarSubLine, opt); - addline = querySubControlMetrics(control, widget, SC_ScrollBarAddLine, opt); - subpage = querySubControlMetrics(control, widget, SC_ScrollBarSubPage, opt); - addpage = querySubControlMetrics(control, widget, SC_ScrollBarAddPage, opt); - slider = querySubControlMetrics(control, widget, SC_ScrollBarSlider, opt); - first = querySubControlMetrics(control, widget, SC_ScrollBarFirst, opt); - last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt); - - if ((controls & SC_ScrollBarSubLine) && subline.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarSubLine, p, subline, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarSubLine) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarAddLine) && addline.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarAddLine, p, addline, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarAddLine) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarSubPage) && subpage.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarSubPage, p, subpage, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarSubPage) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarAddPage) && addpage.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarAddPage, p, addpage, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarAddPage) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarFirst) && first.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarFirst, p, first, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarFirst) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarLast) && last.isValid()) - tqdrawPrimitive(TQStyle::PE_ScrollBarLast, p, last, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarLast) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - if ((controls & SC_ScrollBarSlider) && slider.isValid()) { - tqdrawPrimitive(TQStyle::PE_ScrollBarSlider, p, slider, cg, - (SFlags)(((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarSlider) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : 0))); - - // ### perhaps this should not be able to accept focus if maxedOut? - if (scrollbar->hasFocus()) { - TQRect fr(slider.x() + 2, slider.y() + 2, - slider.width() - 5, slider.height() - 5); - tqdrawPrimitive(TQStyle::PE_FocusRect, p, fr, cg, Style_Default); - } - } - - break; - } -#endif // TQT_NO_SCROLLBAR - -#ifndef TQT_NO_TOOLBUTTON - case CC_ToolButton: - { - const TQToolButton *toolbutton = (const TQToolButton *) widget; - - TQColorGroup c = cg; - if ( toolbutton->backgroundMode() != TQt::PaletteButton ) - c.setBrush( TQColorGroup::Button, - toolbutton->paletteBackgroundColor() ); - TQRect button, menuarea; - button = tqvisualRect( querySubControlMetrics(control, widget, SC_ToolButton, opt), widget ); - menuarea = tqvisualRect( querySubControlMetrics(control, widget, SC_ToolButtonMenu, opt), widget ); - - SFlags bflags = flags, - mflags = flags; - - if (active & SC_ToolButton) - bflags |= Style_Down; - if (active & SC_ToolButtonMenu) - mflags |= Style_Down; - - if (controls & SC_ToolButton) { - if (bflags & (Style_Down | Style_On | Style_Raised)) { - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, button, c, bflags, opt); - } else if ( toolbutton->parentWidget() && - toolbutton->parentWidget()->backgroundPixmap() && - ! toolbutton->parentWidget()->backgroundPixmap()->isNull() ) { - TQPixmap pixmap = - *(toolbutton->parentWidget()->backgroundPixmap()); - - p->drawTiledPixmap( r, pixmap, toolbutton->pos() ); - } - } - - if (controls & SC_ToolButtonMenu) { - if (mflags & (Style_Down | Style_On | Style_Raised)) - tqdrawPrimitive(TQStyle::PE_ButtonDropDown, p, menuarea, c, mflags, opt); - tqdrawPrimitive(TQStyle::PE_ArrowDown, p, menuarea, c, mflags, opt); - } - - if (toolbutton->hasFocus() && !toolbutton->focusProxy()) { - TQRect fr = toolbutton->rect(); - fr.addCoords(3, 3, -3, -3); - tqdrawPrimitive(TQStyle::PE_FocusRect, p, fr, c); - } - - break; - } -#endif // TQT_NO_TOOLBUTTON - -#ifndef TQT_NO_TITLEBAR - case CC_TitleBar: - { - const TQTitleBar *titlebar = (const TQTitleBar *) widget; - if ( controls & SC_TitleBarLabel ) { - TQColorGroup cgroup = titlebar->usesActiveColor() ? - titlebar->tqpalette().active() : titlebar->tqpalette().inactive(); - - TQColor left = cgroup.highlight(); - TQColor right = cgroup.base(); - - if ( left != right ) { - double rS = left.red(); - double gS = left.green(); - double bS = left.blue(); - - const double rD = double(right.red() - rS) / titlebar->width(); - const double gD = double(right.green() - gS) / titlebar->width(); - const double bD = double(right.blue() - bS) / titlebar->width(); - - const int w = titlebar->width(); - for ( int sx = 0; sx < w; sx++ ) { - rS+=rD; - gS+=gD; - bS+=bD; - p->setPen( TQColor( (int)rS, (int)gS, (int)bS ) ); - p->drawLine( sx, 0, sx, titlebar->height() ); - } - } else { - p->fillRect( titlebar->rect(), left ); - } - - TQRect ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarLabel ), widget ); - - p->setPen( cgroup.highlightedText() ); - p->drawText(ir.x()+2, ir.y(), ir.width()-2, ir.height(), - TQt::AlignAuto | TQt::AlignVCenter | TQt::SingleLine, titlebar->visibleText() ); - } - - TQRect ir; - bool down = FALSE; - TQPixmap pm; - - if ( controls & SC_TitleBarCloseButton ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarCloseButton ), widget ); - down = active & SC_TitleBarCloseButton; - if ( widget->testWFlags( TQt::WStyle_Tool ) -#ifndef TQT_NO_MAINWINDOW - || ::tqqt_cast<TQDockWindow*>(widget) -#endif - ) - pm = stylePixmap(SP_DockWindowCloseButton, widget); - else - pm = stylePixmap(SP_TitleBarCloseButton, widget); - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, ir, titlebar->tqcolorGroup(), - down ? Style_Down : Style_Raised); - - p->save(); - if( down ) - p->translate( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, &pm, TQString::null ); - p->restore(); - } - - if ( titlebar->window() ) { - if ( controls & SC_TitleBarMaxButton ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarMaxButton ), widget ); - - down = active & SC_TitleBarMaxButton; - pm = TQPixmap(stylePixmap(SP_TitleBarMaxButton, widget)); - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, ir, titlebar->tqcolorGroup(), - down ? Style_Down : Style_Raised); - - p->save(); - if( down ) - p->translate( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, &pm, TQString::null ); - p->restore(); - } - - if ( controls & SC_TitleBarNormalButton || controls & SC_TitleBarMinButton ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarMinButton ), widget ); - TQStyle::SubControl ctrl = (controls & SC_TitleBarNormalButton ? - SC_TitleBarNormalButton : - SC_TitleBarMinButton); - TQStyle::StylePixmap spixmap = (controls & SC_TitleBarNormalButton ? - SP_TitleBarNormalButton : - SP_TitleBarMinButton); - down = active & ctrl; - pm = TQPixmap(stylePixmap(spixmap, widget)); - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, ir, titlebar->tqcolorGroup(), - down ? Style_Down : Style_Raised); - - p->save(); - if( down ) - p->translate( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, &pm, TQString::null ); - p->restore(); - } - - if ( controls & SC_TitleBarShadeButton ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarShadeButton ), widget ); - - down = active & SC_TitleBarShadeButton; - pm = TQPixmap(stylePixmap(SP_TitleBarShadeButton, widget)); - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, ir, titlebar->tqcolorGroup(), - down ? Style_Down : Style_Raised); - p->save(); - if( down ) - p->translate( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, &pm, TQString::null ); - p->restore(); - } - - if ( controls & SC_TitleBarUnshadeButton ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarUnshadeButton ), widget ); - - down = active & SC_TitleBarUnshadeButton; - pm = TQPixmap(stylePixmap(SP_TitleBarUnshadeButton, widget)); - tqdrawPrimitive(TQStyle::PE_ButtonTool, p, ir, titlebar->tqcolorGroup(), - down ? Style_Down : Style_Raised); - p->save(); - if( down ) - p->translate( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, &pm, TQString::null ); - p->restore(); - } - } -#ifndef TQT_NO_WIDGET_TOPEXTRA - if ( controls & SC_TitleBarSysMenu ) { - if ( titlebar->icon() ) { - ir = tqvisualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarSysMenu ), widget ); - drawItem( p, ir, TQt::AlignCenter, titlebar->tqcolorGroup(), TRUE, titlebar->icon(), TQString::null ); - } - } -#endif - break; - } -#endif //TQT_NO_TITLEBAR - - case CC_SpinWidget: { -#ifndef TQT_NO_SPINWIDGET - const TQSpinWidget * sw = (const TQSpinWidget *) widget; - SFlags flags; - PrimitiveElement pe; - - if ( controls & SC_SpinWidgetFrame ) - qDrawWinPanel( p, r, cg, TRUE ); //cstyle == Sunken ); - - if ( controls & SC_SpinWidgetUp ) { - flags = Style_Default | Style_Enabled; - if (active == SC_SpinWidgetUp ) { - flags |= Style_On; - flags |= Style_Sunken; - } else - flags |= Style_Raised; - if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus ) - pe = TQStyle::PE_SpinWidgetPlus; - else - pe = TQStyle::PE_SpinWidgetUp; - - TQRect re = sw->upRect(); - TQColorGroup ucg = sw->isUpEnabled() ? cg : sw->tqpalette().disabled(); - tqdrawPrimitive(TQStyle::PE_ButtonBevel, p, re, ucg, flags); - tqdrawPrimitive(pe, p, re, ucg, flags); - } - - if ( controls & SC_SpinWidgetDown ) { - flags = Style_Default | Style_Enabled; - if (active == SC_SpinWidgetDown ) { - flags |= Style_On; - flags |= Style_Sunken; - } else - flags |= Style_Raised; - if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus ) - pe = TQStyle::PE_SpinWidgetMinus; - else - pe = TQStyle::PE_SpinWidgetDown; - - TQRect re = sw->downRect(); - TQColorGroup dcg = sw->isDownEnabled() ? cg : sw->tqpalette().disabled(); - tqdrawPrimitive(TQStyle::PE_ButtonBevel, p, re, dcg, flags); - tqdrawPrimitive(pe, p, re, dcg, flags); - } -#endif - break; } - -#ifndef TQT_NO_SLIDER - case CC_Slider: - switch ( controls ) { - case SC_SliderTickmarks: { - const TQSlider * sl = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, sl ); - int ticks = sl->tickmarks(); - int thickness = tqpixelMetric( PM_SliderControlThickness, sl ); - int len = tqpixelMetric( PM_SliderLength, sl ); - int available = tqpixelMetric( PM_SliderSpaceAvailable, sl ); - int interval = sl->tickInterval(); - - if ( interval <= 0 ) { - interval = sl->lineStep(); - if ( qPositionFromValue( sl, interval, available ) - - qPositionFromValue( sl, 0, available ) < 3 ) - interval = sl->pageStep(); - } - - int fudge = len / 2; - int pos; - - if ( ticks & TQSlider::Above ) { - p->setPen( cg.foreground() ); - int v = sl->minValue(); - if ( !interval ) - interval = 1; - while ( v <= sl->maxValue() + 1 ) { - pos = qPositionFromValue( sl, v, available ) + fudge; - if ( sl->orientation() == Qt::Horizontal ) - p->drawLine( pos, 0, pos, tickOffset-2 ); - else - p->drawLine( 0, pos, tickOffset-2, pos ); - v += interval; - } - } - - if ( ticks & TQSlider::Below ) { - p->setPen( cg.foreground() ); - int v = sl->minValue(); - if ( !interval ) - interval = 1; - while ( v <= sl->maxValue() + 1 ) { - pos = qPositionFromValue( sl, v, available ) + fudge; - if ( sl->orientation() == Qt::Horizontal ) - p->drawLine( pos, tickOffset+thickness+1, pos, - tickOffset+thickness+1 + available-2 ); - else - p->drawLine( tickOffset+thickness+1, pos, - tickOffset+thickness+1 + available-2, - pos ); - v += interval; - } - - } - - break; } - } - break; -#endif // TQT_NO_SLIDER -#ifndef TQT_NO_LISTVIEW - case CC_ListView: - if ( controls & SC_ListView ) { - TQListView *listview = (TQListView*)widget; - p->fillRect( r, listview->viewport()->backgroundBrush() ); - } - break; -#endif //TQT_NO_LISTVIEW - default: - break; - } - - activePainter = 0; -} - - -/*! \reimp */ -void TQCommonStyle::tqdrawComplexControlMask( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQStyleOption& opt ) const -{ - TQ_UNUSED(control); - TQ_UNUSED(widget); - TQ_UNUSED(opt); - - p->fillRect(r, Qt::color1); -} - - -/*! \reimp */ -TQRect TQCommonStyle::querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption &opt ) const -{ -#if defined(TQT_CHECK_STATE) - if (! widget) { - qWarning("TQCommonStyle::querySubControlMetrics: widget parameter cannot be zero!"); - return TQRect(); - } -#endif - - switch ( control ) { - case CC_SpinWidget: { - int fw = tqpixelMetric( PM_SpinBoxFrameWidth, widget); - TQSize bs; - bs.setHeight( widget->height()/2 - fw ); - if ( bs.height() < 8 ) - bs.setHeight( 8 ); - bs.setWidth( TQMIN( bs.height() * 8 / 5, widget->width() / 4 ) ); // 1.6 -approximate golden mean - bs = bs.expandedTo( TQApplication::globalStrut() ); - int y = fw; - int x, lx, rx; - x = widget->width() - y - bs.width(); - lx = fw; - rx = x - fw; - switch ( sc ) { - case SC_SpinWidgetUp: - return TQRect(x, y, bs.width(), bs.height()); - case SC_SpinWidgetDown: - return TQRect(x, y + bs.height(), bs.width(), bs.height()); - case SC_SpinWidgetButtonField: - return TQRect(x, y, bs.width(), widget->height() - 2*fw); - case SC_SpinWidgetEditField: - return TQRect(lx, fw, rx, widget->height() - 2*fw); - case SC_SpinWidgetFrame: - return widget->rect(); - default: - break; - } - break; } - - case CC_ComboBox: { - int x = 0, y = 0, wi = widget->width(), he = widget->height(); - int xpos = x; - xpos += wi - 2 - 16; - - switch ( sc ) { - case SC_ComboBoxFrame: - return widget->rect(); - case SC_ComboBoxArrow: - return TQRect(xpos, y+2, 16, he-4); - case SC_ComboBoxEditField: - return TQRect(x+3, y+3, wi-6-16, he-6); - case SC_ComboBoxListBoxPopup: - return opt.rect(); - default: - break; - } - break; } - -#ifndef TQT_NO_SCROLLBAR - case CC_ScrollBar: { - const TQScrollBar *scrollbar = (const TQScrollBar *) widget; - int sliderstart = 0; - int sbextent = tqpixelMetric(PM_ScrollBarExtent, widget); - int maxlen = ((scrollbar->orientation() == Qt::Horizontal) ? - scrollbar->width() : scrollbar->height()) - (sbextent * 2); - int sliderlen; - - sliderstart = scrollbar->sliderStart(); - - // calculate slider length - if (scrollbar->maxValue() != scrollbar->minValue()) { - uint range = scrollbar->maxValue() - scrollbar->minValue(); - sliderlen = (TQ_LLONG(scrollbar->pageStep()) * maxlen) / (range + scrollbar->pageStep()); - - int slidermin = tqpixelMetric( PM_ScrollBarSliderMin, widget ); - if ( sliderlen < slidermin || range > INT_MAX / 2 ) - sliderlen = slidermin; - if ( sliderlen > maxlen ) - sliderlen = maxlen; - } else - sliderlen = maxlen; - - switch (sc) { - case SC_ScrollBarSubLine: // top/left button - if (scrollbar->orientation() == Qt::Horizontal) { - int buttonWidth = TQMIN(scrollbar->width()/2, sbextent); - return TQRect( 0, 0, buttonWidth, sbextent ); - } else { - int buttonHeight = TQMIN(scrollbar->height()/2, sbextent); - return TQRect( 0, 0, sbextent, buttonHeight ); - } - - case SC_ScrollBarAddLine: // bottom/right button - if (scrollbar->orientation() == Qt::Horizontal) { - int buttonWidth = TQMIN(scrollbar->width()/2, sbextent); - return TQRect( scrollbar->width() - buttonWidth, 0, buttonWidth, sbextent ); - } else { - int buttonHeight = TQMIN(scrollbar->height()/2, sbextent); - return TQRect( 0, scrollbar->height() - buttonHeight, sbextent, buttonHeight ); - } - - case SC_ScrollBarSubPage: // between top/left button and slider - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sbextent, 0, sliderstart - sbextent, sbextent); - return TQRect(0, sbextent, sbextent, sliderstart - sbextent); - - case SC_ScrollBarAddPage: // between bottom/right button and slider - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sliderstart + sliderlen, 0, - maxlen - sliderstart - sliderlen + sbextent, sbextent); - return TQRect(0, sliderstart + sliderlen, - sbextent, maxlen - sliderstart - sliderlen + sbextent); - - case SC_ScrollBarGroove: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sbextent, 0, scrollbar->width() - sbextent * 2, - scrollbar->height()); - return TQRect(0, sbextent, scrollbar->width(), - scrollbar->height() - sbextent * 2); - - case SC_ScrollBarSlider: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sliderstart, 0, sliderlen, sbextent); - return TQRect(0, sliderstart, sbextent, sliderlen); - - default: break; - } - - break; } -#endif // TQT_NO_SCROLLBAR - -#ifndef TQT_NO_SLIDER - case CC_Slider: { - const TQSlider * sl = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, sl ); - int thickness = tqpixelMetric( PM_SliderControlThickness, sl ); - - switch ( sc ) { - case SC_SliderHandle: { - int sliderPos = 0; - int len = tqpixelMetric( PM_SliderLength, sl ); - - sliderPos = sl->sliderStart(); - - if ( sl->orientation() == Qt::Horizontal ) - return TQRect( sliderPos, tickOffset, len, thickness ); - return TQRect( tickOffset, sliderPos, thickness, len ); } - case SC_SliderGroove: { - if ( sl->orientation() == Qt::Horizontal ) - return TQRect( 0, tickOffset, sl->width(), thickness ); - return TQRect( tickOffset, 0, thickness, sl->height() ); } - - default: - break; - } - break; } -#endif // TQT_NO_SLIDER - -#if !defined(TQT_NO_TOOLBUTTON) && !defined(TQT_NO_POPUPMENU) - case CC_ToolButton: { - const TQToolButton *toolbutton = (const TQToolButton *) widget; - int mbi = tqpixelMetric(PM_MenuButtonIndicator, widget); - - TQRect rect = toolbutton->rect(); - switch (sc) { - case SC_ToolButton: - if (toolbutton->popup() && ! toolbutton->popupDelay()) - rect.addCoords(0, 0, -mbi, 0); - return rect; - - case SC_ToolButtonMenu: - if (toolbutton->popup() && ! toolbutton->popupDelay()) - rect.addCoords(rect.width() - mbi, 0, 0, 0); - return rect; - - default: break; - } - break; - } -#endif // TQT_NO_TOOLBUTTON && TQT_NO_POPUPMENU - -#ifndef TQT_NO_TITLEBAR - case CC_TitleBar: { - const TQTitleBar *titlebar = (const TQTitleBar *) widget; - const int controlTop = 2; - const int controlHeight = widget->height() - controlTop * 2; - - switch (sc) { - case SC_TitleBarLabel: { - const TQTitleBar *titlebar = (TQTitleBar*)widget; - TQRect ir( 0, 0, titlebar->width(), titlebar->height() ); - if ( titlebar->testWFlags( TQt::WStyle_Tool ) ) { - if ( titlebar->testWFlags( TQt::WStyle_SysMenu ) ) - ir.addCoords( 0, 0, -controlHeight-3, 0 ); - if ( titlebar->testWFlags( TQt::WStyle_MinMax ) ) - ir.addCoords( 0, 0, -controlHeight-2, 0 ); - } else { - if ( titlebar->testWFlags( TQt::WStyle_SysMenu ) ) - ir.addCoords( controlHeight+3, 0, -controlHeight-3, 0 ); - if ( titlebar->testWFlags( TQt::WStyle_Minimize ) ) - ir.addCoords( 0, 0, -controlHeight-2, 0 ); - if ( titlebar->testWFlags( TQt::WStyle_Maximize ) ) - ir.addCoords( 0, 0, -controlHeight-2, 0 ); - } - return ir; } - - case SC_TitleBarCloseButton: - return TQRect( titlebar->width() - ( controlHeight + controlTop ), - controlTop, controlHeight, controlHeight ); - - case SC_TitleBarMaxButton: - case SC_TitleBarShadeButton: - case SC_TitleBarUnshadeButton: - return TQRect( titlebar->width() - ( ( controlHeight + controlTop ) * 2 ), - controlTop, controlHeight, controlHeight ); - - case SC_TitleBarMinButton: - case SC_TitleBarNormalButton: { - int offset = controlHeight + controlTop; - if ( !titlebar->testWFlags( TQt::WStyle_Maximize ) ) - offset *= 2; - else - offset *= 3; - return TQRect( titlebar->width() - offset, controlTop, controlHeight, controlHeight ); - } - - case SC_TitleBarSysMenu: - return TQRect( 3, controlTop, controlHeight, controlHeight); - - default: break; - } - break; } -#endif //TQT_NO_TITLEBAR - - default: - break; - } - return TQRect(); -} - - -/*! \reimp */ -TQStyle::SubControl TQCommonStyle::querySubControl(TQ_ComplexControl control, - const TQWidget *widget, - const TQPoint &pos, - const TQStyleOption& opt ) const -{ - SubControl ret = SC_None; - - switch (control) { -#ifndef TQT_NO_LISTVIEW - case CC_ListView: - { - if(pos.x() >= 0 && pos.x() < - opt.listViewItem()->listView()->treeStepSize()) - ret = SC_ListViewExpand; - break; - } -#endif -#ifndef TQT_NO_SCROLLBAR - case CC_ScrollBar: - { - TQRect r; - uint ctrl = SC_ScrollBarAddLine; - - // we can do this because subcontrols were designed to be masks as well... - while (ret == SC_None && ctrl <= SC_ScrollBarGroove) { - r = querySubControlMetrics(control, widget, - (TQStyle::SubControl) ctrl, opt); - if (r.isValid() && r.contains(pos)) - ret = (TQStyle::SubControl) ctrl; - - ctrl <<= 1; - } - - break; - } -#endif - case CC_TitleBar: - { -#ifndef TQT_NO_TITLEBAR - const TQTitleBar *titlebar = (TQTitleBar*)widget; - TQRect r; - uint ctrl = SC_TitleBarLabel; - - // we can do this because subcontrols were designed to be masks as well... - while (ret == SC_None && ctrl <= SC_TitleBarUnshadeButton) { - r = tqvisualRect( querySubControlMetrics( control, widget, (TQStyle::SubControl) ctrl, opt ), widget ); - if (r.isValid() && r.contains(pos)) - ret = (TQStyle::SubControl) ctrl; - - ctrl <<= 1; - } - if ( titlebar->window() ) { - if (titlebar->testWFlags( TQt::WStyle_Tool )) { - if ( ret == SC_TitleBarMinButton || ret == SC_TitleBarMaxButton ) { - if ( titlebar->window()->isMinimized() ) - ret = SC_TitleBarUnshadeButton; - else - ret = SC_TitleBarShadeButton; - } - } else if ( ret == SC_TitleBarMinButton && titlebar->window()->isMinimized() ) { - ret = TQStyle::SC_TitleBarNormalButton; - } - } -#endif - break; - } - - default: - break; - } - - return ret; -} - - -/*! \reimp */ -int TQCommonStyle::tqpixelMetric(PixelMetric m, const TQWidget *widget) const -{ - int ret; - - switch (m) { - case PM_DialogButtonsSeparator: - ret = 5; - break; - case PM_DialogButtonsButtonWidth: - ret = 70; - break; - case PM_DialogButtonsButtonHeight: - ret = 30; - break; - case PM_CheckListControllerSize: - case PM_CheckListButtonSize: - ret = 16; - break; - case PM_TitleBarHeight: { - if ( widget ) { - if ( widget->testWFlags( TQt::WStyle_Tool ) ) { - ret = TQMAX( widget->fontMetrics().lineSpacing(), 16 ); -#ifndef TQT_NO_MAINWINDOW - } else if ( ::tqqt_cast<TQDockWindow*>(widget) ) { - ret = TQMAX( widget->fontMetrics().lineSpacing(), 13 ); -#endif - } else { - ret = TQMAX( widget->fontMetrics().lineSpacing(), 18 ); - } - } else { - ret = 0; - } - - break; } - case PM_ScrollBarSliderMin: - ret = 9; - break; - - case PM_ButtonMargin: - ret = 6; - break; - - case PM_ButtonDefaultIndicator: - ret = 0; - break; - - case PM_MenuButtonIndicator: - if (! widget) - ret = 12; - else - ret = TQMAX(12, (widget->height() - 4) / 3); - break; - - case PM_ButtonShiftHorizontal: - case PM_ButtonShiftVertical: - ret = 0; - break; - - case PM_SpinBoxFrameWidth: - case PM_DefaultFrameWidth: - ret = 2; - break; - - case PM_MDIFrameWidth: - ret = 2; - break; - - case PM_MDIMinimizedWidth: - ret = 196; - break; - -#ifndef TQT_NO_SCROLLBAR - case PM_ScrollBarExtent: - if ( !widget ) { - ret = 16; - } else { - const TQScrollBar *bar = (const TQScrollBar*)widget; - int s = bar->orientation() == Qt::Horizontal ? - TQApplication::globalStrut().height() - : TQApplication::globalStrut().width(); - ret = TQMAX( 16, s ); - } - break; -#endif - case PM_MaximumDragDistance: - ret = -1; - break; - -#ifndef TQT_NO_SLIDER - case PM_SliderThickness: - ret = 16; - break; - - case PM_SliderTickmarkOffset: - { - if (! widget) { - ret = 0; - break; - } - - const TQSlider * sl = (const TQSlider *) widget; - int space = (sl->orientation() == Qt::Horizontal) ? sl->height() : - sl->width(); - int thickness = tqpixelMetric( PM_SliderControlThickness, sl ); - int ticks = sl->tickmarks(); - - if ( ticks == TQSlider::Both ) - ret = (space - thickness) / 2; - else if ( ticks == TQSlider::Above ) - ret = space - thickness; - else - ret = 0; - break; - } - - case PM_SliderSpaceAvailable: - { - const TQSlider * sl = (const TQSlider *) widget; - if ( sl->orientation() == Qt::Horizontal ) - ret = sl->width() - tqpixelMetric( PM_SliderLength, sl ); - else - ret = sl->height() - tqpixelMetric( PM_SliderLength, sl ); - break; - } -#endif // TQT_NO_SLIDER - - case PM_DockWindowSeparatorExtent: - ret = 6; - break; - - case PM_DockWindowHandleExtent: - ret = 8; - break; - - case PM_DockWindowFrameWidth: - ret = 1; - break; - - case PM_MenuBarFrameWidth: - ret = 2; - break; - - case PM_MenuBarItemSpacing: - case PM_ToolBarItemSpacing: - ret = 0; - break; - - case PM_TabBarTabOverlap: - ret = 3; - break; - - case PM_TabBarBaseHeight: - ret = 0; - break; - - case PM_TabBarBaseOverlap: - ret = 0; - break; - - case PM_TabBarTabHSpace: - ret = 24; - break; - - case PM_TabBarTabShiftHorizontal: - case PM_TabBarTabShiftVertical: - ret = 2; - break; - -#ifndef TQT_NO_TABBAR - case PM_TabBarTabVSpace: - { - const TQTabBar * tb = (const TQTabBar *) widget; - if ( tb && ( tb->tqshape() == TQTabBar::RoundedAbove || - tb->tqshape() == TQTabBar::RoundedBelow ) ) - ret = 10; - else - ret = 0; - break; - } -#endif - - case PM_ProgressBarChunkWidth: - ret = 9; - break; - - case PM_IndicatorWidth: - ret = 13; - break; - - case PM_IndicatorHeight: - ret = 13; - break; - - case PM_ExclusiveIndicatorWidth: - ret = 12; - break; - - case PM_ExclusiveIndicatorHeight: - ret = 12; - break; - - case PM_PopupMenuFrameHorizontalExtra: - case PM_PopupMenuFrameVerticalExtra: - ret = 0; - break; - - case PM_HeaderMargin: - ret = 4; - break; - case PM_HeaderMarkSize: - ret = 32; - break; - case PM_HeaderGripMargin: - ret = 4; - break; - case PM_TabBarScrollButtonWidth: - ret = 16; - break; - default: - ret = 0; - break; - } - - return ret; -} - - -/*! \reimp */ -TQSize TQCommonStyle::tqsizeFromContents(ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& opt ) const -{ - TQSize sz(contentsSize); - -#if defined(TQT_CHECK_STATE) - if (! widget) { - qWarning("TQCommonStyle::tqsizeFromContents: widget parameter cannot be zero!"); - return sz; - } -#endif - - switch (contents) { -#ifndef TQT_NO_DIALOGBUTTONS - case CT_DialogButtons: { - const TQDialogButtons *dbtns = (const TQDialogButtons *)widget; - int w = contentsSize.width(), h = contentsSize.height(); - const int bwidth = tqpixelMetric(PM_DialogButtonsButtonWidth, widget), - bspace = tqpixelMetric(PM_DialogButtonsSeparator, widget), - bheight = tqpixelMetric(PM_DialogButtonsButtonHeight, widget); - if(dbtns->orientation() == Qt::Horizontal) { - if(!w) - w = bwidth; - } else { - if(!h) - h = bheight; - } - TQDialogButtons::Button btns[] = { TQDialogButtons::All, TQDialogButtons::Reject, TQDialogButtons::Accept, //reverse order (right to left) - TQDialogButtons::Apply, TQDialogButtons::Retry, TQDialogButtons::Ignore, TQDialogButtons::Abort, - TQDialogButtons::Help }; - for(unsigned int i = 0, cnt = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) { - if(dbtns->isButtonVisible(btns[i])) { - TQSize szH = dbtns->tqsizeHint(btns[i]); - int mwidth = TQMAX(bwidth, szH.width()), mheight = TQMAX(bheight, szH.height()); - if(dbtns->orientation() == Qt::Horizontal) - h = TQMAX(h, mheight); - else - w = TQMAX(w, mwidth); - - if(cnt) - w += bspace; - cnt++; - if(dbtns->orientation() == Qt::Horizontal) - w += mwidth; - else - h += mheight; - } - } - const int fw = tqpixelMetric(PM_DefaultFrameWidth, widget) * 2; - sz = TQSize(w + fw, h + fw); - break; } -#endif //TQT_NO_DIALOGBUTTONS - case CT_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - int w = contentsSize.width(), - h = contentsSize.height(), - bm = tqpixelMetric(PM_ButtonMargin, widget), - fw = tqpixelMetric(PM_DefaultFrameWidth, widget) * 2; - - w += bm + fw; - h += bm + fw; - - if (button->isDefault() || button->autoDefault()) { - int dbw = tqpixelMetric(PM_ButtonDefaultIndicator, widget) * 2; - w += dbw; - h += dbw; - } - - sz = TQSize(w, h); -#endif - break; - } - - case CT_CheckBox: - { -#ifndef TQT_NO_CHECKBOX - const TQCheckBox *checkbox = (const TQCheckBox *) widget; - TQRect irect = subRect(SR_CheckBoxIndicator, widget); - int h = tqpixelMetric( PM_IndicatorHeight, widget ); - int margins = (!checkbox->pixmap() && checkbox->text().isEmpty()) ? 0 : 10; - sz += TQSize(irect.right() + margins, 4 ); - sz.setHeight( TQMAX( sz.height(), h ) ); -#endif - break; - } - - case CT_RadioButton: - { -#ifndef TQT_NO_RADIOBUTTON - const TQRadioButton *radiobutton = (const TQRadioButton *) widget; - TQRect irect = subRect(SR_RadioButtonIndicator, widget); - int h = tqpixelMetric( PM_ExclusiveIndicatorHeight, widget ); - int margins = (!radiobutton->pixmap() && radiobutton->text().isEmpty()) ? 0 : 10; - sz += TQSize(irect.right() + margins, 4 ); - sz.setHeight( TQMAX( sz.height(), h ) ); -#endif - break; - } - - case CT_ToolButton: - { - sz = TQSize(sz.width() + 6, sz.height() + 5); - break; - } - - case CT_ComboBox: - { - int dfw = tqpixelMetric(PM_DefaultFrameWidth, widget) * 2; - sz = TQSize(sz.width() + dfw + 21, sz.height() + dfw ); - break; - } - - case CT_PopupMenuItem: - { -#ifndef TQT_NO_POPUPMENU - if (opt.isDefault()) - break; - - const TQPopupMenu *popup = (const TQPopupMenu *) widget; - bool checkable = popup->isCheckable(); - TQMenuItem *mi = opt.menuItem(); - int maxpmw = opt.maxIconWidth(); - int w = sz.width(), h = sz.height(); - - if (mi->custom()) { - w = mi->custom()->tqsizeHint().width(); - h = mi->custom()->tqsizeHint().height(); - if (! mi->custom()->fullSpan()) - h += 8; - } else if ( mi->widget() ) { - } else if (mi->isSeparator()) { - w = 10; - h = 2; - } else { - if (mi->pixmap()) - h = TQMAX(h, mi->pixmap()->height() + 4); - else - h = TQMAX(h, popup->fontMetrics().height() + 8); - - if (mi->iconSet() != 0) - h = TQMAX(h, mi->iconSet()->pixmap(TQIconSet::Small, - TQIconSet::Normal).height() + 4); - } - - if (! mi->text().isNull()) { - if (mi->text().find('\t') >= 0) - w += 12; - } - - if (maxpmw) - w += maxpmw + 6; - if (checkable && maxpmw < 20) - w += 20 - maxpmw; - if (checkable || maxpmw > 0) - w += 2; - w += 12; - - sz = TQSize(w, h); -#endif - break; - } - - case CT_LineEdit: - case CT_Header: - case CT_Slider: - case CT_ProgressBar: - // just return the contentsSize for now - // fall through intended - - default: - break; - } - - return sz; -} - - -/*! \reimp */ -int TQCommonStyle::tqstyleHint(TQ_StyleHint sh, const TQWidget * w, const TQStyleOption &, TQStyleHintReturn *) const -{ - int ret; - - switch (sh) { -#ifndef TQT_NO_DIALOGBUTTONS - case SH_DialogButtons_DefaultButton: - ret = TQDialogButtons::Accept; - break; -#endif - case SH_GroupBox_TextLabelVerticalAlignment: - ret = TQt::TQt::AlignVCenter; - break; - - case SH_GroupBox_TextLabelColor: - ret = (int) ( w ? w->paletteForegroundColor().rgb() : 0 ); - break; - - case SH_ListViewExpand_SelectMouseType: - case SH_TabBar_SelectMouseType: - ret = TQEvent::MouseButtonPress; - break; - - case SH_GUIStyle: - ret = TQt::WindowsStyle; - break; - - case SH_ScrollBar_BackgroundMode: - ret = TQt::PaletteBackground; - break; - - case SH_TabBar_Alignment: - case SH_Header_ArrowAlignment: - ret = TQt::AlignLeft; - break; - - case SH_PopupMenu_SubMenuPopupDelay: - ret = 256; - break; - - case SH_ProgressDialog_TextLabelAlignment: - ret = TQt::AlignCenter; - break; - - case SH_BlinkCursorWhenTextSelected: - ret = 1; - break; - - case SH_Table_GridLineColor: - ret = -1; - break; - - case SH_LineEdit_PasswordCharacter: - ret = '*'; - break; - - case SH_ToolBox_SelectedPageTitleBold: - ret = 1; - break; - - case SH_UnderlineAccelerator: - ret = 1; - break; - - case SH_ToolButton_Uses3D: - ret = 1; - break; - - default: - ret = 0; - break; - } - - return ret; -} - -/*! \reimp */ -TQPixmap TQCommonStyle::stylePixmap(StylePixmap, const TQWidget *, const TQStyleOption&) const -{ - return TQPixmap(); -} - - -#endif // TQT_NO_STYLE diff --git a/tqtinterface/qt4/src/styles/tqcommonstyle.h b/tqtinterface/qt4/src/styles/tqcommonstyle.h deleted file mode 100644 index 5f17e6d..0000000 --- a/tqtinterface/qt4/src/styles/tqcommonstyle.h +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** -** Definition of TQCommonStyle class -** -** Created : 980616 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQCOMMONSTYLE_H -#define TQCOMMONSTYLE_H - -#ifndef TQT_H -#include "tqstyle.h" -#endif // TQT_H - -#ifndef TQT_NO_STYLE - -class TQ_EXPORT TQCommonStyle: public TQStyle -{ - Q_OBJECT - TQ_OBJECT - -public: - TQCommonStyle(); - ~TQCommonStyle(); - - // Compatibility functions - // For example, a TQt application may call tqdrawPrimitive with a ControlElement parameter - // TQt "knows" that the application should have called tqdrawControl instead, and translates accordingly. - inline void tqdrawPrimitive( TQ_ControlElement element, TQPainter *p, const TQRect &r, const TQColorGroup &cg, SFlags flags = Style_Default, const TQStyleOption &opt = TQStyleOption::Default ) const { - TQ_UNUSED(r); - TQ_UNUSED(cg); - TQ_UNUSED(flags); - drawControl((QStyle::ControlElement)(int)element, &opt, p, 0); // [FIXME] What should widget really be? I imagine 0 is *wrong*!!! - } - inline void tqdrawPrimitive( TQ_ComplexControl element, TQPainter *p, const TQRect &r, const TQColorGroup &cg, SFlags flags = Style_Default, const TQStyleOption &opt = TQStyleOption::Default ) const { - TQ_UNUSED(r); - TQ_UNUSED(cg); - TQ_UNUSED(flags); - drawComplexControl((QStyle::ComplexControl)(int)element, 0, p, 0); // [FIXME] What should widget and complexcontrol really be? I imagine 0 is *wrong*!!! - } - inline void tqdrawPrimitive( TQ_ControlElement element, TQPainter *p, const TQRect &r, const TQColorGroup &cg, int flags, const TQStyleOption &opt = TQStyleOption::Default ) const { tqdrawPrimitive( element, p, r, cg, (SFlags)flags, opt); } - - void tqdrawPrimitive( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControlMask( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect subRect( SubRect r, const TQWidget *widget ) const; - - void tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, -#ifdef TQ_TQDOC - SCFlags sub = SC_All, -#else - SCFlags sub = (uint)SC_All, -#endif - SCFlags subActive = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawComplexControlMask( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& = TQStyleOption::Default ) const; - - SubControl querySubControl( TQ_ComplexControl control, - const TQWidget *widget, - const TQPoint &pos, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqpixelMetric( PixelMetric m, const TQWidget *widget = 0 ) const; - - TQSize tqsizeFromContents( ContentsType s, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqstyleHint(TQ_StyleHint sh, const TQWidget *, const TQStyleOption &, TQStyleHintReturn *) const; - - TQPixmap stylePixmap( StylePixmap sp, - const TQWidget *widget = 0, - const TQStyleOption& = TQStyleOption::Default ) const; - - -private: - // Disabled copy constructor and operator= -#if defined(TQ_DISABLE_COPY) - TQCommonStyle( const TQCommonStyle & ); - TQCommonStyle &operator=( const TQCommonStyle & ); -#endif -}; - - - -#endif // TQT_NO_STYLE - -#endif // TQCOMMONSTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqcompactstyle.cpp b/tqtinterface/qt4/src/styles/tqcompactstyle.cpp deleted file mode 100644 index 7f90df9..0000000 --- a/tqtinterface/qt4/src/styles/tqcompactstyle.cpp +++ /dev/null @@ -1,321 +0,0 @@ -/**************************************************************************** -** -** Implementation of compact style class -** -** Created : 006231 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqcompactstyle.h" - -#if !defined(TQT_NO_STYLE_COMPACT) || defined(TQT_PLUGIN) - -#include "tqfontmetrics.h" -#include "tqpalette.h" -#include "tqpainter.h" -#include "tqdrawutil.h" -#include "tqmenudata.h" -#include "tqpopupmenu.h" - -TQCompactStyle::TQCompactStyle() -: TQWindowsStyle() -{ -} - -/*! \reimp */ -int TQCompactStyle::tqpixelMetric( PixelMetric metric, const TQWidget *widget ) -{ - int ret; - switch ( metric ) { - case PM_ButtonMargin: - ret = 2; - break; - // tws - I added this in to stop this "Windows Scroll behaivor." Remove it - // if you don't want it. - case PM_MaximumDragDistance: - ret = -1; - break; - default: - ret = TQWindowsStyle::tqpixelMetric( metric, widget ); - break; - } - return ret; -} - -static const int motifItemFrame = 0; // menu item frame width -static const int motifSepHeight = 2; // separator item height -static const int motifItemHMargin = 1; // menu item hor text margin -static const int motifItemVMargin = 2; // menu item ver text margin -static const int motifArrowHMargin = 0; // arrow horizontal margin -static const int motifTabSpacing = 4; // space between text and tab -static const int motifCheckMarkHMargin = 1; // horiz. margins of check mark -static const int windowsRightBorder = 8; // right border on windows -static const int windowsCheckMarkWidth = 2; // checkmarks width on windows - -static int extraPopupMenuItemWidth( bool checkable, int maxpmw, TQMenuItem* mi, const TQFontMetrics& /*fm*/ ) -{ - int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm - - if ( mi->isSeparator() ) - return 10; // arbitrary - else if ( mi->pixmap() ) - w += mi->pixmap()->width(); // pixmap only - - if ( !mi->text().isNull() ) { - if ( mi->text().find('\t') >= 0 ) // string contains tab - w += motifTabSpacing; - } - - if ( maxpmw ) { // we have iconsets - w += maxpmw; - w += 6; // add a little extra border around the iconset - } - - if ( checkable && maxpmw < windowsCheckMarkWidth ) { - w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks - } - - if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) - w += motifCheckMarkHMargin; // add space to separate the columns - - w += windowsRightBorder; // windows has a strange wide border on the right side - - return w; -} - -static int popupMenuItemHeight( bool /*checkable*/, TQMenuItem* mi, const TQFontMetrics& fm ) -{ - int h = 0; - if ( mi->isSeparator() ) // separator height - h = motifSepHeight; - else if ( mi->pixmap() ) // pixmap height - h = mi->pixmap()->height() + 2*motifItemFrame; - else // text height - h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; - - if ( !mi->isSeparator() && mi->iconSet() != 0 ) { - h = TQMAX( h, mi->iconSet()->pixmap( TQIconSet::Small, TQIconSet::Normal ).height() + 2*motifItemFrame ); - } - if ( mi->custom() ) - h = TQMAX( h, mi->custom()->tqsizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; - return h; -} - -void drawPopupMenuItem( TQPainter* p, bool checkable, - int maxpmw, int tab, TQMenuItem* mi, - const TQPalette& pal, bool act, - bool enabled, - int x, int y, int w, int h) -{ - -} - -/*! \reimp */ -void TQCompactStyle::tqdrawControl( ControlElement element, TQPainter *p, const TQWidget *widget, const TQRect &r, - const TQColorGroup &g, SFlags flags, const TQStyleOption& opt ) -{ - switch ( element ) { - case CE_PopupMenuItem: - { - if (! widget || opt.isDefault()) - break; - - const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget; - TQMenuItem *mi = opt.menuItem(); - if ( !mi ) - break; - - int tab = opt.tabWidth(); - int maxpmw = opt.maxIconWidth(); - bool dis = !(flags & Style_Enabled); - bool checkable = popupmenu->isCheckable(); - bool act = flags & Style_Active; - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - - TQColorGroup itemg = g; - - if ( checkable ) - maxpmw = TQMAX( maxpmw, 8 ); // space for the checkmarks - - int checkcol = maxpmw; - - if ( mi && mi->isSeparator() ) { // draw separator - p->setPen( g.dark() ); - p->drawLine( x, y, x+w, y ); - p->setPen( g.light() ); - p->drawLine( x, y+1, x+w, y+1 ); - return; - } - - TQBrush fill = act? g.brush( TQColorGroup::Highlight ) : - g.brush( TQColorGroup::Button ); - p->fillRect( x, y, w, h, fill); - - if ( !mi ) - return; - - if ( mi->isChecked() ) { - if ( act && !dis ) { - qDrawShadePanel( p, x, y, checkcol, h, - g, TRUE, 1, &g.brush( TQColorGroup::Button ) ); - } else { - qDrawShadePanel( p, x, y, checkcol, h, - g, TRUE, 1, &g.brush( TQColorGroup::Midlight ) ); - } - } else if ( !act ) { - p->fillRect(x, y, checkcol , h, - g.brush( TQColorGroup::Button )); - } - - if ( mi->iconSet() ) { // draw iconset - TQIconSet::Mode mode = dis ? TQIconSet::Disabled : TQIconSet::Normal; - if (act && !dis ) - mode = TQIconSet::Active; - TQPixmap pixmap; - if ( checkable && mi->isChecked() ) - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); - else - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - if ( act && !dis ) { - if ( !mi->isChecked() ) - qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( TQColorGroup::Button ) ); - } - TQRect cr( x, y, checkcol, h ); - TQRect pmr( 0, 0, pixw, pixh ); - pmr.moveCenter( cr.center() ); - p->setPen( itemg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - - TQBrush fill = act? g.brush( TQColorGroup::Highlight ) : - g.brush( TQColorGroup::Button ); - p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); - } else if ( checkable ) { // just "checking"... - int mw = checkcol + motifItemFrame; - int mh = h - 2*motifItemFrame; - if ( mi->isChecked() ) { - - SFlags cflags = Style_Default; - if (! dis) - cflags |= Style_Enabled; - if (act) - cflags |= Style_On; - - drawPrimitive( PE_CheckMark, p, TQRect(x + motifItemFrame + 2, y + motifItemFrame, - mw, mh), itemg, cflags, opt ); - } - } - - p->setPen( act ? g.highlightedText() : g.buttonText() ); - - TQColor discol; - if ( dis ) { - discol = itemg.text(); - p->setPen( discol ); - } - - int xm = motifItemFrame + checkcol + motifItemHMargin; - - if ( mi->custom() ) { - int m = motifItemVMargin; - p->save(); - if ( dis && !act ) { - p->setPen( g.light() ); - mi->custom()->paint( p, itemg, act, !dis, - x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); - p->setPen( discol ); - } - mi->custom()->paint( p, itemg, act, !dis, - x+xm, y+m, w-xm-tab+1, h-2*m ); - p->restore(); - } - TQString s = mi->text(); - if ( !s.isNull() ) { // draw text - int t = s.find( '\t' ); - int m = motifItemVMargin; - const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; - if ( t >= 0 ) { // draw tab text - if ( dis && !act ) { - p->setPen( g.light() ); - p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, - y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); - p->setPen( discol ); - } - p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, - y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); - s = s.left( t ); - } - if ( dis && !act ) { - p->setPen( g.light() ); - p->drawText( x+xm+1, y+m+1, w-xm+1, h-2*m, text_flags, s, t ); - p->setPen( discol ); - } - p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t ); - } else if ( mi->pixmap() ) { // draw pixmap - TQPixmap *pixmap = mi->pixmap(); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( OpaqueMode ); - p->drawPixmap( x+xm, y+motifItemFrame, *pixmap ); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( TransparentMode ); - } - if ( mi->popup() ) { // draw sub menu arrow - int dim = (h-2*motifItemFrame) / 2; - if ( act ) { - if ( !dis ) - discol = white; - TQColorGroup g2( discol, g.highlight(), - white, white, - dis ? discol : white, - discol, white ); - drawPrimitive(PE_ArrowRight, p, TQRect(x+w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, dim, dim), - g2, Style_Enabled); - } else { - drawPrimitive(PE_ArrowRight, p, TQRect(x+w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, dim, dim), - g, !dis ? Style_Enabled : Style_Default); - } - } - } - break; - - default: - TQWindowsStyle::tqdrawControl( element, p, widget, r, g, flags, opt ); - break; - } -} - -#endif diff --git a/tqtinterface/qt4/src/styles/tqcompactstyle.h b/tqtinterface/qt4/src/styles/tqcompactstyle.h deleted file mode 100644 index 24c7b3a..0000000 --- a/tqtinterface/qt4/src/styles/tqcompactstyle.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Definition of compact style class, good for small displays -** -** Created : 000623 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQCOMPACTSTYLE_H -#define TQCOMPACTSTYLE_H - -#ifndef TQT_H -#include "tqwindowsstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_COMPACT) || defined(TQT_PLUGIN) - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_COMPACT -#else -#define TQ_EXPORT_STYLE_COMPACT TQ_EXPORT -#endif - -class TQ_EXPORT_STYLE_COMPACT TQCompactStyle : public TQWindowsStyle -{ -public: - TQCompactStyle(); - - int tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ); - - void tqdrawControl( ControlElement element, TQPainter *p, const TQWidget *w, const TQRect &r, - const TQColorGroup &cg, SFlags how = Style_Default, const TQStyleOption& = TQStyleOption::Default ); - -private: // Disabled copy constructor and operator= -#if defined(TQ_DISABLE_COPY) - TQCompactStyle( const TQCompactStyle & ); - TQCompactStyle& operator=( const TQCompactStyle & ); -#endif -}; - -#endif // TQT_NO_STYLE_WINDOWS - -#endif // TQCOMPACTSTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqinterlacestyle.cpp b/tqtinterface/qt4/src/styles/tqinterlacestyle.cpp deleted file mode 100644 index 1d42786..0000000 --- a/tqtinterface/qt4/src/styles/tqinterlacestyle.cpp +++ /dev/null @@ -1,805 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQInterlaceStyle class -** -** Created : 010122 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#if 0 // ###### not ported to new API yet - -#include "tqinterlacestyle.h" - -#if !defined(TQT_NO_STYLE_INTERLACE) || defined(TQT_PLUGIN) - -#include "tqapplication.h" -#include "tqpainter.h" -#include "tqdrawutil.h" // for now -#include "tqpalette.h" // for now -#include "tqwidget.h" -#include "tqlabel.h" -#include "tqpushbutton.h" -#include "tqwidget.h" -#include "tqrangecontrol.h" -#include "tqscrollbar.h" -#include "tqlistbox.h" - -#include <limits.h> - -/*! - \class TQInterlaceStyle tqinterlacestyle.h - \brief The TQInterlaceStyle class provides a Look and Feel suitable for interlaced displays. - \ingroup appearance - - This class implements a look and feel that reduces flicker as much as - possible on interlaced displays (i.e. television). It is an experimental - style. In addition to using this style you will need to select a font - that does not flicker. -*/ - -/*! - Constructs a TQInterlaceStyle -*/ -TQInterlaceStyle::TQInterlaceStyle() : TQMotifStyle() -{ - setUseHighlightColors( TRUE ); -} - -/*! \reimp -*/ -int TQInterlaceStyle::buttonDefaultIndicatorWidth() const -{ - return 0; -} - -/*! \reimp -*/ -int TQInterlaceStyle::setSliderThickness() const -{ - return 18; -} - -/*! \reimp -*/ -TQSize TQInterlaceStyle::scrollBarExtent() const -{ - return TQSize( 18, 18 ); -} - -/*! \reimp -*/ -int TQInterlaceStyle::defaultFrameWidth() const -{ - return 2; -} - -/*! - \reimp - */ -void TQInterlaceStyle::polish( TQApplication *app) -{ - oldPalette = app->palette(); -#if 0 - TQColor bg( 128, 64, 128 ); - TQColor btn( 255, 145, 0 ); - TQColor mid = bg.dark( 120 ); - TQColor low = mid.dark( 120 ); - TQColor fg( white ); -#else - TQColor bg( 224, 224, 224 ); - TQColor btn = bg.dark( 105 ); - TQColor mid = bg.dark( 120 ); - TQColor low = mid.dark( 120 ); - TQColor fg( black ); -#endif - - TQColorGroup cg( fg, btn, low, low, mid, black, black, white, bg ); - cg.setColor( TQColorGroup::Highlight, TQColor( 255, 255, 192 ) ); - cg.setColor( TQColorGroup::HighlightedText, black ); - - TQColorGroup dcg( cg ); - dcg.setColor( TQColorGroup::ButtonText, low ); - dcg.setColor( TQColorGroup::Text, low ); - - app->setPalette( TQPalette( cg, dcg, cg ), TRUE ); -} - -/*! - \reimp - */ -void TQInterlaceStyle::unPolish( TQApplication *app) -{ - app->setPalette(oldPalette, TRUE); -} - -/*! - \reimp - */ -void TQInterlaceStyle::polish( TQWidget* w) -{ - - // 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->inherits("TQLCDNumber") ){ - return; - } - - if ( !w->isTopLevel() ) { - if ( w->inherits("TQGroupBox") - || w->inherits("TQTabWidget") - || w->inherits("TQPushButton") ) { - w->setAutoMask( TRUE ); - return; - } - if (w->inherits("TQLabel") - || w->inherits("TQSlider") - || w->inherits("TQButton") - || w->inherits("TQProgressBar") - ){ - w->setBackgroundOrigin( TQWidget::ParentOrigin ); - } - } - - if ( w->inherits( "TQFrame" ) ) { - TQFrame *f = (TQFrame *)w; - switch ( f->frameShape() ) { - case TQFrame::WinPanel: - f->setFrameShape( TQFrame::StyledPanel ); - - case TQFrame::Panel: - case TQFrame::Box: - case TQFrame::StyledPanel: - case TQFrame::PopupPanel: - if ( f->frameWidth() == 1 ) - f->setLineWidth( 2 ); - break; - default: - break; - } - } - - if ( w->inherits( "TQListBox" ) ) { - // the list box in combos has an ugly border otherwise - TQFrame *f = (TQFrame *)w; - if ( f->frameShadow() == TQFrame::Plain ) { - f->setFrameShadow( TQFrame::Raised ); - f->setLineWidth( 1 ); - } - } -} - -/*! - \reimp -*/ -void TQInterlaceStyle::unPolish( TQWidget* w) -{ - - // 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->inherits("TQLCDNumber") ){ - return; - } - - if ( !w->isTopLevel() ) { - if ( w->inherits("TQGroupBox") - || w->inherits("TQTabWidget") - || w->inherits("TQPushButton" ) ) { - w->setAutoMask( FALSE ); - return; - } - if (w->inherits("TQLabel") - || w->inherits("TQSlider") - || w->inherits("TQButton") - || w->inherits("TQProgressBar") - ){ - w->setBackgroundOrigin( TQWidget::WidgetOrigin ); - } - } - -} - -/*! - \reimp -*/ -TQRect TQInterlaceStyle::pushButtonContentsRect( TQPushButton *btn ) -{ - int fw = 0; - if ( btn->isDefault() || btn->autoDefault() ) - fw = buttonDefaultIndicatorWidth(); - - return buttonRect( fw+5, fw, btn->width()-2*fw-10, btn->height()-2*fw ); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawFocusRect ( TQPainter *p, const TQRect &/*r*/, const TQColorGroup &g, const TQColor * bg, bool /*atBorder*/ ) -{ - if (bg ) { - int h,s,v; - bg->hsv(&h,&s,&v); - if (v >= 128) - p->setPen( TQt::black ); - else - p->setPen( TQt::white ); - } - else - p->setPen( g.foreground() ); -/* - p->setBrush( NoBrush ); - if ( atBorder ) { - p->drawRect( TQRect( r.x()+1, r.y()+2, r.width()-2, r.height()-4 ) ); - p->drawRect( TQRect( r.x()+2, r.y()+1, r.width()-4, r.height()-2 ) ); - } else { - p->drawRect( TQRect( r.x(), r.y()+1, r.width(), r.height()-2 ) ); - p->drawRect( TQRect( r.x()+1, r.y(), r.width()-2, r.height() ) ); - } -*/ -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawButton( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool /* sunken */, - const TQBrush *fill ) -{ - const int lineWidth = 2; - - p->setBrush( g.brush( TQColorGroup::Dark ) ); - p->setPen( NoPen ); - p->drawRect( x+1, y+1, 2, 2 ); - p->drawRect( x+w-3, y+1, 2, 2 ); - p->drawRect( x+1, y+h-3, 2, 2 ); - p->drawRect( x+w-3, y+h-3, 2, 2 ); - - p->drawRect( x+2, y, w-4, 2 ); - p->drawRect( x+2, y+h-lineWidth, w-4, lineWidth ); - p->drawRect( x, y+2, lineWidth, h-4 ); - p->drawRect( x+w-lineWidth, y+2, lineWidth, h-4 ); - - if ( fill ) { - x += 2; - y += 2; - w -= 4; - h -= 4; - p->setBrush( *fill ); - p->setPen( NoPen ); - p->drawRect( x+1, y, w-2, 1 ); - p->drawRect( x, y+1, w, h-2 ); - p->drawRect( x+1, y+h-1, w-2, 1 ); - } -} - -/*! \reimp */ -void TQInterlaceStyle::drawButtonMask( TQPainter * p, int x, int y, int w, int h ) -{ - TQBrush fill( color1 ); - TQColorGroup cg; - cg.setBrush( TQColorGroup::Dark, color1 ); - drawButton( p, x, y, w, h, cg, FALSE, &fill ); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawBevelButton( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken, const TQBrush* fill ) -{ - TQInterlaceStyle::drawButton(p, x, y, w, h, g, sunken, fill); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawPushButton( TQPushButton* btn, TQPainter *p) -{ - TQColorGroup g = btn->tqcolorGroup(); - int x1, y1, x2, y2; - - btn->rect().coords( &x1, &y1, &x2, &y2 ); // get coordinates - - TQBrush fill( g.button() ); - if ( btn->isDown() || btn->isOn() ) - fill = g.mid(); - - if ( btn->hasFocus() ) - g.setBrush( TQColorGroup::Dark, black ); - drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, FALSE, &fill ); - - if ( btn->isMenuButton() ) { - int dx = (y1-y2-4)/3; - drawArrow( p, DownArrow, FALSE, - x2 - dx, dx, y1, y2 - y1, - g, btn->isEnabled() ); - } - - if ( p->brush().style() != NoBrush ) - p->setBrush( NoBrush ); -} - -/*! - \reimp -*/ -TQSize TQInterlaceStyle::indicatorSize () const -{ - return TQSize(13,13); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawIndicator( TQPainter * p, int x, int y, int w, int h, const TQColorGroup &g, int s, bool down, bool enabled ) -{ - p->fillRect( x, y, w, h, g.brush( TQColorGroup::Background ) ); - TQBrush fill; - if ( s == TQButton::NoChange ) { - TQBrush b = p->brush(); - TQColor c = p->backgroundColor(); - p->setBackgroundMode( TransparentMode ); - p->setBackgroundColor( green ); - fill = TQBrush(g.base(), Dense4Pattern); - p->setBackgroundColor( c ); - p->setBrush( b ); - } else if ( down ) - fill = g.brush( TQColorGroup::Button ); - else - fill = g.brush( enabled ? TQColorGroup::Base : TQColorGroup::Background ); - - drawButton( p, x, y, w, h, g, FALSE, &fill ); - - if ( s != TQButton::Off ) { - TQPointArray a( 7*2 ); - int i, xx, yy; - xx = x+3; - yy = y+5; - for ( i=0; i<3; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - yy -= 2; - for ( i=3; i<7; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - if ( s == TQButton::NoChange ) { - p->setPen( g.dark() ); - } else { - p->setPen( g.text() ); - } - p->drawLineSegments( a ); - } -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawIndicatorMask( TQPainter *p, int x, int y, int w, int h, int ) -{ - drawButtonMask( p, x, y, w, h ); -} - -/*! - \reimp -*/ -TQSize TQInterlaceStyle::exclusiveIndicatorSize() const -{ - return TQSize(13,13); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawExclusiveIndicator( TQPainter *p, int x, int y, int w, int h, const TQColorGroup &g, bool on, bool down, bool enabled ) -{ - p->fillRect( x, y, w, h, g.brush( TQColorGroup::Background ) ); - p->setBrush( g.dark() ); - p->setPen( TQPen( NoPen ) ); - p->drawEllipse( x, y, w, h ); - - x += 2; - y += 2; - w -= 4; - h -= 4; - TQColor fillColor = ( down || !enabled ) ? g.button() : g.base(); - p->setBrush( fillColor ); - p->drawEllipse( x, y, w, h ); - - if ( on ) { - p->setBrush( g.text() ); - p->drawEllipse( x+2, y+2, w-4, h-4 ); - } -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawExclusiveIndicatorMask( TQPainter *p, int x, int y, int w, int h, bool ) -{ - p->setBrush( color1 ); - p->setPen( TQPen( NoPen ) ); - p->drawEllipse( x, y, w, h ); -} - -static int get_combo_extra_width( int h, int *return_awh=0 ) -{ - int awh; - if ( h < 8 ) { - awh = 6; - } else if ( h < 14 ) { - awh = h - 2; - } else { - awh = h/2; - } - if ( return_awh ) - *return_awh = awh; - return awh*3/2; -} - -/*! - \reimp -*/ -TQRect TQInterlaceStyle::comboButtonRect ( int x, int y, int w, int h ) -{ - TQRect r = buttonRect( x, y, w, h ); - int ew = get_combo_extra_width( r.height() ); - return TQRect(r.x(), r.y(), r.width()-ew, r.height()); -} - -static void get_combo_parameters( const TQRect &r, - int &ew, int &awh, int &ax, - int &ay, int &sh, int &dh, - int &sy ) -{ - ew = get_combo_extra_width( r.height(), &awh ); - - sh = (awh+3)/4; - if ( sh < 3 ) - sh = 3; - dh = sh/2 + 1; - - ay = r.y() + (r.height()-awh-sh-dh)/2; - if ( ay < 0 ) { - //panic mode - ay = 0; - sy = r.height(); - } else { - sy = ay+awh+dh; - } - ax = r.x() + r.width() - ew +(ew-awh)/2; -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawComboButton( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, - bool /* sunken */, - bool /*editable*/, - bool /*enabled */, - const TQBrush *fb ) -{ - TQBrush fill = fb ? *fb : g.brush( TQColorGroup::Button ); - - int awh, ax, ay, sh, sy, dh, ew; - get_combo_parameters( buttonRect(x,y,w,h), ew, awh, ax, ay, sh, dh, sy ); - - drawButton( p, x, y, w, h, g, FALSE, &fill ); - - qDrawArrow( p, DownArrow, MotifStyle, FALSE, ax, ay, awh, awh, g, TRUE ); - - p->setPen( g.dark() ); - p->drawRect( ax+1, sy+1, awh-1, sh-1 ); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawPushButtonLabel( TQPushButton* btn, TQPainter *p) -{ - TQRect r = btn->rect(); - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - - int x1, y1, x2, y2; - btn->rect().coords( &x1, &y1, &x2, &y2 ); // get coordinates - int dx = 0; - int dy = 0; - if ( btn->isMenuButton() ) - dx = (y2-y1) / 3; - if ( btn->isOn() || btn->isDown() ) { -// dx--; -// dy--; - } - if ( dx || dy ) - p->translate( dx, dy ); - - x += 2; y += 2; w -= 4; h -= 4; - TQColorGroup g = btn->tqcolorGroup(); - const TQColor *col = &btn->tqcolorGroup().buttonText(); - if ( (btn->isDown() || btn->isOn()) ) - col = &btn->tqcolorGroup().brightText(); - else if ( !btn->isEnabled() ) - col = &btn->tqcolorGroup().dark(); - drawItem( p, x, y, w, h, - AlignCenter|ShowPrefix, - g, btn->isEnabled(), - btn->pixmap(), btn->text(), -1, col ); - - if ( dx || dy ) - p->translate( -dx, -dy ); -} - -#define HORIZONTAL (sb->orientation() == TQScrollBar::Horizontal) -#define VERTICAL !HORIZONTAL -#define MOTIF_BORDER defaultFrameWidth() -#define SLIDER_MIN 9 // ### motif says 6 but that's too small - - -/*! \reimp */ - -void TQInterlaceStyle::scrollBarMetrics( const TQScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int &buttonDim ) -{ - int maxLength; - int b = MOTIF_BORDER; - int length = HORIZONTAL ? sb->width() : sb->height(); - int extent = HORIZONTAL ? sb->height() : sb->width(); - - if ( length > ( extent - b*2 - 1 )*2 + b*2 ) - buttonDim = extent - b*2; - else - buttonDim = ( length - b*2 )/2 - 1; - - sliderMin = b + buttonDim; - maxLength = length - b*2 - buttonDim*2; - - if ( sb->maxValue() == sb->minValue() ) { - sliderLength = maxLength; - } else { - uint range = sb->maxValue()-sb->minValue(); - sliderLength = (sb->pageStep()*maxLength)/ - (range + sb->pageStep()); - if ( sliderLength < SLIDER_MIN || range > INT_MAX/2 ) - sliderLength = SLIDER_MIN; - if ( sliderLength > maxLength ) - sliderLength = maxLength; - } - sliderMax = sliderMin + maxLength - sliderLength; - -} - - -/*! \reimp */ - -void TQInterlaceStyle::drawScrollBarControls( TQPainter* p, const TQScrollBar* sb, - int sliderStart, uint controls, - uint activeControl ) -{ -#define ADD_LINE_ACTIVE ( activeControl == AddLine ) -#define SUB_LINE_ACTIVE ( activeControl == SubLine ) - TQColorGroup g = sb->tqcolorGroup(); - - int sliderMin, sliderMax, sliderLength, buttonDim; - scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); - - TQBrush fill = g.brush( TQColorGroup::Mid ); - if (sb->backgroundPixmap() ){ - fill = TQBrush( g.mid(), *sb->backgroundPixmap() ); - } - - if ( controls == (AddLine | SubLine | AddPage | SubPage | Slider | First | Last ) ) - drawPanel( p, 0, 0, sb->width(), sb->height(), g, FALSE, 2, &fill ); - - if (sliderStart > sliderMax) { // sanity check - sliderStart = sliderMax; - } - - int b = MOTIF_BORDER; - int dimB = buttonDim; - TQRect addB; - TQRect subB; - TQRect addPageR; - TQRect subPageR; - TQRect sliderR; - int addX, addY, subX, subY; - int length = HORIZONTAL ? sb->width() : sb->height(); - int extent = HORIZONTAL ? sb->height() : sb->width(); - - if ( HORIZONTAL ) { - subY = addY = ( extent - dimB ) / 2; - subX = b; - addX = length - dimB - b; - } else { - subX = addX = ( extent - dimB ) / 2; - subY = b; - addY = length - dimB - b; - } - - subB.setRect( subX,subY,dimB,dimB ); - addB.setRect( addX,addY,dimB,dimB ); - - int sliderEnd = sliderStart + sliderLength; - int sliderW = extent - b*2; - if ( HORIZONTAL ) { - subPageR.setRect( subB.right() + 1, b, - sliderStart - subB.right() , sliderW ); - addPageR.setRect( sliderEnd-1, b, addX - sliderEnd+1, sliderW ); - sliderR .setRect( sliderStart, b, sliderLength, sliderW ); - } else { - subPageR.setRect( b, subB.bottom()+1, sliderW, - sliderStart - subB.bottom() ); - addPageR.setRect( b, sliderEnd-1, sliderW, addY - sliderEnd + 1); - sliderR .setRect( b, sliderStart, sliderW, sliderLength ); - } - - if ( controls & AddLine ) - drawArrow( p, VERTICAL ? DownArrow : RightArrow, - ADD_LINE_ACTIVE, addB.x(), addB.y(), - addB.width(), addB.height(), g, TRUE ); - if ( controls & SubLine ) - drawArrow( p, VERTICAL ? UpArrow : LeftArrow, - SUB_LINE_ACTIVE, subB.x(), subB.y(), - subB.width(), subB.height(), g, TRUE ); - - if ( controls & SubPage ) - p->fillRect( subPageR, fill ); - - if ( controls & AddPage ) - p->fillRect( addPageR, fill ); - - if ( controls & Slider ) { - TQPoint bo = p->brushOrigin(); - p->setBrushOrigin(sliderR.topLeft()); - if ( sliderR.isValid() ) - drawButton( p, sliderR.x(), sliderR.y(), - sliderR.width(), sliderR.height(), g, - FALSE, &g.brush( TQColorGroup::Button ) ); - p->setBrushOrigin(bo); - } - -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawSlider ( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, Orientation orient, bool, bool) -{ - p->fillRect( x, y, w, h, g.brush( TQColorGroup::Background ) ); - drawButton( p, x, y, w, h, g, FALSE, &g.brush( TQColorGroup::Button ) ); - if ( orient == Horizontal ) { - TQCOORD mid = x + w / 2; - qDrawShadeLine( p, mid, y , mid, y + h - 2, g, TRUE, 1); - } else { - TQCOORD mid = y +h / 2; - qDrawShadeLine( p, x, mid, x + w - 2, mid, g, TRUE, 1); - } -} - - -/*! - \reimp -*/ -void TQInterlaceStyle::drawSliderGroove ( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, TQCOORD , Orientation o) -{ - p->setBrush( g.brush( TQColorGroup::Dark ) ); - p->setPen( NoPen ); - - if ( o == Horizontal ) - drawButton( p, x, y+h/2-3, w, 6, g, FALSE, &g.brush( TQColorGroup::Mid ) ); - else - drawButton( p, x+w/2-3, y, 6, h, g, FALSE, &g.brush( TQColorGroup::Mid ) ); -} - - -/*! - \reimp -*/ -int TQInterlaceStyle::splitterWidth() const -{ - return TQMAX( 12, TQApplication::globalStrut().width() ); -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawSplitter( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, Orientation orient) -{ - const int motifOffset = 12; - int sw = splitterWidth(); - if ( orient == Horizontal ) { - TQCOORD xPos = x + w/2; - TQCOORD kPos = motifOffset; - TQCOORD kSize = sw - 4; - - qDrawShadeLine( p, xPos, kPos + kSize - 1 , - xPos, h, g ); - drawPanel( p, xPos-sw/2+2, kPos, - kSize, kSize, g, FALSE, 2, - &g.brush( TQColorGroup::Button )); - qDrawShadeLine( p, xPos, 0, xPos, kPos, g ); - } else { - TQCOORD yPos = y + h/2; - TQCOORD kPos = w - motifOffset - sw; - TQCOORD kSize = sw - 4; - - qDrawShadeLine( p, 0, yPos, kPos, yPos, g ); - drawPanel( p, kPos, yPos-sw/2+2, - kSize, kSize, g, FALSE, 2, - &g.brush( TQColorGroup::Button )); - qDrawShadeLine( p, kPos + kSize -1, yPos, - w, yPos, g ); - } - -} - -/*! - \reimp -*/ -void TQInterlaceStyle::drawPanel( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool /*sunken*/, - int lineWidth, const TQBrush *fill ) -{ - if ( lineWidth < 2 ) - lineWidth = 2; - - p->setBrush( g.brush( TQColorGroup::Dark ) ); - p->setPen( NoPen ); - - p->drawRect( x, y, w, lineWidth ); - p->drawRect( x, y+h-lineWidth, w, lineWidth ); - p->drawRect( x, y, lineWidth, h ); - p->drawRect( x+w-lineWidth, y, lineWidth, h ); - - if ( fill ) { - x += lineWidth; - y += lineWidth; - w -= 2*lineWidth; - h -= 2*lineWidth; - p->setBrush( *fill ); - p->setPen( NoPen ); - p->drawRect( x, y, w, h ); - } -} - -#endif // TQT_NO_STYLE_INTERLACE - -#endif diff --git a/tqtinterface/qt4/src/styles/tqinterlacestyle.h b/tqtinterface/qt4/src/styles/tqinterlacestyle.h deleted file mode 100644 index a0e4af5..0000000 --- a/tqtinterface/qt4/src/styles/tqinterlacestyle.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQInterlaceStyle widget class -** -** Created : 010122 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#if 0 // ###### not ported to new API yet -#ifndef TQINTERLACESTYLE_H -#define TQINTERLACESTYLE_H - -#ifndef TQT_H -#include "tqmotifstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_INTERLACE) || defined(TQT_PLUGIN) - -#include "tqpalette.h" - -class TQ_EXPORT TQInterlaceStyle : public TQMotifStyle -{ -public: - TQInterlaceStyle(); - void polish( TQApplication*); - void unPolish( TQApplication*); - void polish( TQWidget* ); - void unPolish( TQWidget* ); - - int defaultFrameWidth() const; - TQRect pushButtonContentsRect( TQPushButton *btn ); - - void drawFocusRect ( TQPainter *, const TQRect &, const TQColorGroup &, const TQColor * bg = 0, bool = FALSE ); - void drawButton( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken = FALSE, - const TQBrush *fill = 0 ); - void drawButtonMask ( TQPainter * p, int x, int y, int w, int h ); - void drawBevelButton( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken = FALSE, - const TQBrush *fill = 0 ); - - void drawPushButton( TQPushButton* btn, TQPainter *p); - TQSize indicatorSize () const; - void drawIndicator ( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, int state, bool down = FALSE, bool enabled = TRUE ); - void drawIndicatorMask( TQPainter *p, int x, int y, int w, int h, int ); - TQSize exclusiveIndicatorSize () const; - void drawExclusiveIndicator( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, bool on, bool down = FALSE, bool enabled = TRUE ); - void drawExclusiveIndicatorMask( TQPainter * p, int x, int y, int w, int h, bool ); - TQRect comboButtonRect ( int x, int y, int w, int h ); - void drawComboButton( TQPainter *p, int x, int y, int w, int h, const TQColorGroup &g, bool sunken, bool editable, bool enabled, const TQBrush *fb ); - void drawPushButtonLabel( TQPushButton* btn, TQPainter *p); - void drawPanel( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &, bool sunken, - int lineWidth, const TQBrush *fill ); - - void scrollBarMetrics( const TQScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int &buttonDim ); - void drawScrollBarControls( TQPainter* p, const TQScrollBar* sb, int sliderStart, uint controls, uint activeControl ); - void drawSlider( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, Orientation, bool tickAbove, bool tickBelow ); - void drawSliderGroove( TQPainter * p, int x, int y, int w, int h, const TQColorGroup & g, TQCOORD c, Orientation ); - int splitterWidth() const; - void drawSplitter( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, Orientation orient); - - int buttonDefaultIndicatorWidth() const; - int setSliderThickness() const; - TQSize scrollBarExtent() const; - -private: - TQPalette oldPalette; -}; - -#endif // TQT_NO_STYLE_INTERLACE - -#endif -#endif diff --git a/tqtinterface/qt4/src/styles/tqmotifplusstyle.cpp b/tqtinterface/qt4/src/styles/tqmotifplusstyle.cpp deleted file mode 100644 index c10183c..0000000 --- a/tqtinterface/qt4/src/styles/tqmotifplusstyle.cpp +++ /dev/null @@ -1,1586 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQMotifPlusStyle class -** -** Created : 000727 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqmotifplusstyle.h" - -#if !defined(TQT_NO_STYLE_MOTIFPLUS) || defined(TQT_PLUGIN) - -#include "tqmenubar.h" -#include "tqapplication.h" -#include "tqpainter.h" -#include "tqpalette.h" -#include "tqframe.h" -#include "tqpushbutton.h" -#include "tqcheckbox.h" -#include "tqradiobutton.h" -#include "tqcombobox.h" -#include "tqlineedit.h" -#include "tqspinbox.h" -#include "tqslider.h" -#include "tqdrawutil.h" -#include "tqscrollbar.h" -#include "tqtabbar.h" -#include "tqtoolbar.h" -#include "tqguardedptr.h" -#include "tqlayout.h" - - -struct TQMotifPlusStylePrivate -{ - TQMotifPlusStylePrivate() - : hoverWidget(0), hovering(FALSE), sliderActive(FALSE), mousePressed(FALSE), - scrollbarElement(0), lastElement(0), ref(1) - { ; } - - TQGuardedPtr<TQWidget> hoverWidget; - bool hovering, sliderActive, mousePressed; - int scrollbarElement, lastElement, ref; - TQPoint mousePos; -}; - -static TQMotifPlusStylePrivate * singleton = 0; - - -static void drawMotifPlusShade(TQPainter *p, - const TQRect &r, - const TQColorGroup &g, - bool sunken, bool mouseover, - const TQBrush *fill = 0) -{ - TQPen oldpen = p->pen(); - TQPointArray a(4); - TQColor button = - mouseover ? g.midlight() : g.button(); - TQBrush brush = - mouseover ? g.brush(TQColorGroup::Midlight) : g.brush(TQColorGroup::Button); - int x, y, w, h; - - r.rect(&x, &y, &w, &h); - - if (sunken) p->setPen(g.dark()); else p->setPen(g.light()); - a.setPoint(0, x, y + h - 1); - a.setPoint(1, x, y); - a.setPoint(2, x, y); - a.setPoint(3, x + w - 1, y); - p->drawLineSegments(a); - - if (sunken) p->setPen(TQt::black); else p->setPen(button); - a.setPoint(0, x + 1, y + h - 2); - a.setPoint(1, x + 1, y + 1); - a.setPoint(2, x + 1, y + 1); - a.setPoint(3, x + w - 2, y + 1); - p->drawLineSegments(a); - - if (sunken) p->setPen(button); else p->setPen(g.dark()); - a.setPoint(0, x + 2, y + h - 2); - a.setPoint(1, x + w - 2, y + h - 2); - a.setPoint(2, x + w - 2, y + h - 2); - a.setPoint(3, x + w - 2, y + 2); - p->drawLineSegments(a); - - if (sunken) p->setPen(g.light()); else p->setPen(TQt::black); - a.setPoint(0, x + 1, y + h - 1); - a.setPoint(1, x + w - 1, y + h - 1); - a.setPoint(2, x + w - 1, y + h - 1); - a.setPoint(3, x + w - 1, y); - p->drawLineSegments(a); - - if (fill) - p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill); - else - p->fillRect(x + 2, y + 2, w - 4, h - 4, brush); - - p->setPen(oldpen); -} - - -/*! - \class TQMotifPlusStyle tqmotifplusstyle.h - \brief The TQMotifPlusStyle class provides a more sophisticated Motif-ish look and feel. - - \ingroup appearance - - This class implements a Motif-ish look and feel with the more - sophisticated bevelling as used by the GIMP Toolkit (GTK+) for - Unix/X11. -*/ - -/*! - Constructs a TQMotifPlusStyle - - If \a hoveringHighlight is TRUE (the default), then the style will - not highlight push buttons, checkboxes, radiobuttons, comboboxes, - scrollbars or sliders. -*/ -TQMotifPlusStyle::TQMotifPlusStyle(bool hoveringHighlight) : TQMotifStyle(TRUE) -{ - if ( !singleton ) - singleton = new TQMotifPlusStylePrivate; - else - singleton->ref++; - - useHoveringHighlight = hoveringHighlight; -} - -/*! \reimp */ -TQMotifPlusStyle::~TQMotifPlusStyle() -{ - if ( singleton && singleton->ref-- <= 0) { - delete singleton; - singleton = 0; - } -} - - -/*! \reimp */ -void TQMotifPlusStyle::polish(TQPalette &) -{ -} - - -/*! \reimp */ -void TQMotifPlusStyle::polish(TQWidget *widget) -{ -#ifndef TQT_NO_FRAME - if (::tqqt_cast<TQFrame*>(widget) && ((TQFrame *) widget)->frameStyle() == TQFrame::Panel) - ((TQFrame *) widget)->setFrameStyle(TQFrame::WinPanel); -#endif - -#ifndef TQT_NO_MENUBAR - if (::tqqt_cast<TQMenuBar*>(widget) && ((TQMenuBar *) widget)->frameStyle() != TQFrame::NoFrame) - ((TQMenuBar *) widget)->setFrameStyle(TQFrame::StyledPanel | TQFrame::Raised); -#endif - -#ifndef TQT_NO_TOOLBAR - if (::tqqt_cast<TQToolBar*>(widget)) - widget->tqlayout()->setMargin(2); -#endif - if (useHoveringHighlight) { - if (::tqqt_cast<TQButton*>(widget) || ::tqqt_cast<TQComboBox*>(widget)) - widget->installEventFilter(this); - - if (::tqqt_cast<TQScrollBar*>(widget) || ::tqqt_cast<TQSlider*>(widget)) { - widget->setMouseTracking(TRUE); - widget->installEventFilter(this); - } - } - - TQMotifStyle::polish(widget); -} - - -/*! \reimp */ -void TQMotifPlusStyle::unPolish(TQWidget *widget) -{ - widget->removeEventFilter(this); - TQMotifStyle::unPolish(widget); -} - - -/*! \reimp */ -void TQMotifPlusStyle::polish(TQApplication *) -{ -} - - -/*! \reimp */ -void TQMotifPlusStyle::unPolish(TQApplication *) -{ -} - - -/*! \reimp */ -int TQMotifPlusStyle::tqpixelMetric(PixelMetric metric, const TQWidget *widget) const -{ - int ret; - - switch (metric) { - case PM_ScrollBarExtent: - ret = 15; - break; - - case PM_ButtonDefaultIndicator: - ret = 5; - break; - - case PM_ButtonMargin: - ret = 4; - break; - - case PM_SliderThickness: - ret = 15; - break; - - case PM_IndicatorWidth: - case PM_IndicatorHeight: - ret = 10; - break; - - case PM_ExclusiveIndicatorWidth: - case PM_ExclusiveIndicatorHeight: - ret = 11; - break; - - default: - ret = TQMotifStyle::tqpixelMetric(metric, widget); - break; - } - - return ret; -} - - -/*! \reimp */ -void TQMotifPlusStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch (pe) { -#ifndef USE_QT4 - case PE_HeaderSection: -#endif // USE_QT4 - - case PE_ButtonCommand: - case PE_ButtonBevel: - case PE_ButtonTool: - if (flags & (Style_Down | Style_On | Style_Raised | Style_Sunken)) - drawMotifPlusShade( p, r, cg, bool(flags & (Style_Down | Style_On)), - bool(flags & Style_MouseOver)); - else if (flags & Style_MouseOver) - p->fillRect(r, cg.brush(TQColorGroup::Midlight)); - else - p->fillRect(r, cg.brush(TQColorGroup::Button)); - break; - - case PE_Panel: - case PE_PanelPopup: - case PE_PanelMenuBar: - case PE_PanelDockWindow: - if ( opt.lineWidth() ) - drawMotifPlusShade( p, r, cg, (flags & Style_Sunken), (flags & Style_MouseOver)); - else if ( flags & Style_MouseOver ) - p->fillRect(r, cg.brush(TQColorGroup::Midlight)); - else - p->fillRect(r, cg.brush(TQColorGroup::Button)); - break; - - case PE_SpinWidgetUp: - tqdrawPrimitive(PE_ArrowUp, p, r, cg, flags, opt); - break; - - case PE_SpinWidgetDown: - tqdrawPrimitive(PE_ArrowDown, p, r, cg, flags, opt); - break; - - case PE_Indicator: - { - TQBrush fill; - if (flags & Style_On) - fill = cg.brush(TQColorGroup::Mid); - else if (flags & Style_MouseOver) - fill = cg.brush(TQColorGroup::Midlight); - else - fill = cg.brush(TQColorGroup::Button); - - if (flags & Style_NoChange) { - qDrawPlainRect(p, r, cg.text(), 1, &fill); - p->drawLine(r.topRight(), r.bottomLeft()); - } else - drawMotifPlusShade(p, r, cg, (flags & Style_On), - (flags & Style_MouseOver), &fill); - break; - } - - case PE_ExclusiveIndicator: - { - TQPen oldpen = p->pen(); - TQPointArray thick(8); - TQPointArray thin(4); - TQColor button = ((flags & Style_MouseOver) ? cg.midlight() : cg.button()); - TQBrush brush = ((flags & Style_MouseOver) ? - cg.brush(TQColorGroup::Midlight) : - cg.brush(TQColorGroup::Button)); - int x, y, w, h; - r.rect(&x, &y, &w, &h); - - p->fillRect(x, y, w, h, brush); - - - if (flags & Style_On) { - thick.setPoint(0, x, y + (h / 2)); - thick.setPoint(1, x + (w / 2), y); - thick.setPoint(2, x + 1, y + (h / 2)); - thick.setPoint(3, x + (w / 2), y + 1); - thick.setPoint(4, x + (w / 2), y); - thick.setPoint(5, x + w - 1, y + (h / 2)); - thick.setPoint(6, x + (w / 2), y + 1); - thick.setPoint(7, x + w - 2, y + (h / 2)); - p->setPen(cg.dark()); - p->drawLineSegments(thick); - - thick.setPoint(0, x + 1, y + (h / 2) + 1); - thick.setPoint(1, x + (w / 2), y + h - 1); - thick.setPoint(2, x + 2, y + (h / 2) + 1); - thick.setPoint(3, x + (w / 2), y + h - 2); - thick.setPoint(4, x + (w / 2), y + h - 1); - thick.setPoint(5, x + w - 2, y + (h / 2) + 1); - thick.setPoint(6, x + (w / 2), y + h - 2); - thick.setPoint(7, x + w - 3, y + (h / 2) + 1); - p->setPen(cg.light()); - p->drawLineSegments(thick); - - thin.setPoint(0, x + 2, y + (h / 2)); - thin.setPoint(1, x + (w / 2), y + 2); - thin.setPoint(2, x + (w / 2), y + 2); - thin.setPoint(3, x + w - 3, y + (h / 2)); - p->setPen(TQt::black); - p->drawLineSegments(thin); - - thin.setPoint(0, x + 3, y + (h / 2) + 1); - thin.setPoint(1, x + (w / 2), y + h - 3); - thin.setPoint(2, x + (w / 2), y + h - 3); - thin.setPoint(3, x + w - 4, y + (h / 2) + 1); - p->setPen(cg.mid()); - p->drawLineSegments(thin); - } else { - thick.setPoint(0, x, y + (h / 2)); - thick.setPoint(1, x + (w / 2), y); - thick.setPoint(2, x + 1, y + (h / 2)); - thick.setPoint(3, x + (w / 2), y + 1); - thick.setPoint(4, x + (w / 2), y); - thick.setPoint(5, x + w - 1, y + (h / 2)); - thick.setPoint(6, x + (w / 2), y + 1); - thick.setPoint(7, x + w - 2, y + (h / 2)); - p->setPen(cg.light()); - p->drawLineSegments(thick); - - thick.setPoint(0, x + 2, y + (h / 2) + 1); - thick.setPoint(1, x + (w / 2), y + h - 2); - thick.setPoint(2, x + 3, y + (h / 2) + 1); - thick.setPoint(3, x + (w / 2), y + h - 3); - thick.setPoint(4, x + (w / 2), y + h - 2); - thick.setPoint(5, x + w - 3, y + (h / 2) + 1); - thick.setPoint(6, x + (w / 2), y + h - 3); - thick.setPoint(7, x + w - 4, y + (h / 2) + 1); - p->setPen(cg.dark()); - p->drawLineSegments(thick); - - thin.setPoint(0, x + 2, y + (h / 2)); - thin.setPoint(1, x + (w / 2), y + 2); - thin.setPoint(2, x + (w / 2), y + 2); - thin.setPoint(3, x + w - 3, y + (h / 2)); - p->setPen(button); - p->drawLineSegments(thin); - - thin.setPoint(0, x + 1, y + (h / 2) + 1); - thin.setPoint(1, x + (w / 2), y + h - 1); - thin.setPoint(2, x + (w / 2), y + h - 1); - thin.setPoint(3, x + w - 2, y + (h / 2) + 1); - p->setPen(TQt::black); - p->drawLineSegments(thin); - } - - p->setPen(oldpen); - break; - } - - - - case PE_ArrowDown: - case PE_ArrowLeft: - case PE_ArrowRight: - case PE_ArrowUp: - { - TQPen oldpen = p->pen(); - TQBrush oldbrush = p->brush(); - TQPointArray poly(3); - TQColor button = (flags & Style_MouseOver) ? cg.midlight() : cg.button(); - bool down = (flags & Style_Down); - int x, y, w, h; - r.rect(&x, &y, &w, &h); - - p->save(); - p->setBrush(button); - - switch (pe) { - case PE_ArrowUp: - { - poly.setPoint(0, x + (w / 2), y ); - poly.setPoint(1, x, y + h - 1); - poly.setPoint(2, x + w - 1, y + h - 1); - p->drawPolygon(poly); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + 1, y + h - 2, x + w - 2, y + h - 2); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x, y + h - 1, x + w - 1, y + h - 1); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + w - 2, y + h - 1, x + (w / 2), y + 1); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x + w - 1, y + h - 1, x + (w / 2), y); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine(x + (w / 2), y + 1, x + 1, y + h - 1); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x + (w / 2), y, x, y + h - 1); - break; - } - - case PE_ArrowDown: - { - poly.setPoint(0, x + w - 1, y); - poly.setPoint(1, x, y); - poly.setPoint(2, x + (w / 2), y + h - 1); - p->drawPolygon(poly); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine(x + w - 2, y + 1, x + 1, y + 1); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x + w - 1, y, x, y); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine(x + 1, y, x + (w / 2), y + h - 2); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x, y, x + (w / 2), y + h - 1); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + (w / 2), y + h - 2, x + w - 2, y); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x + (w / 2), y + h - 1, x + w - 1, y); - break; - } - - case PE_ArrowLeft: - { - poly.setPoint(0, x, y + (h / 2)); - poly.setPoint(1, x + w - 1, y + h - 1); - poly.setPoint(2, x + w - 1, y); - p->drawPolygon(poly); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + 1, y + (h / 2), x + w - 1, y + h - 1); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x, y + (h / 2), x + w - 1, y + h - 1); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + w - 2, y + h - 1, x + w - 2, y + 1); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x + w - 1, y + h - 1, x + w - 1, y); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine(x + w - 1, y + 1, x + 1, y + (h / 2)); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x + w - 1, y, x, y + (h / 2)); - break; - } - - case PE_ArrowRight: - { - poly.setPoint(0, x + w - 1, y + (h / 2)); - poly.setPoint(1, x, y); - poly.setPoint(2, x, y + h - 1); - p->drawPolygon(poly); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine( x + w - 1, y + (h / 2), x + 1, y + 1); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x + w - 1, y + (h / 2), x, y); - - if (down) - p->setPen(TQt::black); - else - p->setPen(button); - p->drawLine(x + 1, y + 1, x + 1, y + h - 2); - - if (down) - p->setPen(cg.dark()); - else - p->setPen(cg.light()); - p->drawLine(x, y, x, y + h - 1); - - if (down) - p->setPen(button); - else - p->setPen(cg.dark()); - p->drawLine(x + 1, y + h - 2, x + w - 1, y + (h / 2)); - - if (down) - p->setPen(cg.light()); - else - p->setPen(TQt::black); - p->drawLine(x, y + h - 1, x + w - 1, y + (h / 2)); - break; - } - - default: - break; - } - - p->restore(); - p->setBrush(oldbrush); - p->setPen(oldpen); - break; - } - - default: - TQMotifStyle::tqdrawPrimitive(pe, p, r, cg, flags, opt); - break; - } -} - - -/*! \reimp -*/ -void TQMotifPlusStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - if (widget == singleton->hoverWidget) - flags |= Style_MouseOver; - - switch (element) { - case CE_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - TQRect br = r; - int dbi = tqpixelMetric(PM_ButtonDefaultIndicator, widget); - - if (button->isDefault() || button->autoDefault()) { - if (button->isDefault()) - drawMotifPlusShade(p, br, cg, TRUE, FALSE, - &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Background))); - - br.setCoords(br.left() + dbi, - br.top() + dbi, - br.right() - dbi, - br.bottom() - dbi); - } - - if (flags & Style_HasFocus) - br.addCoords(1, 1, -1, -1); - p->save(); - p->setBrushOrigin( -button->backgroundOffset().x(), - -button->backgroundOffset().y() ); - tqdrawPrimitive(PE_ButtonCommand, p, br, cg, flags); - p->restore(); -#endif - break; - } - - case CE_CheckBoxLabel: - { -#ifndef TQT_NO_CHECKBOX - const TQCheckBox *checkbox = (const TQCheckBox *) widget; - - if (flags & Style_MouseOver) { - TQRegion r(checkbox->rect()); - r -= tqvisualRect(subRect(SR_CheckBoxIndicator, widget), widget); - p->setClipRegion(r); - p->fillRect(checkbox->rect(), cg.brush(TQColorGroup::Midlight)); - p->setClipping(FALSE); - } - - int tqalignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft; - drawItem(p, r, tqalignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, - flags & Style_Enabled, checkbox->pixmap(), checkbox->text()); - - if (checkbox->hasFocus()) { - TQRect fr = tqvisualRect(subRect(SR_CheckBoxFocusRect, widget), widget); - tqdrawPrimitive(PE_FocusRect, p, fr, cg, flags); - } -#endif - break; - } - - case CE_RadioButtonLabel: - { -#ifndef TQT_NO_RADIOBUTTON - const TQRadioButton *radiobutton = (const TQRadioButton *) widget; - - if (flags & Style_MouseOver) { - TQRegion r(radiobutton->rect()); - r -= tqvisualRect(subRect(SR_RadioButtonIndicator, widget), widget); - p->setClipRegion(r); - p->fillRect(radiobutton->rect(), cg.brush(TQColorGroup::Midlight)); - p->setClipping(FALSE); - } - - int tqalignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft; - drawItem(p, r, tqalignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, - flags & Style_Enabled, radiobutton->pixmap(), radiobutton->text()); - - if (radiobutton->hasFocus()) { - TQRect fr = tqvisualRect(subRect(SR_RadioButtonFocusRect, widget), widget); - tqdrawPrimitive(PE_FocusRect, p, fr, cg, flags); - } -#endif - break; - } - - case CE_MenuBarItem: - { -#ifndef TQT_NO_MENUDATA - if (opt.isDefault()) - break; - - TQMenuItem *mi = opt.menuItem(); - if ((flags & Style_Enabled) && (flags & Style_Active)) - drawMotifPlusShade(p, r, cg, FALSE, TRUE); - else - p->fillRect(r, cg.button()); - - drawItem(p, r, TQt::AlignCenter | TQt::ShowPrefix | TQt::DontClip | TQt::SingleLine, - cg, flags & Style_Enabled, mi->pixmap(), mi->text(), -1, - TQT_TQCOLOR_CONST(&cg.buttonText())); -#endif - break; - } - - -#ifndef TQT_NO_POPUPMENU - case CE_PopupMenuItem: - { - if (! widget || opt.isDefault()) - break; - - TQPopupMenu *popupmenu = (TQPopupMenu *) widget; - TQMenuItem *mi = opt.menuItem(); - if ( !mi ) - break; - - int tab = opt.tabWidth(); - int maxpmw = opt.maxIconWidth(); - bool dis = ! (flags & Style_Enabled); - bool checkable = popupmenu->isCheckable(); - bool act = flags & Style_Active; - int x, y, w, h; - - r.rect(&x, &y, &w, &h); - - if (checkable) - maxpmw = TQMAX(maxpmw, 15); - - int checkcol = maxpmw; - - if (mi && mi->isSeparator()) { - p->setPen( cg.dark() ); - p->drawLine( x, y, x+w, y ); - p->setPen( cg.light() ); - p->drawLine( x, y+1, x+w, y+1 ); - return; - } - - if ( act && !dis ) - drawMotifPlusShade(p, TQRect(x, y, w, h), cg, FALSE, TRUE); - else - p->fillRect(x, y, w, h, cg.brush( TQColorGroup::Button )); - - if ( !mi ) - return; - - TQRect vrect = tqvisualRect( TQRect( x+2, y+2, checkcol, h-2 ), r ); - if ( mi->isChecked() ) { - if ( mi->iconSet() ) { - qDrawShadePanel( p, vrect.x(), y+2, checkcol, h-2*2, - cg, TRUE, 1, &cg.brush( TQColorGroup::Midlight ) ); - } - } else if ( !act ) { - p->fillRect(vrect, - cg.brush( TQColorGroup::Button )); - } - - if ( mi->iconSet() ) { // draw iconset - TQIconSet::Mode mode = (!dis) ? TQIconSet::Normal : TQIconSet::Disabled; - - if (act && !dis) - mode = TQIconSet::Active; - - TQPixmap pixmap; - if ( checkable && mi->isChecked() ) - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode, - TQIconSet::On ); - else - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - - int pixw = pixmap.width(); - int pixh = pixmap.height(); - - TQRect pmr( 0, 0, pixw, pixh ); - - pmr.moveCenter(vrect.center()); - - p->setPen( cg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - - } else if (checkable) { - if (mi->isChecked()) { - SFlags cflags = Style_Default; - if (! dis) - cflags |= Style_Enabled; - if (act) - cflags |= Style_On; - - tqdrawPrimitive(PE_CheckMark, p, vrect, cg, cflags); - } - } - - p->setPen( cg.buttonText() ); - - TQColor discol; - if (dis) { - discol = cg.text(); - p->setPen( discol ); - } - - vrect = tqvisualRect( TQRect(x + checkcol + 4, y + 2, - w - checkcol - tab - 3, h - 4), r ); - if (mi->custom()) { - p->save(); - mi->custom()->paint(p, cg, act, !dis, vrect.x(), y + 2, - w - checkcol - tab - 3, h - 4); - p->restore(); - } - - TQString s = mi->text(); - if ( !s.isNull() ) { // draw text - int t = s.find( '\t' ); - int m = 2; - int text_flags = TQt::AlignVCenter|TQt::ShowPrefix | TQt::DontClip | TQt::SingleLine; - text_flags |= (TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft ); - if ( t >= 0 ) { // draw tab text - TQRect vr = tqvisualRect( TQRect(x+w-tab-2-2, - y+m, tab, h-2*m), r ); - p->drawText( vr.x(), - y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); - } - p->drawText(vrect.x(), y + 2, w - checkcol -tab - 3, h - 4, - text_flags, s, t); - } else if (mi->pixmap()) { - TQPixmap *pixmap = mi->pixmap(); - - if (pixmap->depth() == 1) p->setBackgroundMode(Qt::OpaqueMode); - TQRect vr = tqvisualRect( TQRect( x + checkcol + 2, y + 2, w - checkcol - 1, h - 4 ), r ); - p->drawPixmap(vr.x(), y + 2, *pixmap); - if (pixmap->depth() == 1) p->setBackgroundMode(Qt::TransparentMode); - } - - if (mi->popup()) { - int hh = h / 2; - TQStyle::PrimitiveElement arrow = (TQApplication::reverseLayout() ? PE_ArrowLeft : PE_ArrowRight); - vrect = tqvisualRect( TQRect(x + w - hh - 6, y + (hh / 2), hh, hh), r ); - tqdrawPrimitive(arrow, p, - vrect, cg, - ((act && !dis) ? - Style_Down : Style_Default) | - ((!dis) ? Style_Enabled : Style_Default)); - } - break; - } -#endif // TQT_NO_POPUPMENU - - case CE_TabBarTab: - { -#ifndef TQT_NO_TABBAR - const TQTabBar *tabbar = (const TQTabBar *) widget; - bool selected = flags & Style_Selected; - - TQColorGroup g = tabbar->tqcolorGroup(); - TQPen oldpen = p->pen(); - TQRect fr(r); - - if (! selected) { - if (tabbar->tqshape() == TQTabBar::RoundedAbove || - tabbar->tqshape() == TQTabBar::TriangularAbove) { - fr.setTop(fr.top() + 2); - } else { - fr.setBottom(fr.bottom() - 2); - } - } - - fr.setWidth(fr.width() - 3); - - p->fillRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2, - (selected) ? cg.brush(TQColorGroup::Button) - : cg.brush(TQColorGroup::Mid)); - - if (tabbar->tqshape() == TQTabBar::RoundedAbove) { - // "rounded" tabs on top - fr.setBottom(fr.bottom() - 1); - - p->setPen(g.light()); - p->drawLine(fr.left(), fr.top() + 1, - fr.left(), fr.bottom() - 1); - p->drawLine(fr.left() + 1, fr.top(), - fr.right() - 1, fr.top()); - if (! selected) - p->drawLine(fr.left(), fr.bottom(), - fr.right() + 3, fr.bottom()); - - if (fr.left() == 0) - p->drawLine(fr.left(), fr.bottom(), - fr.left(), fr.bottom() + 1); - - p->setPen(g.dark()); - p->drawLine(fr.right() - 1, fr.top() + 2, - fr.right() - 1, fr.bottom() - 1); - - p->setPen(TQt::black); - p->drawLine(fr.right(), fr.top() + 1, - fr.right(), fr.bottom() - 1); - } else if (tabbar->tqshape() == TQTabBar::RoundedBelow) { - // "rounded" tabs on bottom - fr.setTop(fr.top() + 1); - - p->setPen(g.dark()); - p->drawLine(fr.right() + 3, fr.top() - 1, - fr.right() - 1, fr.top() - 1); - p->drawLine(fr.right() - 1, fr.top(), - fr.right() - 1, fr.bottom() - 2); - p->drawLine(fr.right() - 1, fr.bottom() - 2, - fr.left() + 2, fr.bottom() - 2); - if (! selected) { - p->drawLine(fr.right(), fr.top() - 1, - fr.left() + 1, fr.top() - 1); - - if (fr.left() != 0) - p->drawPoint(fr.left(), fr.top() - 1); - } - - p->setPen(TQt::black); - p->drawLine(fr.right(), fr.top(), - fr.right(), fr.bottom() - 2); - p->drawLine(fr.right() - 1, fr.bottom() - 1, - fr.left(), fr.bottom() - 1); - if (! selected) - p->drawLine(fr.right() + 3, fr.top(), - fr.left(), fr.top()); - else - p->drawLine(fr.right() + 3, fr.top(), - fr.right(), fr.top()); - - p->setPen(g.light()); - p->drawLine(fr.left(), fr.top() + 1, - fr.left(), fr.bottom() - 2); - - if (selected) { - p->drawPoint(fr.left(), fr.top()); - if (fr.left() == 0) - p->drawPoint(fr.left(), fr.top() - 1); - - p->setPen(g.button()); - p->drawLine(fr.left() + 2, fr.top() - 1, - fr.left() + 1, fr.top() - 1); - } - } else - // triangular drawing code - TQMotifStyle::tqdrawControl(element, p, widget, r, cg, flags, opt); - - p->setPen(oldpen); -#endif - break; - } - - default: - TQMotifStyle::tqdrawControl(element, p, widget, r, cg, flags, opt); - break; - } -} - - -/*! \reimp -*/ -TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const -{ - TQRect rect; - - switch (r) { - case SR_PushButtonFocusRect: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - int dfi = tqpixelMetric(PM_ButtonDefaultIndicator, widget); - - rect = button->rect(); - if (button->isDefault() || button->autoDefault()) - rect.addCoords(dfi, dfi, -dfi, -dfi); -#endif - break; - } - - case SR_CheckBoxIndicator: - { - int h = tqpixelMetric( PM_IndicatorHeight ); - rect.setRect(( widget->rect().height() - h ) / 2, - ( widget->rect().height() - h ) / 2, - tqpixelMetric( PM_IndicatorWidth ), h ); - break; - } - - case SR_RadioButtonIndicator: - { - int h = tqpixelMetric( PM_ExclusiveIndicatorHeight ); - rect.setRect( ( widget->rect().height() - h ) / 2, - ( widget->rect().height() - h ) / 2, - tqpixelMetric( PM_ExclusiveIndicatorWidth ), h ); - break; - } - - case SR_CheckBoxFocusRect: - case SR_RadioButtonFocusRect: - rect = widget->rect(); - break; - - case SR_ComboBoxFocusRect: - { -#ifndef TQT_NO_COMBOBOX - const TQComboBox *combobox = (const TQComboBox *) widget; - - if (combobox->editable()) { - rect = querySubControlMetrics(CC_ComboBox, widget, - SC_ComboBoxEditField); - rect.addCoords(-3, -3, 3, 3); - } else - rect = combobox->rect(); -#endif - break; - } - - case SR_SliderFocusRect: - { -#ifndef TQT_NO_SLIDER - const TQSlider *slider = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, widget ); - int thickness = tqpixelMetric( PM_SliderControlThickness, widget ); - int x, y, wi, he; - - if ( slider->orientation() == Qt::Horizontal ) { - x = 0; - y = tickOffset; - wi = slider->width(); - he = thickness; - } else { - x = tickOffset; - y = 0; - wi = thickness; - he = slider->height(); - } - - rect.setRect(x, y, wi, he); -#endif - break; - } - - default: - rect = TQMotifStyle::subRect(r, widget); - break; - } - - return rect; -} - - -/*! \reimp */ -void TQMotifPlusStyle::tqdrawComplexControl(TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - SCFlags controls, - SCFlags active, - const TQStyleOption& opt ) const -{ - if (widget == singleton->hoverWidget) - flags |= Style_MouseOver; - - switch (control) { - case CC_ScrollBar: - { -#ifndef TQT_NO_SCROLLBAR - const TQScrollBar *scrollbar = (const TQScrollBar *) widget; - TQRect addline, subline, addpage, subpage, slider, first, last; - bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue()); - - subline = querySubControlMetrics(control, widget, SC_ScrollBarSubLine, opt); - addline = querySubControlMetrics(control, widget, SC_ScrollBarAddLine, opt); - subpage = querySubControlMetrics(control, widget, SC_ScrollBarSubPage, opt); - addpage = querySubControlMetrics(control, widget, SC_ScrollBarAddPage, opt); - slider = querySubControlMetrics(control, widget, SC_ScrollBarSlider, opt); - first = querySubControlMetrics(control, widget, SC_ScrollBarFirst, opt); - last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt); - - bool skipUpdate = FALSE; - if (singleton->hovering) { - if (addline.contains(singleton->mousePos)) { - skipUpdate = - (singleton->scrollbarElement == SC_ScrollBarAddLine); - singleton->scrollbarElement = SC_ScrollBarAddLine; - } else if (subline.contains(singleton->mousePos)) { - skipUpdate = - (singleton->scrollbarElement == SC_ScrollBarSubLine); - singleton->scrollbarElement = SC_ScrollBarSubLine; - } else if (slider.contains(singleton->mousePos)) { - skipUpdate = - (singleton->scrollbarElement == SC_ScrollBarSlider); - singleton->scrollbarElement = SC_ScrollBarSlider; - } else { - skipUpdate = - (singleton->scrollbarElement == 0); - singleton->scrollbarElement = 0; - } - } else - singleton->scrollbarElement = 0; - - if (skipUpdate && singleton->scrollbarElement == singleton->lastElement) - break; - - singleton->lastElement = singleton->scrollbarElement; - - if (controls == (SC_ScrollBarAddLine | SC_ScrollBarSubLine | - SC_ScrollBarAddPage | SC_ScrollBarSubPage | - SC_ScrollBarFirst | SC_ScrollBarLast | SC_ScrollBarSlider)) - drawMotifPlusShade(p, widget->rect(), cg, TRUE, FALSE, - &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Mid))); - - if ((controls & SC_ScrollBarSubLine) && subline.isValid()) - tqdrawPrimitive(PE_ScrollBarSubLine, p, subline, cg, - ((active == SC_ScrollBarSubLine || - singleton->scrollbarElement == SC_ScrollBarSubLine) ? - Style_MouseOver: Style_Default) | - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarSubLine) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarAddLine) && addline.isValid()) - tqdrawPrimitive(PE_ScrollBarAddLine, p, addline, cg, - ((active == SC_ScrollBarAddLine || - singleton->scrollbarElement == SC_ScrollBarAddLine) ? - Style_MouseOver: Style_Default) | - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarAddLine) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarSubPage) && subpage.isValid()) - tqdrawPrimitive(PE_ScrollBarSubPage, p, subpage, cg, - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarSubPage) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarAddPage) && addpage.isValid()) - tqdrawPrimitive(PE_ScrollBarAddPage, p, addpage, cg, - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarAddPage) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarFirst) && first.isValid()) - tqdrawPrimitive(PE_ScrollBarFirst, p, first, cg, - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarFirst) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarLast) && last.isValid()) - tqdrawPrimitive(PE_ScrollBarLast, p, last, cg, - ((maxedOut) ? Style_Default : Style_Enabled) | - ((active == SC_ScrollBarLast) ? - Style_Down : Style_Default) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - if ((controls & SC_ScrollBarSlider) && slider.isValid()) { - tqdrawPrimitive(PE_ScrollBarSlider, p, slider, cg, - ((active == SC_ScrollBarSlider || - singleton->scrollbarElement == SC_ScrollBarSlider) ? - Style_MouseOver: Style_Default) | - ((maxedOut) ? Style_Default : Style_Enabled) | - ((scrollbar->orientation() == Qt::Horizontal) ? - Style_Horizontal : Style_Default)); - - // ### perhaps this should not be able to accept focus if maxedOut? - if (scrollbar->hasFocus()) { - TQRect fr(slider.x() + 2, slider.y() + 2, - slider.width() - 5, slider.height() - 5); - tqdrawPrimitive(PE_FocusRect, p, fr, cg, Style_Default); - } - } -#endif - break; - } - - case CC_ComboBox: - { -#ifndef TQT_NO_COMBOBOX - const TQComboBox *combobox = (const TQComboBox *) widget; - - TQRect editfield, arrow; - editfield = - tqvisualRect(querySubControlMetrics(CC_ComboBox, - combobox, - SC_ComboBoxEditField, - opt), widget); - arrow = - tqvisualRect(querySubControlMetrics(CC_ComboBox, - combobox, - SC_ComboBoxArrow, - opt), widget); - - if (combobox->editable()) { - if (controls & SC_ComboBoxEditField && editfield.isValid()) { - editfield.addCoords(-3, -3, 3, 3); - if (combobox->hasFocus()) - editfield.addCoords(1, 1, -1, -1); - drawMotifPlusShade(p, editfield, cg, TRUE, FALSE, - (widget->isEnabled() ? - &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Base)) : - &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Background)))); - } - - if (controls & SC_ComboBoxArrow && arrow.isValid()) { - drawMotifPlusShade(p, arrow, cg, (active == SC_ComboBoxArrow), - (flags & Style_MouseOver)); - - int space = (r.height() - 13) / 2; - arrow.addCoords(space, space, -space, -space); - - if (active == SC_ComboBoxArrow) - flags |= Style_Sunken; - tqdrawPrimitive(PE_ArrowDown, p, arrow, cg, flags); - } - } else { - if (controls & SC_ComboBoxEditField && editfield.isValid()) { - editfield.addCoords(-3, -3, 3, 3); - if (combobox->hasFocus()) - editfield.addCoords(1, 1, -1, -1); - drawMotifPlusShade(p, editfield, cg, FALSE, - (flags & Style_MouseOver)); - } - - if (controls & SC_ComboBoxArrow && arrow.isValid()) - drawMotifPlusShade(p, arrow, cg, FALSE, (flags & Style_MouseOver)); - } - - if (combobox->hasFocus() || - (combobox->editable() && combobox->lineEdit()->hasFocus())) { - TQRect fr = tqvisualRect(subRect(SR_ComboBoxFocusRect, widget), widget); - tqdrawPrimitive(PE_FocusRect, p, fr, cg, flags); - } -#endif - break; - } - - case CC_SpinWidget: - { -#ifndef TQT_NO_SPINWIDGET - const TQSpinWidget * sw = (const TQSpinWidget *) widget; - SFlags flags = Style_Default; - - if (controls & SC_SpinWidgetFrame) - drawMotifPlusShade(p, r, cg, TRUE, FALSE, &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Base))); - - if (controls & SC_SpinWidgetUp) { - flags = Style_Enabled; - if (active == SC_SpinWidgetUp ) - flags |= Style_Down; - - PrimitiveElement pe; - if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus ) - pe = PE_SpinWidgetPlus; - else - pe = PE_SpinWidgetUp; - - TQRect re = sw->upRect(); - TQColorGroup ucg = sw->isUpEnabled() ? cg : sw->tqpalette().disabled(); - tqdrawPrimitive(pe, p, re, ucg, flags); - } - - if (controls & SC_SpinWidgetDown) { - flags = Style_Enabled; - if (active == SC_SpinWidgetDown ) - flags |= Style_Down; - - PrimitiveElement pe; - if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus ) - pe = PE_SpinWidgetMinus; - else - pe = PE_SpinWidgetDown; - - TQRect re = sw->downRect(); - TQColorGroup dcg = sw->isDownEnabled() ? cg : sw->tqpalette().disabled(); - tqdrawPrimitive(pe, p, re, dcg, flags); - } -#endif - break; - } - - case CC_Slider: - { -#ifndef TQT_NO_SLIDER - const TQSlider *slider = (const TQSlider *) widget; - bool mouseover = (flags & Style_MouseOver); - - TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove, - opt), - handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle, - opt); - - if ((controls & SC_SliderGroove) && groove.isValid()) { - drawMotifPlusShade(p, groove, cg, TRUE, FALSE, - &TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Mid))); - - if ( flags & Style_HasFocus ) { - TQRect fr = subRect( SR_SliderFocusRect, widget ); - tqdrawPrimitive( PE_FocusRect, p, fr, cg, flags ); - } - } - - if ((controls & SC_SliderHandle) && handle.isValid()) { - if ((mouseover && handle.contains(singleton->mousePos)) || - singleton->sliderActive) - flags |= Style_MouseOver; - else - flags &= ~Style_MouseOver; - tqdrawPrimitive(PE_ButtonBevel, p, handle, cg, flags | Style_Raised); - - if ( slider->orientation() == Qt::Horizontal ) { - TQCOORD mid = handle.x() + handle.width() / 2; - qDrawShadeLine( p, mid, handle.y() + 1, mid , - handle.y() + handle.height() - 3, - cg, TRUE, 1); - } else { - TQCOORD mid = handle.y() + handle.height() / 2; - qDrawShadeLine( p, handle.x() + 1, mid, - handle.x() + handle.width() - 3, mid, - cg, TRUE, 1); - } - } - - if (controls & SC_SliderTickmarks) - TQMotifStyle::tqdrawComplexControl(control, p, widget, r, cg, flags, - SC_SliderTickmarks, active, opt); -#endif - break; - } - - default: - TQMotifStyle::tqdrawComplexControl(control, p, widget, r, cg, flags, - controls, active, opt); - } -} - - -/*! \reimp -*/ -TQRect TQMotifPlusStyle::querySubControlMetrics(TQ_ComplexControl control, - const TQWidget *widget, - SubControl subcontrol, - const TQStyleOption& opt) const -{ - switch (control) { - case CC_SpinWidget: { - int fw = tqpixelMetric( PM_SpinBoxFrameWidth, 0 ); - TQSize bs; - bs.setHeight( (widget->height() + 1)/2 ); - if ( bs.height() < 10 ) - bs.setHeight( 10 ); - bs.setWidth( bs.height() ); // 1.6 -approximate golden mean - bs = bs.expandedTo( TQApplication::globalStrut() ); - int y = 0; - int x, lx, rx, h; - x = widget->width() - y - bs.width(); - lx = fw; - rx = x - fw * 2; - h = bs.height() * 2; - - switch ( subcontrol ) { - case SC_SpinWidgetUp: - return TQRect(x + 1, y, bs.width(), bs.height() - 1); - case SC_SpinWidgetDown: - return TQRect(x + 1, y + bs.height() + 1, bs.width(), bs.height()); - case SC_SpinWidgetButtonField: - return TQRect(x, y, bs.width(), h - 2*fw); - case SC_SpinWidgetEditField: - return TQRect(lx, fw, rx, h - 2*fw); - case SC_SpinWidgetFrame: - return TQRect( 0, 0, widget->width() - bs.width(), h); - default: - break; - } - break; } - -#ifndef TQT_NO_COMBOBOX - case CC_ComboBox: { - const TQComboBox *combobox = (const TQComboBox *) widget; - if (combobox->editable()) { - int space = (combobox->height() - 13) / 2; - switch (subcontrol) { - case SC_ComboBoxFrame: - return TQRect(); - case SC_ComboBoxEditField: { - TQRect rect = widget->rect(); - rect.setWidth(rect.width() - 13 - space * 2); - rect.addCoords(3, 3, -3, -3); - return rect; } - case SC_ComboBoxArrow: - return TQRect(combobox->width() - 13 - space * 2, 0, - 13 + space * 2, combobox->height()); - default: break; // shouldn't get here - } - - } else { - int space = (combobox->height() - 7) / 2; - switch (subcontrol) { - case SC_ComboBoxFrame: - return TQRect(); - case SC_ComboBoxEditField: { - TQRect rect = widget->rect(); - rect.addCoords(3, 3, -3, -3); - return rect; } - case SC_ComboBoxArrow: // 12 wide, 7 tall - return TQRect(combobox->width() - 12 - space, space, 12, 7); - default: break; // shouldn't get here - } - } - break; } -#endif - -#ifndef TQT_NO_SLIDER - case CC_Slider: { - - if (subcontrol == SC_SliderHandle) { - const TQSlider *slider = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, widget ); - int thickness = tqpixelMetric( PM_SliderControlThickness, widget ); - int len = tqpixelMetric( PM_SliderLength, widget ) + 2; - int sliderPos = slider->sliderStart(); - int motifBorder = 2; - - if ( slider->orientation() == Qt::Horizontal ) - return TQRect( sliderPos + motifBorder, tickOffset + motifBorder, len, - thickness - 2*motifBorder ); - return TQRect( tickOffset + motifBorder, sliderPos + motifBorder, - thickness - 2*motifBorder, len); - } - break; } -#endif - default: break; - } - return TQMotifStyle::querySubControlMetrics(control, widget, subcontrol, opt); -} - - -/*! \reimp */ -bool TQMotifPlusStyle::eventFilter(TQObject *object, TQEvent *event) -{ - switch(event->type()) { - case TQEvent::MouseButtonPress: - { - singleton->mousePressed = TRUE; - - if (!::tqqt_cast<TQSlider*>(object)) - break; - - singleton->sliderActive = TRUE; - break; - } - - case TQEvent::MouseButtonRelease: - { - singleton->mousePressed = FALSE; - - if (!::tqqt_cast<TQSlider*>(object)) - break; - - singleton->sliderActive = FALSE; - ((TQWidget *) object)->tqrepaint(FALSE); - break; - } - - case TQEvent::Enter: - { - if (! object->isWidgetType()) - break; - - singleton->hoverWidget = (TQWidget *) object; - if (! singleton->hoverWidget->isEnabled()) { - singleton->hoverWidget = 0; - break; - } - singleton->hoverWidget->tqrepaint(FALSE); - break; - } - - case TQEvent::Leave: - { - if (object != TQT_TQOBJECT(singleton->hoverWidget)) - break; - TQWidget *w = singleton->hoverWidget; - singleton->hoverWidget = 0; - w->tqrepaint(FALSE); - break; - } - - case TQEvent::MouseMove: - { - if (! object->isWidgetType() || object != TQT_TQOBJECT(singleton->hoverWidget)) - break; - - if (!::tqqt_cast<TQScrollBar*>(object) && ! ::tqqt_cast<TQSlider*>(object)) - break; - - singleton->mousePos = ((TQMouseEvent *) event)->pos(); - if (! singleton->mousePressed) { - singleton->hovering = TRUE; - singleton->hoverWidget->tqrepaint(FALSE); - singleton->hovering = FALSE; - } - - break; - } - - default: - break; - } - - return TQMotifStyle::eventFilter(object, event); -} - - -/*! \reimp */ -int TQMotifPlusStyle::tqstyleHint(TQ_StyleHint hint, - const TQWidget *widget, - const TQStyleOption &opt, - TQStyleHintReturn *returnData) const -{ - int ret; - switch (hint) { - case SH_PopupMenu_MouseTracking: - ret = 1; - break; - default: - ret = TQMotifStyle::tqstyleHint(hint, widget, opt, returnData); - break; - } - return ret; -} - - -#endif // TQT_NO_STYLE_MOTIFPLUS diff --git a/tqtinterface/qt4/src/styles/tqmotifplusstyle.h b/tqtinterface/qt4/src/styles/tqmotifplusstyle.h deleted file mode 100644 index 7e07e22..0000000 --- a/tqtinterface/qt4/src/styles/tqmotifplusstyle.h +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** -** -** Definition of TQMotifPlusStyle class -** -** Created : 000727 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQMOTIFPLUSSTYLE_H -#define TQMOTIFPLUSSTYLE_H - - -#ifndef TQT_H -#include "tqmotifstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_MOTIFPLUS) || defined(TQT_PLUGIN) - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_MOTIFPLUS -#else -#define TQ_EXPORT_STYLE_MOTIFPLUS TQ_EXPORT -#endif - -class TQ_EXPORT_STYLE_MOTIFPLUS TQMotifPlusStyle : public TQMotifStyle -{ - Q_OBJECT - TQ_OBJECT - -public: - TQMotifPlusStyle(bool hoveringHighlight = TRUE); - virtual ~TQMotifPlusStyle(); - - void polish(TQPalette &pal); - void polish(TQWidget *widget); - void unPolish(TQWidget*widget); - - void polish(TQApplication *app); - void unPolish(TQApplication *app); - - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect subRect(SubRect r, const TQWidget *widget) const; - - void tqdrawComplexControl(TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, -#ifdef TQ_TQDOC - SCFlags controls = SC_All, -#else - SCFlags controls = (uint)SC_All, -#endif - SCFlags active = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect querySubControlMetrics(TQ_ComplexControl control, - const TQWidget *widget, - SubControl subcontrol, - const TQStyleOption& = TQStyleOption::Default) const; - - int tqpixelMetric(PixelMetric metric, const TQWidget *widget = 0) const; - - int tqstyleHint(TQ_StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default, - TQStyleHintReturn* = 0) const; - -protected: - bool eventFilter(TQObject *, TQEvent *); - - -private: - bool useHoveringHighlight; -}; - - -#endif // TQT_NO_STYLE_MOTIFPLUS - -#endif // TQMOTIFPLUSSTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqmotifstyle.cpp b/tqtinterface/qt4/src/styles/tqmotifstyle.cpp deleted file mode 100644 index 83d87da..0000000 --- a/tqtinterface/qt4/src/styles/tqmotifstyle.cpp +++ /dev/null @@ -1,2367 +0,0 @@ -/**************************************************************************** -** -** Implementation of Motif-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqmotifstyle.h" - -#if !defined(TQT_NO_STYLE_MOTIF) || defined(TQT_PLUGIN) - -#include "tqpopupmenu.h" -#include "tqapplication.h" -#include "tqpainter.h" -#include "tqdrawutil.h" -#include "tqpixmap.h" -#include "tqpalette.h" -#include "tqwidget.h" -#include "tqpushbutton.h" -#include "tqscrollbar.h" -#include "tqtabbar.h" -#include "tqtabwidget.h" -#include "tqlistview.h" -#include "tqsplitter.h" -#include "tqslider.h" -#include "tqcombobox.h" -#include "tqdockwindow.h" -#include "tqdockarea.h" -#include "tqprogressbar.h" -#include "tqimage.h" -#include <limits.h> - - - -// old constants that might still be useful... -static const int motifItemFrame = 2; // menu item frame width -static const int motifSepHeight = 2; // separator item height -static const int motifItemHMargin = 3; // menu item hor text margin -static const int motifItemVMargin = 2; // menu item ver text margin -static const int motifArrowHMargin = 6; // arrow horizontal margin -static const int motifTabSpacing = 12; // space between text and tab -static const int motifCheckMarkHMargin = 2; // horiz. margins of check mark -static const int motifCheckMarkSpace = 12; - - -/*! - \class TQMotifStyle tqmotifstyle.h - \brief The TQMotifStyle class provides Motif look and feel. - - \ingroup appearance - - This class implements the Motif look and feel. It closely - resembles the original Motif look as defined by the Open Group, - but with some minor improvements. The Motif style is TQt's default - GUI style on UNIX platforms. -*/ - -/*! - Constructs a TQMotifStyle. - - If \a useHighlightCols is FALSE (the default), the style will - polish the application's color palette to emulate the Motif way of - highlighting, which is a simple inversion between the base and the - text color. -*/ -TQMotifStyle::TQMotifStyle( bool useHighlightCols ) : TQCommonStyle() -{ - highlightCols = useHighlightCols; -} - -/*!\reimp -*/ -TQMotifStyle::~TQMotifStyle() -{ -} - -/*! - If \a arg is FALSE, the style will polish the application's color - palette to emulate the Motif way of highlighting, which is a - simple inversion between the base and the text color. - - The effect will show up the next time an application palette is - set via TQApplication::setPalette(). The current color palette of - the application remains unchanged. - - \sa TQStyle::polish() -*/ -void TQMotifStyle::setUseHighlightColors( bool arg ) -{ - highlightCols = arg; -} - -/*! - Returns TRUE if the style treats the highlight colors of the - palette in a Motif-like manner, which is a simple inversion - between the base and the text color; otherwise returns FALSE. The - default is FALSE. -*/ -bool TQMotifStyle::useHighlightColors() const -{ - return highlightCols; -} - -/*! \reimp */ - -void TQMotifStyle::polish( TQPalette& pal ) -{ - if ( pal.active().light() == pal.active().base() ) { - TQColor nlight = pal.active().light().dark(108 ); - pal.setColor( TQPalette::Active, TQColorGroup::Light, nlight ) ; - pal.setColor( TQPalette::Disabled, TQColorGroup::Light, nlight ) ; - pal.setColor( TQPalette::Inactive, TQColorGroup::Light, nlight ) ; - } - - if ( highlightCols ) - return; - - // force the ugly motif way of highlighting *sigh* - TQColorGroup disabled = pal.disabled(); - TQColorGroup active = pal.active(); - - pal.setColor( TQPalette::Active, TQColorGroup::Highlight, - active.text() ); - pal.setColor( TQPalette::Active, TQColorGroup::HighlightedText, - active.base()); - pal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, - disabled.text() ); - pal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, - disabled.base() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::Highlight, - active.text() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::HighlightedText, - active.base() ); -} - -/*! - \reimp - \internal - Keep TQStyle::polish() visible. -*/ -void TQMotifStyle::polish( TQWidget* w ) -{ - TQStyle::polish(w); -} - -/*! - \reimp - \internal - Keep TQStyle::polish() visible. -*/ -void TQMotifStyle::polish( TQApplication* a ) -{ - TQStyle::polish(a); -} - -static void rot(TQPointArray& a, int n) -{ - TQPointArray r(a.size()); - for (int i = 0; i < (int)a.size(); i++) { - switch (n) { - case 1: r.setPoint(i,-a[i].y(),a[i].x()); break; - case 2: r.setPoint(i,-a[i].x(),-a[i].y()); break; - case 3: r.setPoint(i,a[i].y(),-a[i].x()); break; - } - } - a = r; -} - - -/*!\reimp -*/ -void TQMotifStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch( pe ) { -#ifndef TQT_NO_LISTVIEW - case PE_CheckListExclusiveIndicator: { - TQCheckListItem *item = opt.checkListItem(); - TQListView *lv = item->listView(); - if(!item) - return; - - if ( item->isEnabled() ) - p->setPen( TQPen( cg.text() ) ); - else - p->setPen( TQPen( lv->tqpalette().color( TQPalette::Disabled, TQColorGroup::Text ) ) ); - TQPointArray a; - - int cx = r.width()/2 - 1; - int cy = r.height()/2; - int e = r.width()/2 - 1; - for ( int i = 0; i < 3; i++ ) { //penWidth 2 doesn't quite work - a.setPoints( 4, cx-e, cy, cx, cy-e, cx+e, cy, cx, cy+e ); - p->drawPolygon( a ); - e--; - } - if ( item->isOn() ) { - if ( item->isEnabled() ) - p->setPen( TQPen( cg.text()) ); - else - p->setPen( TQPen( item->listView()->tqpalette().color( TQPalette::Disabled, - TQColorGroup::Text ) ) ); - TQBrush saveBrush = p->brush(); - p->setBrush( cg.text() ); - e = e - 2; - a.setPoints( 4, cx-e, cy, cx, cy-e, cx+e, cy, cx, cy+e ); - p->drawPolygon( a ); - p->setBrush( saveBrush ); - } - break; } -#endif - case PE_ButtonCommand: - case PE_ButtonBevel: - case PE_ButtonTool: -#ifndef USE_QT4 // [FIXME] - case PE_HeaderSection: -#endif // USE_QT4 - qDrawShadePanel( p, r, cg, bool(flags & (Style_Down | Style_On )), - tqpixelMetric(PM_DefaultFrameWidth), - &cg.brush(TQColorGroup::Button) ); - break; - - case PE_Indicator: { -#ifndef TQT_NO_BUTTON - bool on = flags & Style_On; - bool down = flags & Style_Down; - bool showUp = !( down ^ on ); - TQBrush fill = showUp || flags & Style_NoChange ? cg.brush( TQColorGroup::Button ) : cg.brush(TQColorGroup::Mid ); - if ( flags & Style_NoChange ) { - qDrawPlainRect( p, r, cg.text(), - 1, &fill ); - p->drawLine( r.x() + r.width() - 1, r.y(), - r.x(), r.y() + r.height() - 1); - } else - qDrawShadePanel( p, r, cg, !showUp, - tqpixelMetric(PM_DefaultFrameWidth), &fill ); -#endif - break; - } - - case PE_ExclusiveIndicator: - { -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - TQCOORD inner_pts[] = { // used for filling diamond - 2,r.height()/2, - r.width()/2,2, - r.width()-3,r.height()/2, - r.width()/2,r.height()-3 - }; - TQCOORD top_pts[] = { // top (^) of diamond - 0,r.height()/2, - r.width()/2,0, - r.width()-2,r.height()/2-1, - r.width()-3,r.height()/2-1, - r.width()/2,1, - 1,r.height()/2, - 2,r.height()/2, - r.width()/2,2, - r.width()-4,r.height()/2-1 - }; - TQCOORD bottom_pts[] = { // bottom (v) of diamond - 1,r.height()/2+1, - r.width()/2,r.height()-1, - r.width()-1,r.height()/2, - r.width()-2,r.height()/2, - r.width()/2,r.height()-2, - 2,r.height()/2+1, - 3,r.height()/2+1, - r.width()/2,r.height()-3, - r.width()-3,r.height()/2 - }; - bool on = flags & Style_On; - bool down = flags & Style_Down; - bool showUp = !(down ^ on ); - TQPointArray a( TQCOORDARRLEN(inner_pts), inner_pts ); - p->eraseRect( r ); - p->setPen( Qt::NoPen ); - p->setBrush( showUp ? cg.brush( TQColorGroup::Button ) : - cg.brush( TQColorGroup::Mid ) ); - a.translate( r.x(), r.y() ); - p->drawPolygon( a ); - p->setPen( showUp ? cg.light() : cg.dark() ); - p->setBrush( Qt::NoBrush ); - a.setPoints( TQCOORDARRLEN(top_pts), top_pts ); - a.translate( r.x(), r.y() ); - p->drawPolyline( a ); - p->setPen( showUp ? cg.dark() : cg.light() ); - a.setPoints( TQCOORDARRLEN(bottom_pts), bottom_pts ); - a.translate( r.x(), r.y() ); - p->drawPolyline( a ); - - break; - } - - case PE_ExclusiveIndicatorMask: - { - static TQCOORD inner_pts[] = { // used for filling diamond - 0,r.height()/2, - r.width()/2,0, - r.width()-1,r.height()/2, - r.width()/2,r.height()-1 - }; - TQPointArray a(TQCOORDARRLEN(inner_pts), inner_pts); - p->setPen(Qt::color1); - p->setBrush(Qt::color1); - a.translate(r.x(), r.y()); - p->drawPolygon(a); - break; - } - - case PE_ArrowUp: - case PE_ArrowDown: - case PE_ArrowRight: - case PE_ArrowLeft: - { - TQRect rect = r; - TQPointArray bFill; - TQPointArray bTop; - TQPointArray bBot; - TQPointArray bLeft; - bool vertical = pe == PE_ArrowUp || pe == PE_ArrowDown; - bool horizontal = !vertical; - int dim = rect.width() < rect.height() ? rect.width() : rect.height(); - int colspec = 0x0000; - - if ( dim < 2 ) - break; - - // adjust size and center (to fix rotation below) - if ( rect.width() > dim ) { - rect.setX( rect.x() + ((rect.width() - dim ) / 2) ); - rect.setWidth( dim ); - } - if ( rect.height() > dim ) { - rect.setY( rect.y() + ((rect.height() - dim ) / 2 )); - rect.setHeight( dim ); - } - - if ( dim > 3 ) { - if ( dim > 6 ) - bFill.resize( dim & 1 ? 3 : 4 ); - bTop.resize( (dim/2)*2 ); - bBot.resize( dim & 1 ? dim + 1 : dim ); - bLeft.resize( dim > 4 ? 4 : 2 ); - bLeft.putPoints( 0, 2, 0,0, 0,dim-1 ); - if ( dim > 4 ) - bLeft.putPoints( 2, 2, 1,2, 1,dim-3 ); - bTop.putPoints( 0, 4, 1,0, 1,1, 2,1, 3,1 ); - bBot.putPoints( 0, 4, 1,dim-1, 1,dim-2, 2,dim-2, 3,dim-2 ); - - for( int i=0; i<dim/2-2 ; i++ ) { - bTop.putPoints( i*2+4, 2, 2+i*2,2+i, 5+i*2, 2+i ); - bBot.putPoints( i*2+4, 2, 2+i*2,dim-3-i, 5+i*2,dim-3-i ); - } - if ( dim & 1 ) // odd number size: extra line - bBot.putPoints( dim-1, 2, dim-3,dim/2, dim-1,dim/2 ); - if ( dim > 6 ) { // dim>6: must fill interior - bFill.putPoints( 0, 2, 1,dim-3, 1,2 ); - if ( dim & 1 ) // if size is an odd number - bFill.setPoint( 2, dim - 3, dim / 2 ); - else - bFill.putPoints( 2, 2, dim-4,dim/2-1, dim-4,dim/2 ); - } - } - else { - if ( dim == 3 ) { // 3x3 arrow pattern - bLeft.setPoints( 4, 0,0, 0,2, 1,1, 1,1 ); - bTop .setPoints( 2, 1,0, 1,0 ); - bBot .setPoints( 2, 1,2, 2,1 ); - } - else { // 2x2 arrow pattern - bLeft.setPoints( 2, 0,0, 0,1 ); - bTop .setPoints( 2, 1,0, 1,0 ); - bBot .setPoints( 2, 1,1, 1,1 ); - } - } - - // We use rot() and translate() as it is more efficient that - // matrix transformations on the painter, and because it still - // works with TQT_NO_TRANSFORMATIONS defined. - - if ( pe == PE_ArrowUp || pe == PE_ArrowLeft ) { - if ( vertical ) { - rot(bFill,3); - rot(bLeft,3); - rot(bTop,3); - rot(bBot,3); - bFill.translate( 0, rect.height() - 1 ); - bLeft.translate( 0, rect.height() - 1 ); - bTop.translate( 0, rect.height() - 1 ); - bBot.translate( 0, rect.height() - 1 ); - } else { - rot(bFill,2); - rot(bLeft,2); - rot(bTop,2); - rot(bBot,2); - bFill.translate( rect.width() - 1, rect.height() - 1 ); - bLeft.translate( rect.width() - 1, rect.height() - 1 ); - bTop.translate( rect.width() - 1, rect.height() - 1 ); - bBot.translate( rect.width() - 1, rect.height() - 1 ); - } - if ( flags & Style_Down ) - colspec = horizontal ? 0x2334 : 0x2343; - else - colspec = horizontal ? 0x1443 : 0x1434; - } else { - if ( vertical ) { - rot(bFill,1); - rot(bLeft,1); - rot(bTop,1); - rot(bBot,1); - bFill.translate( rect.width() - 1, 0 ); - bLeft.translate( rect.width() - 1, 0 ); - bTop.translate( rect.width() - 1, 0 ); - bBot.translate( rect.width() - 1, 0 ); - } - if ( flags & Style_Down ) - colspec = horizontal ? 0x2443 : 0x2434; - else - colspec = horizontal ? 0x1334 : 0x1343; - } - bFill.translate( rect.x(), rect.y() ); - bLeft.translate( rect.x(), rect.y() ); - bTop.translate( rect.x(), rect.y() ); - bBot.translate( rect.x(), rect.y() ); - - TQColor *cols[5]; - if ( flags & Style_Enabled ) { - cols[0] = 0; - cols[1] = (TQColor *)&cg.button(); - cols[2] = (TQColor *)&cg.mid(); - cols[3] = (TQColor *)&cg.light(); - cols[4] = (TQColor *)&cg.dark(); - } else { - cols[0] = 0; - cols[1] = (TQColor *)&cg.button(); - cols[2] = (TQColor *)&cg.button(); - cols[3] = (TQColor *)&cg.button(); - cols[4] = (TQColor *)&cg.button(); - } - -#define CMID *cols[ (colspec>>12) & 0xf ] -#define CLEFT *cols[ (colspec>>8) & 0xf ] -#define CTOP *cols[ (colspec>>4) & 0xf ] -#define CBOT *cols[ colspec & 0xf ] - - TQPen savePen = p->pen(); - TQBrush saveBrush = p->brush(); - TQPen pen( Qt::NoPen ); - TQBrush brush = cg.brush( flags & Style_Enabled ? TQColorGroup::Button : - TQColorGroup::Mid ); - p->setPen( pen ); - p->setBrush( brush ); - p->drawPolygon( bFill ); - p->setBrush( Qt::NoBrush ); - - p->setPen( CLEFT ); - p->drawLineSegments( bLeft ); - p->setPen( CTOP ); - p->drawLineSegments( bTop ); - p->setPen( CBOT ); - p->drawLineSegments( bBot ); - - p->setBrush( saveBrush ); - p->setPen( savePen ); -#undef CMID -#undef CLEFT -#undef CTOP -#undef CBOT - break; - } - - case PE_SpinWidgetPlus: - case PE_SpinWidgetMinus: - { - p->save(); - int fw = tqpixelMetric( PM_DefaultFrameWidth ); - TQRect br; - br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2, - r.height() - fw*2 ); - - if ( flags & Style_Sunken ) - p->fillRect( r, cg.brush( TQColorGroup::Dark ) ); - else - p->fillRect( r, cg.brush( TQColorGroup::Button ) ); - - p->setPen( cg.buttonText() ); - p->setBrush( cg.buttonText() ); - - int length; - int x = r.x(), y = r.y(), w = r.width(), h = r.height(); - if ( w <= 8 || h <= 6 ) - length = TQMIN( w-2, h-2 ); - else - length = TQMIN( 2*w / 3, 2*h / 3 ); - - if ( !(length & 1) ) - length -=1; - int xmarg = ( w - length ) / 2; - int ymarg = ( h - length ) / 2; - - p->drawLine( x + xmarg, ( y + h / 2 - 1 ), - x + xmarg + length - 1, ( y + h / 2 - 1 ) ); - if ( pe == PE_SpinWidgetPlus ) - p->drawLine( ( x+w / 2 ) - 1, y + ymarg, - ( x+w / 2 ) - 1, y + ymarg + length - 1 ); - p->restore(); - break; - } - - case PE_SpinWidgetUp: - case PE_SpinWidgetDown: - { - p->save(); - int fw = tqpixelMetric( PM_DefaultFrameWidth ); - TQRect br; - br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2, - r.height() - fw*2 ); - if ( flags & Style_Sunken ) - p->fillRect( br, cg.brush( TQColorGroup::Mid ) ); - else - p->fillRect( br, cg.brush( TQColorGroup::Button ) ); - - int x = r.x(), y = r.y(), w = r.width(), h = r.height(); - int sw = w-4; - if ( sw < 3 ) - return; - else if ( !(sw & 1) ) - sw--; - sw -= ( sw / 7 ) * 2; // Empty border - int sh = sw/2 + 2; // Must have empty row at foot of arrow - - int sx = x + w / 2 - sw / 2 - 1; - int sy = y + h / 2 - sh / 2 - 1; - - TQPointArray a; - if ( pe == PE_SpinWidgetDown ) - a.setPoints( 3, 0, 1, sw-1, 1, sh-2, sh-1 ); - else - a.setPoints( 3, 0, sh-1, sw-1, sh-1, sh-2, 1 ); - int bsx = 0; - int bsy = 0; - if ( flags & Style_Sunken ) { - bsx = tqpixelMetric(PM_ButtonShiftHorizontal); - bsy = tqpixelMetric(PM_ButtonShiftVertical); - } - p->translate( sx + bsx, sy + bsy ); - p->setPen( cg.buttonText() ); - p->setBrush( cg.buttonText() ); - p->drawPolygon( a ); - p->restore(); - break; - } - - case PE_DockWindowHandle: - { - p->save(); - p->translate( r.x(), r.y() ); - - TQColor dark( cg.dark() ); - TQColor light( cg.light() ); - unsigned int i; - if ( flags & Style_Horizontal ) { - int h = r.height(); - if ( h > 6 ) { - if ( flags & Style_On ) - p->fillRect( 1, 1, 8, h - 2, cg.highlight() ); - TQPointArray a( 2 * ((h-6)/3) ); - int y = 3 + (h%3)/2; - p->setPen( dark ); - p->drawLine( 8, 1, 8, h-2 ); - for( i=0; 2*i < a.size(); i ++ ) { - a.setPoint( 2*i, 5, y+1+3*i ); - a.setPoint( 2*i+1, 2, y+2+3*i ); - } - p->drawPoints( a ); - p->setPen( light ); - p->drawLine( 9, 1, 9, h-2 ); - for( i=0; 2*i < a.size(); i++ ) { - a.setPoint( 2*i, 4, y+3*i ); - a.setPoint( 2*i+1, 1, y+1+3*i ); - } - p->drawPoints( a ); - // if ( drawBorder ) { - // p->setPen( TQPen( TQt::darkGray ) ); - // p->drawLine( 0, r.height() - 1, - // tbExtent, r.height() - 1 ); - // } - } - } else { - int w = r.width(); - if ( w > 6 ) { - if ( flags & Style_On ) - p->fillRect( 1, 1, w - 2, 9, cg.highlight() ); - TQPointArray a( 2 * ((w-6)/3) ); - - int x = 3 + (w%3)/2; - p->setPen( dark ); - p->drawLine( 1, 8, w-2, 8 ); - for( i=0; 2*i < a.size(); i ++ ) { - a.setPoint( 2*i, x+1+3*i, 6 ); - a.setPoint( 2*i+1, x+2+3*i, 3 ); - } - p->drawPoints( a ); - p->setPen( light ); - p->drawLine( 1, 9, w-2, 9 ); - for( i=0; 2*i < a.size(); i++ ) { - a.setPoint( 2*i, x+3*i, 5 ); - a.setPoint( 2*i+1, x+1+3*i, 2 ); - } - p->drawPoints( a ); - // if ( drawBorder ) { - // p->setPen( TQPen( TQt::darkGray ) ); - // p->drawLine( r.width() - 1, 0, - // r.width() - 1, tbExtent ); - // } - } - } - p->restore(); - break; - } - - case PE_Splitter: - if (flags & Style_Horizontal) - flags &= ~Style_Horizontal; - else - flags |= Style_Horizontal; - // fall through intended - -#ifndef USE_QT4 // [FIXME] - case PE_DockWindowResizeHandle: -#endif // USE_QT4 - { - const int motifOffset = 10; - int sw = tqpixelMetric( PM_SplitterWidth ); - if ( flags & Style_Horizontal ) { - TQCOORD yPos = r.y() + r.height() / 2; - TQCOORD kPos = r.width() - motifOffset - sw; - TQCOORD kSize = sw - 2; - - qDrawShadeLine( p, 0, yPos, kPos, yPos, cg ); - qDrawShadePanel( p, kPos, yPos - sw / 2 + 1, kSize, kSize, - cg, FALSE, 1, &cg.brush( TQColorGroup::Button ) ); - qDrawShadeLine( p, kPos + kSize - 1, yPos, r.width(), yPos, cg ); - } else { - TQCOORD xPos = r.x() + r.width() / 2; - TQCOORD kPos = motifOffset; - TQCOORD kSize = sw - 2; - - qDrawShadeLine( p, xPos, kPos + kSize - 1, xPos, r.height(), cg ); - qDrawShadePanel( p, xPos - sw / 2 + 1, kPos, kSize, kSize, cg, - FALSE, 1, &cg.brush( TQColorGroup::Button ) ); - qDrawShadeLine( p, xPos, 0, xPos, kPos, cg ); - } - break; - } - -#ifndef USE_QT4 // [FIXME] - case PE_CheckMark: - { - const int markW = 6; - const int markH = 6; - int posX = r.x() + ( r.width() - markW ) / 2 - 1; - int posY = r.y() + ( r.height() - markH ) / 2; - int dfw = tqpixelMetric(PM_DefaultFrameWidth); - - if (dfw < 2) { - // Could do with some optimizing/caching... - TQPointArray a( 7*2 ); - int i, xx, yy; - xx = posX; - yy = 3 + posY; - for ( i=0; i<3; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - yy -= 2; - for ( i=3; i<7; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - if ( ! (flags & Style_Enabled) && ! (flags & Style_On) ) { - int pnt; - p->setPen( cg.highlightedText() ); - TQPoint offset(1,1); - for ( pnt = 0; pnt < (int)a.size(); pnt++ ) - a[pnt] += offset; - p->drawLineSegments( a ); - for ( pnt = 0; pnt < (int)a.size(); pnt++ ) - a[pnt] -= offset; - } - p->setPen( cg.text() ); - p->drawLineSegments( a ); - - qDrawShadePanel( p, posX-2, posY-2, markW+4, markH+6, cg, TRUE, dfw); - } else - qDrawShadePanel( p, posX, posY, markW, markH, cg, TRUE, dfw, - &cg.brush( TQColorGroup::Mid ) ); - - break; - } -#endif // USE_QT4 - - case PE_ScrollBarSubLine: - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp), - p, r, cg, Style_Enabled | flags); - break; - - case PE_ScrollBarAddLine: - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown), - p, r, cg, Style_Enabled | flags); - break; - - case PE_ScrollBarSubPage: - case PE_ScrollBarAddPage: - p->fillRect(r, cg.brush(TQColorGroup::Mid)); - break; - - case PE_ScrollBarSlider: - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, - (flags | Style_Raised) & ~Style_Down); - break; - -#ifndef USE_QT4 // [FIXME] - case PE_ProgressBarChunk: - p->fillRect( r.x(), r.y() + 2, r.width() - 2, - r.height() - 4, cg.brush(TQColorGroup::Highlight)); - break; -#endif // USE_QT4 - - default: - TQCommonStyle::tqdrawPrimitive( pe, p, r, cg, flags, opt ); - break; - } -} - - -/*!\reimp -*/ -void TQMotifStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch( element ) { - case CE_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - int diw, x1, y1, x2, y2; - const TQPushButton *btn; - TQColorGroup newCg = cg; - btn = ( const TQPushButton * )widget; - p->setPen( cg.foreground() ); - p->setBrush( TQBrush( cg.button(), Qt::NoBrush ) ); - diw = tqpixelMetric( PM_ButtonDefaultIndicator ); - r.coords( &x1, &y1, &x2, &y2 ); - if ( btn->isDefault() || btn->autoDefault() ) { - x1 += diw; - y1 += diw; - x2 -= diw; - y2 -= diw; - } - TQBrush fill; - if ( btn->isDown() ) - fill = newCg.brush( TQColorGroup::Mid ); - else if ( btn->isOn() ) - fill = TQBrush( newCg.mid(), Qt::Dense4Pattern ); - else - fill = newCg.brush( TQColorGroup::Button ); - - newCg.setBrush( TQColorGroup::Button, fill ); - if ( btn->isDefault() ) { - if ( diw == 0 ) { - TQPointArray a; - a.setPoints( 9, - x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1, - x2-1, y1+1, x2-1, y2-1, x1+1, y2-1, x1+1, y1+1 ); - p->setPen( newCg.shadow() ); - p->drawPolygon( a ); - x1 += 2; - y1 += 2; - x2 -= 2; - y2 -= 2; - } else { - qDrawShadePanel( p, r, newCg, TRUE ); - } - } - if ( !btn->isFlat() || btn->isOn() || btn->isDown() ) { - TQRect tmp( x1, y1, x2 - x1 + 1, y2 - y1 + 1 ); - SFlags flags = Style_Default; - if ( btn->isOn()) - flags |= Style_On; - if (btn->isDown()) - flags |= Style_Down; - p->save(); - p->setBrushOrigin( -widget->backgroundOffset().x(), - -widget->backgroundOffset().y() ); - tqdrawPrimitive( PE_ButtonCommand, p, - tmp, newCg, - flags ); - p->restore(); - } - if ( p->brush().style() != Qt::NoBrush ) - p->setBrush( Qt::NoBrush ); -#endif - break; - } - - case CE_TabBarTab: - { -#ifndef TQT_NO_TABBAR - if ( !widget || !widget->parentWidget() || !opt.tab() ) - break; - - const TQTabBar * tb = (const TQTabBar *) widget; - const TQTab * t = opt.tab(); - - int dfw = tqpixelMetric( PM_DefaultFrameWidth, tb ); - bool selected = flags & Style_Selected; - int o = dfw > 1 ? 1 : 0; - bool lastTab = FALSE; - - TQRect r2( r ); - if ( tb->tqshape() == TQTabBar::RoundedAbove ) { - if ( tqstyleHint( SH_TabBar_Alignment, tb ) == TQt::AlignRight && - tb->indexOf( t->identifier() ) == tb->count()-1 ) - lastTab = TRUE; - - if ( o ) { - p->setPen( tb->tqcolorGroup().light() ); - p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() ); - p->setPen( tb->tqcolorGroup().light() ); - p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 ); - if ( r2.left() == 0 ) - p->drawPoint( tb->rect().bottomLeft() ); - } - else { - p->setPen( tb->tqcolorGroup().light() ); - p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() ); - } - - if ( selected ) { - p->fillRect( TQRect( r2.left()+1, r2.bottom()-o, r2.width()-3, 2), - tb->tqpalette().active().brush( TQColorGroup::Background )); - p->setPen( tb->tqcolorGroup().background() ); - // p->drawLine( r2.left()+1, r2.bottom(), r2.right()-2, r2.bottom() ); - // if (o) - // p->drawLine( r2.left()+1, r2.bottom()-1, r2.right()-2, r2.bottom()-1 ); - p->drawLine( r2.left()+1, r2.bottom(), r2.left()+1, r2.top()+2 ); - p->setPen( tb->tqcolorGroup().light() ); - } else { - p->setPen( tb->tqcolorGroup().light() ); - r2.setRect( r2.left() + 2, r2.top() + 2, - r2.width() - 4, r2.height() - 2 ); - } - - p->drawLine( r2.left(), r2.bottom()-1, r2.left(), r2.top() + 2 ); - p->drawPoint( r2.left()+1, r2.top() + 1 ); - p->drawLine( r2.left()+2, r2.top(), - r2.right() - 2, r2.top() ); - p->drawPoint( r2.left(), r2.bottom()); - - if ( o ) { - p->drawLine( r2.left()+1, r2.bottom(), r2.left()+1, r2.top() + 2 ); - p->drawLine( r2.left()+2, r2.top()+1, - r2.right() - 2, r2.top()+1 ); - } - - p->setPen( tb->tqcolorGroup().dark() ); - p->drawLine( r2.right() - 1, r2.top() + 2, - r2.right() - 1, r2.bottom() - 1 + (selected ? o : -o)); - if ( o ) { - p->drawPoint( r2.right() - 1, r2.top() + 1 ); - p->drawLine( r2.right(), r2.top() + 2, r2.right(), - r2.bottom() - - (selected ? (lastTab ? 0:1):1+o)); - p->drawPoint( r2.right() - 1, r2.top() + 1 ); - } - } else if ( tb->tqshape() == TQTabBar::RoundedBelow ) { - if ( tqstyleHint( SH_TabBar_Alignment, tb ) == TQt::AlignLeft && - tb->indexOf( t->identifier() ) == tb->count()-1 ) - lastTab = TRUE; - if ( selected ) { - p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1), - tb->tqpalette().active().brush( TQColorGroup::Background )); - p->setPen( tb->tqcolorGroup().background() ); - // p->drawLine( r2.left()+1, r2.top(), r2.right()-2, r2.top() ); - p->drawLine( r2.left()+1, r2.top(), r2.left()+1, r2.bottom()-2 ); - p->setPen( tb->tqcolorGroup().dark() ); - } else { - p->setPen( tb->tqcolorGroup().dark() ); - p->drawLine( r2.left(), r2.top(), r2.right(), r2.top() ); - p->drawLine( r2.left() + 1, r2.top() + 1, - r2.right() - (lastTab ? 0 : 2), - r2.top() + 1 ); - r2.setRect( r2.left() + 2, r2.top(), - r2.width() - 4, r2.height() - 2 ); - } - - p->drawLine( r2.right() - 1, r2.top(), - r2.right() - 1, r2.bottom() - 2 ); - p->drawPoint( r2.right() - 2, r2.bottom() - 2 ); - p->drawLine( r2.right() - 2, r2.bottom() - 1, - r2.left() + 1, r2.bottom() - 1 ); - p->drawPoint( r2.left() + 1, r2.bottom() - 2 ); - - if (dfw > 1) { - p->drawLine( r2.right(), r2.top(), - r2.right(), r2.bottom() - 1 ); - p->drawPoint( r2.right() - 1, r2.bottom() - 1 ); - p->drawLine( r2.right() - 1, r2.bottom(), - r2.left() + 2, r2.bottom() ); - } - - p->setPen( tb->tqcolorGroup().light() ); - p->drawLine( r2.left(), r2.top() + (selected ? 0 : 2), - r2.left(), r2.bottom() - 2 ); - p->drawLine( r2.left() + 1, r2.top() + (selected ? 0 : 2), - r2.left() + 1, r2.bottom() - 3 ); - - } else { - TQCommonStyle::tqdrawControl( element, p, widget, r, cg, flags, opt ); - } -#endif - break; - } - - case CE_ProgressBarGroove: - qDrawShadePanel(p, r, cg, TRUE, 2); - break; - - case CE_ProgressBarLabel: - { -#ifndef TQT_NO_PROGRESSBAR - const TQProgressBar * pb = (const TQProgressBar *) widget; - const int unit_width = tqpixelMetric( PM_ProgressBarChunkWidth, pb ); - int u = r.width() / unit_width; - int p_v = pb->progress(); - int t_s = pb->totalSteps(); - if ( u > 0 && pb->progress() >= INT_MAX / u && t_s >= u ) { - // scale down to something usable. - p_v /= u; - t_s /= u; - } - if ( pb->percentageVisible() && pb->totalSteps() ) { - int nu = ( u * p_v + t_s/2 ) / t_s; - int x = unit_width * nu; - if (pb->indicatorFollowsStyle() || pb->centerIndicator()) { - p->setPen( cg.highlightedText() ); - p->setClipRect( r.x(), r.y(), x, r.height() ); - p->drawText( r, TQt::AlignCenter | TQt::SingleLine, pb->progressString() ); - - if ( pb->progress() != pb->totalSteps() ) { - p->setClipRect( r.x() + x, r.y(), r.width() - x, r.height() ); - p->setPen( cg.highlight() ); - p->drawText( r, TQt::AlignCenter | TQt::SingleLine, pb->progressString() ); - } - } else { - p->setPen( cg.text() ); - p->drawText( r, TQt::AlignCenter | TQt::SingleLine, pb->progressString() ); - } - } -#endif - break; - } - -#ifndef TQT_NO_POPUPMENU - case CE_PopupMenuItem: - { - if (! widget || opt.isDefault()) - break; - - const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget; - TQMenuItem *mi = opt.menuItem(); - if ( !mi ) - break; - - int tab = opt.tabWidth(); - int maxpmw = opt.maxIconWidth(); - bool dis = ! (flags & Style_Enabled); - bool checkable = popupmenu->isCheckable(); - bool act = flags & Style_Active; - int x, y, w, h; - - r.rect(&x, &y, &w, &h); - - if ( checkable ) - maxpmw = TQMAX( maxpmw, motifCheckMarkSpace ); - - int checkcol = maxpmw; - - if ( mi && mi->isSeparator() ) { // draw separator - p->setPen( cg.dark() ); - p->drawLine( x, y, x+w, y ); - p->setPen( cg.light() ); - p->drawLine( x, y+1, x+w, y+1 ); - return; - } - - int pw = motifItemFrame; - - if ( act && !dis ) { // active item frame - if (tqpixelMetric( PM_DefaultFrameWidth ) > 1) - qDrawShadePanel( p, x, y, w, h, cg, FALSE, pw, - &cg.brush( TQColorGroup::Button ) ); - else - qDrawShadePanel( p, x+1, y+1, w-2, h-2, cg, TRUE, 1, - &cg.brush( TQColorGroup::Button ) ); - } - else // incognito frame - p->fillRect(x, y, w, h, cg.brush( TQColorGroup::Button )); - - if ( !mi ) - return; - - TQRect vrect = tqvisualRect( TQRect( x+motifItemFrame, y+motifItemFrame, checkcol, h-2*motifItemFrame ), r ); - int xvis = vrect.x(); - if ( mi->isChecked() ) { - if ( mi->iconSet() ) { - qDrawShadePanel( p, xvis, y+motifItemFrame, checkcol, h-2*motifItemFrame, - cg, TRUE, 1, &cg.brush( TQColorGroup::Midlight ) ); - } - } else if ( !act ) { - p->fillRect(xvis, y+motifItemFrame, checkcol, h-2*motifItemFrame, - cg.brush( TQColorGroup::Button )); - } - - if ( mi->iconSet() ) { // draw iconset - TQIconSet::Mode mode = TQIconSet::Normal; // no disabled icons in Motif - if (act && !dis ) - mode = TQIconSet::Active; - TQPixmap pixmap; - if ( checkable && mi->isChecked() ) - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); - else - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - - int pixw = pixmap.width(); - int pixh = pixmap.height(); - TQRect pmr( 0, 0, pixw, pixh ); - pmr.moveCenter( vrect.center() ); - p->setPen( cg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - - } else if ( checkable ) { // just "checking"... - int mw = checkcol; - int mh = h - 2*motifItemFrame; - if ( mi->isChecked() ) { - SFlags cflags = Style_Default; - if (! dis) - cflags |= Style_Enabled; - if (act) - cflags |= Style_On; - - tqdrawPrimitive(PE_CheckMark, p, - TQRect(xvis, y+motifItemFrame, mw, mh), - cg, cflags); - } - } - - - p->setPen( cg.buttonText() ); - - TQColor discol; - if ( dis ) { - discol = cg.text(); - p->setPen( discol ); - } - - int xm = motifItemFrame + checkcol + motifItemHMargin; - - vrect = tqvisualRect( TQRect( x+xm, y+motifItemVMargin, w-xm-tab, h-2*motifItemVMargin ), r ); - xvis = vrect.x(); - if ( mi->custom() ) { - int m = motifItemVMargin; - p->save(); - mi->custom()->paint( p, cg, act, !dis, - xvis, y+m, w-xm-tab+1, h-2*m ); - p->restore(); - } - TQString s = mi->text(); - if ( !s.isNull() ) { // draw text - int t = s.find( '\t' ); - int m = motifItemVMargin; - int text_flags = TQt::AlignVCenter|TQt::ShowPrefix | TQt::DontClip | TQt::SingleLine; - text_flags |= (TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft ); - if ( t >= 0 ) { // draw tab text - TQRect vr = tqvisualRect( TQRect( x+w-tab-motifItemHMargin-motifItemFrame, - y+motifItemVMargin, tab, h-2*motifItemVMargin ), r ); - int xv = vr.x(); - p->drawText( xv, y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); - s = s.left( t ); - } - p->drawText( xvis, y+m, w-xm-tab+1, h-2*m, text_flags, s, t ); - } else if ( mi->pixmap() ) { // draw pixmap - TQPixmap *pixmap = mi->pixmap(); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::OpaqueMode ); - p->drawPixmap( xvis, y+motifItemFrame, *pixmap ); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::TransparentMode ); - } - if ( mi->popup() ) { // draw sub menu arrow - int dim = (h-2*motifItemFrame) / 2; - TQStyle::PrimitiveElement arrow = (TQApplication::reverseLayout() ? PE_ArrowLeft : PE_ArrowRight); - TQRect vr = tqvisualRect( TQRect(x+w - motifArrowHMargin - motifItemFrame - dim, - y+h/2-dim/2, dim, dim), r ); - if ( act ) - tqdrawPrimitive(arrow, p, vr, cg, - (Style_Down | - (dis ? Style_Default : Style_Enabled)) ); - else - tqdrawPrimitive(arrow, p, vr, cg, - (dis ? Style_Default : Style_Enabled)); - } - - break; - } -#endif // TQT_NO_POPUPMENU - - case CE_MenuBarItem: - { - if ( flags & Style_Active ) // active item - qDrawShadePanel( p, r, cg, FALSE, motifItemFrame, - &cg.brush(TQColorGroup::Button) ); - else // other item - p->fillRect( r, cg.brush(TQColorGroup::Button) ); - TQCommonStyle::tqdrawControl( element, p, widget, r, cg, flags, opt ); - break; - } - - default: - TQCommonStyle::tqdrawControl( element, p, widget, r, cg, flags, opt ); - break; - } -} - -static int get_combo_extra_width( int h, int w, int *return_awh=0 ) -{ - int awh, - tmp; - if ( h < 8 ) { - awh = 6; - } else if ( h < 14 ) { - awh = h - 2; - } else { - awh = h/2; - } - tmp = (awh * 3) / 2; - if ( tmp > w / 2 ) { - awh = w / 2 - 3; - tmp = w / 2 + 3; - } - - if ( return_awh ) - *return_awh = awh; - - return tmp; -} - -static void get_combo_parameters( const TQRect &r, - int &ew, int &awh, int &ax, - int &ay, int &sh, int &dh, - int &sy ) -{ - ew = get_combo_extra_width( r.height(), r.width(), &awh ); - - sh = (awh+3)/4; - if ( sh < 3 ) - sh = 3; - dh = sh/2 + 1; - - ay = r.y() + (r.height()-awh-sh-dh)/2; - if ( ay < 0 ) { - //panic mode - ay = 0; - sy = r.height(); - } else { - sy = ay+awh+dh; - } - ax = r.x() + r.width() - ew; - ax += (ew-awh)/2; -} - -/*!\reimp -*/ -void TQMotifStyle::tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - SCFlags sub, - SCFlags subActive, - const TQStyleOption& opt ) const -{ - switch ( control ) { - case CC_SpinWidget: { - SCFlags drawSub = SC_None; - if ( sub & SC_SpinWidgetFrame ) - qDrawShadePanel( p, r, cg, TRUE, - tqpixelMetric( PM_DefaultFrameWidth) ); - - if ( sub & SC_SpinWidgetUp || sub & SC_SpinWidgetDown ) { - if ( sub & SC_SpinWidgetUp ) - drawSub |= SC_SpinWidgetUp; - if ( sub & SC_SpinWidgetDown ) - drawSub |= SC_SpinWidgetDown; - - TQCommonStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, - drawSub, subActive, opt ); - } - break; } - - case CC_Slider: - { -#ifndef TQT_NO_SLIDER - const TQSlider * slider = (const TQSlider *) widget; - - TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove, - opt), - handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle, - opt); - - if ((sub & SC_SliderGroove) && groove.isValid()) { - qDrawShadePanel( p, groove, cg, TRUE, 2, - &cg.brush( TQColorGroup::Mid ) ); - - - if ( flags & Style_HasFocus ) { - TQRect fr = subRect( SR_SliderFocusRect, widget ); - tqdrawPrimitive( PE_FocusRect, p, fr, cg ); - } - } - - if (( sub & SC_SliderHandle ) && handle.isValid()) { - tqdrawPrimitive( PE_ButtonBevel, p, handle, cg ); - - if ( slider->orientation() == Qt::Horizontal ) { - TQCOORD mid = handle.x() + handle.width() / 2; - qDrawShadeLine( p, mid, handle.y(), mid, - handle.y() + handle.height() - 2, - cg, TRUE, 1); - } else { - TQCOORD mid = handle.y() + handle.height() / 2; - qDrawShadeLine( p, handle.x(), mid, - handle.x() + handle.width() - 2, mid, - cg, TRUE, 1); - } - } - - if ( sub & SC_SliderTickmarks ) - TQCommonStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, - SC_SliderTickmarks, subActive, - opt ); -#endif - break; - } - - case CC_ComboBox: -#ifndef TQT_NO_COMBOBOX - if ( sub & SC_ComboBoxArrow ) { - const TQComboBox * cb = (const TQComboBox *) widget; - int awh, ax, ay, sh, sy, dh, ew; - int fw = tqpixelMetric( PM_DefaultFrameWidth, cb); - - tqdrawPrimitive( PE_ButtonCommand, p, r, cg, flags ); - TQRect ar = TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, cb, SC_ComboBoxArrow, - opt ), cb ); - tqdrawPrimitive( PE_ArrowDown, p, ar, cg, flags | Style_Enabled ); - - TQRect tr = r; - tr.addCoords( fw, fw, -fw, -fw ); - get_combo_parameters( tr, ew, awh, ax, ay, sh, dh, sy ); - - // draws the shaded line under the arrow - p->setPen( cg.light() ); - p->drawLine( ar.x(), sy, ar.x()+awh-1, sy ); - p->drawLine( ar.x(), sy, ar.x(), sy+sh-1 ); - p->setPen( cg.dark() ); - p->drawLine( ar.x()+1, sy+sh-1, ar.x()+awh-1, sy+sh-1 ); - p->drawLine( ar.x()+awh-1, sy+1, ar.x()+awh-1, sy+sh-1 ); - - if ( cb->hasFocus() ) { - TQRect re = TQStyle::tqvisualRect( subRect( SR_ComboBoxFocusRect, cb ), cb ); - tqdrawPrimitive( PE_FocusRect, p, re, cg ); - } - } - - if ( sub & SC_ComboBoxEditField ) { - TQComboBox * cb = (TQComboBox *) widget; - if ( cb->editable() ) { - TQRect er = TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, cb, - SC_ComboBoxEditField ), cb ); - er.addCoords( -1, -1, 1, 1); - qDrawShadePanel( p, er, cg, TRUE, 1, - &cg.brush( TQColorGroup::Button )); - } - } -#endif - p->setPen(cg.buttonText()); - break; - - case CC_ScrollBar: - { - if (sub == (SC_ScrollBarAddLine | SC_ScrollBarSubLine | SC_ScrollBarAddPage | - SC_ScrollBarSubPage | SC_ScrollBarFirst | SC_ScrollBarLast | - SC_ScrollBarSlider)) - qDrawShadePanel(p, widget->rect(), cg, TRUE, - tqpixelMetric(PM_DefaultFrameWidth, widget), - &cg.brush(TQColorGroup::Mid)); - TQCommonStyle::tqdrawComplexControl(control, p, widget, r, cg, flags, sub, - subActive, opt); - break; - } - -#ifndef TQT_NO_LISTVIEW - case CC_ListView: - { - if ( sub & SC_ListView ) { - TQCommonStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, sub, subActive, opt ); - } - if ( sub & ( SC_ListViewBranch | SC_ListViewExpand ) ) { - if (opt.isDefault()) - break; - - TQListViewItem *item = opt.listViewItem(); - TQListViewItem *child = item->firstChild(); - - int y = r.y(); - int c; - TQPointArray dotlines; - if ( subActive == (uint)SC_All && sub == SC_ListViewExpand ) { - c = 2; - dotlines.resize(2); - dotlines[0] = TQPoint( r.right(), r.top() ); - dotlines[1] = TQPoint( r.right(), r.bottom() ); - } else { - int linetop = 0, linebot = 0; - // each branch needs at most two lines, ie. four end points - dotlines.resize( item->childCount() * 4 ); - c = 0; - - // skip the stuff above the exposed rectangle - while ( child && y + child->height() <= 0 ) { - y += child->totalHeight(); - child = child->nextSibling(); - } - - int bx = r.width() / 2; - - // paint stuff in the magical area - TQListView* v = item->listView(); - while ( child && y < r.height() ) { - if (child->isVisible()) { - int lh; - if ( !item->multiLinesEnabled() ) - lh = child->height(); - else - lh = p->fontMetrics().height() + 2 * v->itemMargin(); - lh = TQMAX( lh, TQApplication::globalStrut().height() ); - if ( lh % 2 > 0 ) - lh++; - linebot = y + lh/2; - if ( (child->isExpandable() || child->childCount()) && - (child->height() > 0) ) { - // needs a box - p->setPen( cg.text() ); - p->drawRect( bx-4, linebot-4, 9, 9 ); - TQPointArray a; - if ( child->isOpen() ) - a.setPoints( 3, bx-2, linebot-2, - bx, linebot+2, - bx+2, linebot-2 ); //RightArrow - else - a.setPoints( 3, bx-2, linebot-2, - bx+2, linebot, - bx-2, linebot+2 ); //DownArrow - p->setBrush( cg.text() ); - p->drawPolygon( a ); - p->setBrush( Qt::NoBrush ); - // dotlinery - dotlines[c++] = TQPoint( bx, linetop ); - dotlines[c++] = TQPoint( bx, linebot - 5 ); - dotlines[c++] = TQPoint( bx + 5, linebot ); - dotlines[c++] = TQPoint( r.width(), linebot ); - linetop = linebot + 5; - } else { - // just dotlinery - dotlines[c++] = TQPoint( bx+1, linebot ); - dotlines[c++] = TQPoint( r.width(), linebot ); - } - y += child->totalHeight(); - } - child = child->nextSibling(); - } - - // Expand line height to edge of rectangle if there's any - // visible child below - while ( child && child->height() <= 0) - child = child->nextSibling(); - if ( child ) - linebot = r.height(); - - if ( linetop < linebot ) { - dotlines[c++] = TQPoint( bx, linetop ); - dotlines[c++] = TQPoint( bx, linebot ); - } - } - - int line; // index into dotlines - p->setPen( cg.text() ); - if ( sub & SC_ListViewBranch ) for( line = 0; line < c; line += 2 ) { - p->drawLine( dotlines[line].x(), dotlines[line].y(), - dotlines[line+1].x(), dotlines[line+1].y() ); - } - } - - break; - } -#endif // TQT_NO_LISTVIEW - - default: - TQCommonStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, - sub, subActive, opt ); - } -} - - -/*! \reimp */ -int TQMotifStyle::tqpixelMetric( PixelMetric metric, const TQWidget *widget ) const -{ - int ret; - - switch( metric ) { - case PM_ButtonDefaultIndicator: - ret = 3; - break; - - case PM_ButtonShiftHorizontal: - case PM_ButtonShiftVertical: - ret = 0; - break; - - case PM_SplitterWidth: - ret = TQMAX( 10, TQApplication::globalStrut().width() ); - break; - - case PM_SliderLength: - ret = 30; - break; - - case PM_SliderThickness: - ret = 24; - break; - - case PM_SliderControlThickness: - { -#ifndef TQT_NO_SLIDER - const TQSlider * sl = (const TQSlider *) widget; - int space = (sl->orientation() == Qt::Horizontal) ? sl->height() - : sl->width(); - int ticks = sl->tickmarks(); - int n = 0; - if ( ticks & TQSlider::Above ) n++; - if ( ticks & TQSlider::Below ) n++; - if ( !n ) { - ret = space; - break; - } - - int thick = 6; // Magic constant to get 5 + 16 + 5 - - space -= thick; - //### the two sides may be unequal in size - if ( space > 0 ) - thick += (space * 2) / (n + 2); - ret = thick; -#endif - break; - } - - case PM_SliderSpaceAvailable: - { -#ifndef TQT_NO_SLIDER - const TQSlider * sl = (const TQSlider *) widget; - if ( sl->orientation() == Qt::Horizontal ) - ret = sl->width() - tqpixelMetric( PM_SliderLength, sl ) - 6; - else - ret = sl->height() - tqpixelMetric( PM_SliderLength, sl ) - 6; -#endif - break; - } - - case PM_DockWindowHandleExtent: - ret = 9; - break; - - case PM_ProgressBarChunkWidth: - ret = 1; - break; - - case PM_ExclusiveIndicatorWidth: - case PM_ExclusiveIndicatorHeight: - ret = 13; - break; - - default: - ret = TQCommonStyle::tqpixelMetric( metric, widget ); - break; - } - return ret; -} - - -/*!\reimp -*/ -TQRect TQMotifStyle::querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& opt ) const -{ - switch ( control ) { - case CC_SpinWidget: { - if ( !widget ) - return TQRect(); - int fw = tqpixelMetric( PM_SpinBoxFrameWidth, 0 ); - TQSize bs; - bs.setHeight( widget->height()/2 ); - if ( bs.height() < 8 ) - bs.setHeight( 8 ); - bs.setWidth( TQMIN( bs.height() * 8 / 5, widget->width() / 4 ) ); // 1.6 -approximate golden mean - bs = bs.expandedTo( TQApplication::globalStrut() ); - int y = 0; - int x, lx, rx; - x = widget->width() - y - bs.width(); - lx = fw; - rx = x - fw * 2; - switch ( sc ) { - case SC_SpinWidgetUp: - return TQRect(x, y, bs.width(), bs.height()); - case SC_SpinWidgetDown: - return TQRect(x, y + bs.height(), bs.width(), bs.height()); - case SC_SpinWidgetButtonField: - return TQRect(x, y, bs.width(), widget->height() - 2*fw); - case SC_SpinWidgetEditField: - return TQRect(lx, fw, rx, widget->height() - 2*fw); - case SC_SpinWidgetFrame: - return TQRect( 0, 0, - widget->width() - bs.width(), widget->height() ); - default: - break; - } - break; } - -#ifndef TQT_NO_SLIDER - case CC_Slider: { - if (sc == SC_SliderHandle) { - const TQSlider * sl = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, sl ); - int thickness = tqpixelMetric( PM_SliderControlThickness, sl ); - int sliderPos = sl->sliderStart(); - int len = tqpixelMetric( PM_SliderLength, sl ); - int motifBorder = 3; - - if ( sl->orientation() == Qt::Horizontal ) - return TQRect( sliderPos + motifBorder, tickOffset + motifBorder, len, - thickness - 2*motifBorder ); - return TQRect( tickOffset + motifBorder, sliderPos + motifBorder, - thickness - 2*motifBorder, len ); - } - break; } -#endif - -#ifndef TQT_NO_SCROLLBAR - case CC_ScrollBar: { - if (! widget) - return TQRect(); - - const TQScrollBar *scrollbar = (const TQScrollBar *) widget; - int sliderstart = scrollbar->sliderStart(); - int sbextent = tqpixelMetric(PM_ScrollBarExtent, widget); - int fw = tqpixelMetric(PM_DefaultFrameWidth, widget); - int buttonw = sbextent - (fw * 2); - int buttonh = sbextent - (fw * 2); - int maxlen = ((scrollbar->orientation() == Qt::Horizontal) ? - scrollbar->width() : scrollbar->height()) - - (buttonw * 2) - (fw * 2); - int sliderlen; - - // calculate slider length - if (scrollbar->maxValue() != scrollbar->minValue()) { - uint range = scrollbar->maxValue() - scrollbar->minValue(); - sliderlen = (scrollbar->pageStep() * maxlen) / - (range + scrollbar->pageStep()); - - if ( sliderlen < 9 || range > INT_MAX/2 ) - sliderlen = 9; - if ( sliderlen > maxlen ) - sliderlen = maxlen; - } else - sliderlen = maxlen; - - switch (sc) { - case SC_ScrollBarSubLine: - // top/left button - if (scrollbar->orientation() == Qt::Horizontal) { - if ( scrollbar->width()/2 < sbextent ) - buttonw = scrollbar->width()/2 - (fw*2); - return TQRect(fw, fw, buttonw, buttonh); - } else { - if ( scrollbar->height()/2 < sbextent ) - buttonh = scrollbar->height()/2 - (fw*2); - return TQRect(fw, fw, buttonw, buttonh); - } - case SC_ScrollBarAddLine: - // bottom/right button - if (scrollbar->orientation() == Qt::Horizontal) { - if ( scrollbar->width()/2 < sbextent ) - buttonw = scrollbar->width()/2 - (fw*2); - return TQRect(scrollbar->width() - buttonw - fw, fw, - buttonw, buttonh); - } else { - if ( scrollbar->height()/2 < sbextent ) - buttonh = scrollbar->height()/2 - (fw*2); - return TQRect(fw, scrollbar->height() - buttonh - fw, - buttonw, buttonh); - } - case SC_ScrollBarSubPage: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(buttonw + fw, fw, sliderstart - buttonw - fw, buttonw); - return TQRect(fw, buttonw + fw, buttonw, sliderstart - buttonw - fw); - - case SC_ScrollBarAddPage: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sliderstart + sliderlen, fw, - maxlen - sliderstart - sliderlen + buttonw + fw, buttonw); - return TQRect(fw, sliderstart + sliderlen, buttonw, - maxlen - sliderstart - sliderlen + buttonw + fw); - - case SC_ScrollBarGroove: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(buttonw + fw, fw, maxlen, buttonw); - return TQRect(fw, buttonw + fw, buttonw, maxlen); - - case SC_ScrollBarSlider: - if (scrollbar->orientation() == Qt::Horizontal) - return TQRect(sliderstart, fw, sliderlen, buttonw); - return TQRect(fw, sliderstart, buttonw, sliderlen); - - default: - break; - } - break; } -#endif - -#ifndef TQT_NO_COMBOBOX - case CC_ComboBox: - - switch ( sc ) { - case SC_ComboBoxArrow: { - const TQComboBox * cb = (const TQComboBox *) widget; - int ew, awh, sh, dh, ax, ay, sy; - int fw = tqpixelMetric( PM_DefaultFrameWidth, cb ); - TQRect cr = cb->rect(); - cr.addCoords( fw, fw, -fw, -fw ); - get_combo_parameters( cr, ew, awh, ax, ay, sh, dh, sy ); - return TQRect( ax, ay, awh, awh ); } - - case SC_ComboBoxEditField: { - const TQComboBox * cb = (const TQComboBox *) widget; - int fw = tqpixelMetric( PM_DefaultFrameWidth, cb ); - TQRect rect = cb->rect(); - rect.addCoords( fw, fw, -fw, -fw ); - int ew = get_combo_extra_width( rect.height(), rect.width() ); - rect.addCoords( 1, 1, -1-ew, -1 ); - return rect; } - - default: - break; - } - break; -#endif - default: break; - } - return TQCommonStyle::querySubControlMetrics( control, widget, sc, opt ); -} - -/*!\reimp -*/ -TQSize TQMotifStyle::tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& opt ) const -{ - TQSize sz(contentsSize); - - switch(contents) { - case CT_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - sz = TQCommonStyle::tqsizeFromContents(contents, widget, contentsSize, opt); - if ((button->isDefault() || button->autoDefault()) && - sz.width() < 80 && ! button->pixmap()) - sz.setWidth(80); -#endif - break; - } - - case CT_PopupMenuItem: - { -#ifndef TQT_NO_POPUPMENU - if (! widget || opt.isDefault()) - break; - - const TQPopupMenu *popup = (TQPopupMenu *) widget; - bool checkable = popup->isCheckable(); - TQMenuItem *mi = opt.menuItem(); - int maxpmw = opt.maxIconWidth(); - int w = sz.width(), h = sz.height(); - - if (mi->custom()) { - w = mi->custom()->tqsizeHint().width(); - h = mi->custom()->tqsizeHint().height(); - if (! mi->custom()->fullSpan()) - h += 2*motifItemVMargin + 2*motifItemFrame; - } else if ( mi->widget() ) { - } else if ( mi->isSeparator() ) { - w = 10; - h = motifSepHeight; - } else if (mi->pixmap() || ! mi->text().isNull()) - h += 2*motifItemVMargin + 2*motifItemFrame; - - // a little bit of border can never harm - w += 2*motifItemHMargin + 2*motifItemFrame; - - if ( !mi->text().isNull() && mi->text().find('\t') >= 0 ) - // string contains tab - w += motifTabSpacing; - else if (mi->popup()) - // submenu indicator needs some room if we don't have a tab column - w += motifArrowHMargin + 4*motifItemFrame; - - if ( checkable && maxpmw <= 0) - // if we are checkable and have no iconsets, add space for a checkmark - w += motifCheckMarkSpace; - else if (checkable && maxpmw < motifCheckMarkSpace) - // make sure the check-column is wide enough if we have iconsets - w += (motifCheckMarkSpace - maxpmw); - - // if we have a check-column ( iconsets of checkmarks), add space - // to separate the columns - if ( maxpmw > 0 || checkable ) - w += motifCheckMarkHMargin; - - sz = TQSize(w, h); -#endif - break; - } - - default: - sz = TQCommonStyle::tqsizeFromContents( contents, widget, contentsSize, opt ); - break; - } - - return sz; -} - -/*!\reimp -*/ -TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const -{ - TQRect rect; - TQRect wrect = widget->rect(); - - switch ( r ) { - case SR_SliderFocusRect: - rect = TQCommonStyle::subRect( r, widget ); - rect.addCoords( 2, 2, -2, -2 ); - break; - - case SR_ComboBoxFocusRect: - { - int awh, ax, ay, sh, sy, dh, ew; - int fw = tqpixelMetric( PM_DefaultFrameWidth, widget ); - TQRect tr = wrect; - - tr.addCoords( fw, fw, -fw, -fw ); - get_combo_parameters( tr, ew, awh, ax, ay, sh, dh, sy ); - rect.setRect(ax-2, ay-2, awh+4, awh+sh+dh+4); - break; - } - - case SR_DockWindowHandleRect: - { -#ifndef TQT_NO_MAINWINDOW - if ( !widget || !widget->parent() ) - break; - - const TQDockWindow * dw = (const TQDockWindow *) widget->parent(); - if ( !dw->area() || !dw->isCloseEnabled() ) - rect.setRect( 0, 0, widget->width(), widget->height() ); - else { - if ( dw->area()->orientation() == Qt::Horizontal ) - rect.setRect(2, 15, widget->width()-2, widget->height() - 15); - else - rect.setRect(0, 2, widget->width() - 15, widget->height() - 2); - } -#endif - break; - } - - case SR_ProgressBarGroove: - case SR_ProgressBarContents: - { -#ifndef TQT_NO_PROGRESSBAR - TQFontMetrics fm( ( widget ? widget->fontMetrics() : - TQApplication::fontMetrics() ) ); - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - int textw = 0; - if (progressbar->percentageVisible()) - textw = fm.width("100%") + 6; - - if (progressbar->indicatorFollowsStyle() || - progressbar->centerIndicator()) - rect = wrect; - else - rect.setCoords(wrect.left(), wrect.top(), - wrect.right() - textw, wrect.bottom()); -#endif - break; - } - - case SR_ProgressBarLabel: - { -#ifndef TQT_NO_PROGRESSBAR - TQFontMetrics fm( ( widget ? widget->fontMetrics() : - TQApplication::fontMetrics() ) ); - const TQProgressBar *progressbar = (const TQProgressBar *) widget; - int textw = 0; - if (progressbar->percentageVisible()) - textw = fm.width("100%") + 6; - - if (progressbar->indicatorFollowsStyle() || - progressbar->centerIndicator()) - rect = wrect; - else - rect.setCoords(wrect.right() - textw, wrect.top(), - wrect.right(), wrect.bottom()); -#endif - break; - } - - case SR_CheckBoxContents: - { -#ifndef TQT_NO_CHECKBOX - TQRect ir = subRect(SR_CheckBoxIndicator, widget); - rect.setRect(ir.right() + 10, wrect.y(), - wrect.width() - ir.width() - 10, wrect.height()); -#endif - break; - } - - case SR_RadioButtonContents: - { - TQRect ir = subRect(SR_RadioButtonIndicator, widget); - rect.setRect(ir.right() + 10, wrect.y(), - wrect.width() - ir.width() - 10, wrect.height()); - break; - } - - default: - rect = TQCommonStyle::subRect( r, widget ); - } - - return rect; -} - -/*! \reimp -*/ -void TQMotifStyle::polishPopupMenu( TQPopupMenu* p) -{ -#ifndef TQT_NO_POPUPMENU - if ( !p->testWState( TQt::WState_Polished ) ) - p->setCheckable( FALSE ); -#endif -} - - -#ifndef TQT_NO_IMAGEIO_XPM -static const char * const qt_close_xpm[] = { -"12 12 2 1", -" s None c None", -". c black", -" ", -" ", -" . . ", -" ... ... ", -" ...... ", -" .... ", -" .... ", -" ...... ", -" ... ... ", -" . . ", -" ", -" "}; - -static const char * const qt_maximize_xpm[] = { -"12 12 2 1", -" s None c None", -". c black", -" ", -" ", -" ", -" . ", -" ... ", -" ..... ", -" ....... ", -" ......... ", -" ", -" ", -" ", -" "}; - -static const char * const qt_minimize_xpm[] = { -"12 12 2 1", -" s None c None", -". c black", -" ", -" ", -" ", -" ", -" ......... ", -" ....... ", -" ..... ", -" ... ", -" . ", -" ", -" ", -" "}; - -#if 0 // ### not used??? -static const char * const qt_normalize_xpm[] = { -"12 12 2 1", -" s None c None", -". c black", -" ", -" ", -" . ", -" .. ", -" ... ", -" .... ", -" ..... ", -" ...... ", -" ....... ", -" ", -" ", -" "}; -#endif - -static const char * const qt_normalizeup_xpm[] = { -"12 12 2 1", -" s None c None", -". c black", -" ", -" ", -" ", -" ....... ", -" ...... ", -" ..... ", -" .... ", -" ... ", -" .. ", -" . ", -" ", -" "}; - -static const char * const qt_shade_xpm[] = { -"12 12 2 1", "# c #000000", -". c None", -"............", -"............", -".#########..", -".#########..", -"............", -"............", -"............", -"............", -"............", -"............", -"............", -"............"}; - - -static const char * const qt_unshade_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"............", -".#########..", -".#########..", -".#.......#..", -".#.......#..", -".#.......#..", -".#.......#..", -".#.......#..", -".#########..", -"............", -"............"}; - - -static const char * dock_window_close_xpm[] = { -"8 8 2 1", -"# c #000000", -". c None", -"##....##", -".##..##.", -"..####..", -"...##...", -"..####..", -".##..##.", -"##....##", -"........"}; - -// Message box icons, from page 210 of the Windows style guide. - -// Hand-drawn to resemble Microsoft's icons, but in the Mac/Netscape palette. -// Thanks to TrueColor displays, it is slightly more efficient to have -// them duplicated. -/* XPM */ -static const char * const information_xpm[]={ -"32 32 5 1", -". c None", -"c c #000000", -"* c #999999", -"a c #ffffff", -"b c #0000ff", -"...........********.............", -"........***aaaaaaaa***..........", -"......**aaaaaaaaaaaaaa**........", -".....*aaaaaaaaaaaaaaaaaa*.......", -"....*aaaaaaaabbbbaaaaaaaac......", -"...*aaaaaaaabbbbbbaaaaaaaac.....", -"..*aaaaaaaaabbbbbbaaaaaaaaac....", -".*aaaaaaaaaaabbbbaaaaaaaaaaac...", -".*aaaaaaaaaaaaaaaaaaaaaaaaaac*..", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac*.", -"*aaaaaaaaaabbbbbbbaaaaaaaaaaac*.", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -".*aaaaaaaaaaabbbbbaaaaaaaaaac***", -".*aaaaaaaaaaabbbbbaaaaaaaaaac***", -"..*aaaaaaaaaabbbbbaaaaaaaaac***.", -"...caaaaaaabbbbbbbbbaaaaaac****.", -"....caaaaaaaaaaaaaaaaaaaac****..", -".....caaaaaaaaaaaaaaaaaac****...", -"......ccaaaaaaaaaaaaaacc****....", -".......*cccaaaaaaaaccc*****.....", -"........***cccaaaac*******......", -"..........****caaac*****........", -".............*caaac**...........", -"...............caac**...........", -"................cac**...........", -".................cc**...........", -"..................***...........", -"...................**..........."}; -/* XPM */ -static const char* const warning_xpm[]={ -"32 32 4 1", -". c None", -"a c #ffff00", -"* c #000000", -"b c #999999", -".............***................", -"............*aaa*...............", -"...........*aaaaa*b.............", -"...........*aaaaa*bb............", -"..........*aaaaaaa*bb...........", -"..........*aaaaaaa*bb...........", -".........*aaaaaaaaa*bb..........", -".........*aaaaaaaaa*bb..........", -"........*aaaaaaaaaaa*bb.........", -"........*aaaa***aaaa*bb.........", -".......*aaaa*****aaaa*bb........", -".......*aaaa*****aaaa*bb........", -"......*aaaaa*****aaaaa*bb.......", -"......*aaaaa*****aaaaa*bb.......", -".....*aaaaaa*****aaaaaa*bb......", -".....*aaaaaa*****aaaaaa*bb......", -"....*aaaaaaaa***aaaaaaaa*bb.....", -"....*aaaaaaaa***aaaaaaaa*bb.....", -"...*aaaaaaaaa***aaaaaaaaa*bb....", -"...*aaaaaaaaaa*aaaaaaaaaa*bb....", -"..*aaaaaaaaaaa*aaaaaaaaaaa*bb...", -"..*aaaaaaaaaaaaaaaaaaaaaaa*bb...", -".*aaaaaaaaaaaa**aaaaaaaaaaa*bb..", -".*aaaaaaaaaaa****aaaaaaaaaa*bb..", -"*aaaaaaaaaaaa****aaaaaaaaaaa*bb.", -"*aaaaaaaaaaaaa**aaaaaaaaaaaa*bb.", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb", -".*aaaaaaaaaaaaaaaaaaaaaaaaa*bbbb", -"..*************************bbbbb", -"....bbbbbbbbbbbbbbbbbbbbbbbbbbb.", -".....bbbbbbbbbbbbbbbbbbbbbbbbb.."}; -/* XPM */ -static const char* const critical_xpm[]={ -"32 32 4 1", -". c None", -"a c #999999", -"* c #ff0000", -"b c #ffffff", -"...........********.............", -".........************...........", -".......****************.........", -"......******************........", -".....********************a......", -"....**********************a.....", -"...************************a....", -"..*******b**********b*******a...", -"..******bbb********bbb******a...", -".******bbbbb******bbbbb******a..", -".*******bbbbb****bbbbb*******a..", -"*********bbbbb**bbbbb*********a.", -"**********bbbbbbbbbb**********a.", -"***********bbbbbbbb***********aa", -"************bbbbbb************aa", -"************bbbbbb************aa", -"***********bbbbbbbb***********aa", -"**********bbbbbbbbbb**********aa", -"*********bbbbb**bbbbb*********aa", -".*******bbbbb****bbbbb*******aa.", -".******bbbbb******bbbbb******aa.", -"..******bbb********bbb******aaa.", -"..*******b**********b*******aa..", -"...************************aaa..", -"....**********************aaa...", -"....a********************aaa....", -".....a******************aaa.....", -"......a****************aaa......", -".......aa************aaaa.......", -".........aa********aaaaa........", -"...........aaaaaaaaaaa..........", -".............aaaaaaa............"}; -/* XPM */ -static const char *const question_xpm[] = { -"32 32 5 1", -". c None", -"c c #000000", -"* c #999999", -"a c #ffffff", -"b c #0000ff", -"...........********.............", -"........***aaaaaaaa***..........", -"......**aaaaaaaaaaaaaa**........", -".....*aaaaaaaaaaaaaaaaaa*.......", -"....*aaaaaaaaaaaaaaaaaaaac......", -"...*aaaaaaaabbbbbbaaaaaaaac.....", -"..*aaaaaaaabaaabbbbaaaaaaaac....", -".*aaaaaaaabbaaaabbbbaaaaaaaac...", -".*aaaaaaaabbbbaabbbbaaaaaaaac*..", -"*aaaaaaaaabbbbaabbbbaaaaaaaaac*.", -"*aaaaaaaaaabbaabbbbaaaaaaaaaac*.", -"*aaaaaaaaaaaaabbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbbaaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac**", -".*aaaaaaaaaaaabbaaaaaaaaaaaac***", -".*aaaaaaaaaaabbbbaaaaaaaaaaac***", -"..*aaaaaaaaaabbbbaaaaaaaaaac***.", -"...caaaaaaaaaabbaaaaaaaaaac****.", -"....caaaaaaaaaaaaaaaaaaaac****..", -".....caaaaaaaaaaaaaaaaaac****...", -"......ccaaaaaaaaaaaaaacc****....", -".......*cccaaaaaaaaccc*****.....", -"........***cccaaaac*******......", -"..........****caaac*****........", -".............*caaac**...........", -"...............caac**...........", -"................cac**...........", -".................cc**...........", -"..................***...........", -"...................**...........", -}; -#endif - -/*! - \reimp - */ -TQPixmap TQMotifStyle::stylePixmap(StylePixmap sp, - const TQWidget *widget, - const TQStyleOption& opt) const -{ -#ifndef TQT_NO_IMAGEIO_XPM - switch (sp) { - case SP_TitleBarShadeButton: - return TQPixmap((const char **)qt_shade_xpm); - case SP_TitleBarUnshadeButton: - return TQPixmap((const char **)qt_unshade_xpm); - case SP_TitleBarNormalButton: - return TQPixmap((const char **)qt_normalizeup_xpm); - case SP_TitleBarMinButton: - return TQPixmap((const char **)qt_minimize_xpm); - case SP_TitleBarMaxButton: - return TQPixmap((const char **)qt_maximize_xpm); - case SP_TitleBarCloseButton: - return TQPixmap((const char **)qt_close_xpm); - case SP_DockWindowCloseButton: - return TQPixmap((const char **)dock_window_close_xpm ); - - case SP_MessageBoxInformation: - case SP_MessageBoxWarning: - case SP_MessageBoxCritical: - case SP_MessageBoxQuestion: - { - const char * const * xpm_data; - switch ( sp ) { - case SP_MessageBoxInformation: - xpm_data = information_xpm; - break; - case SP_MessageBoxWarning: - xpm_data = warning_xpm; - break; - case SP_MessageBoxCritical: - xpm_data = critical_xpm; - break; - case SP_MessageBoxQuestion: - xpm_data = question_xpm; - break; - default: - xpm_data = 0; - break; - } - TQPixmap pm; - if ( xpm_data ) { - TQImage image( (const char **) xpm_data); - // All that color looks ugly in Motif - TQColorGroup g = TQApplication::tqpalette().active(); - switch ( sp ) { - case SP_MessageBoxInformation: - case SP_MessageBoxQuestion: - image.setColor( 2, 0xff000000 | g.dark().rgb() ); - image.setColor( 3, 0xff000000 | g.base().rgb() ); - image.setColor( 4, 0xff000000 | g.text().rgb() ); - break; - case SP_MessageBoxWarning: - image.setColor( 1, 0xff000000 | g.base().rgb() ); - image.setColor( 2, 0xff000000 | g.text().rgb() ); - image.setColor( 3, 0xff000000 | g.dark().rgb() ); - break; - case SP_MessageBoxCritical: - image.setColor( 1, 0xff000000 | g.dark().rgb() ); - image.setColor( 2, 0xff000000 | g.text().rgb() ); - image.setColor( 3, 0xff000000 | g.base().rgb() ); - break; - default: - break; - } - pm.convertFromImage(image); - } - return pm; - } - - default: - break; - } -#endif - - return TQCommonStyle::stylePixmap(sp, widget, opt); -} - - -/*! \reimp */ -int TQMotifStyle::tqstyleHint(TQ_StyleHint hint, - const TQWidget *widget, - const TQStyleOption &opt, - TQStyleHintReturn *returnData) const -{ - int ret; - - switch (hint) { - case SH_GUIStyle: - ret = TQt::MotifStyle; - break; - - case SH_ScrollBar_BackgroundMode: - ret = TQt::PaletteMid; - break; - - case SH_ScrollBar_MiddleClickAbsolutePosition: - case SH_Slider_SloppyKeyEvents: - case SH_ProgressDialog_CenterCancelButton: - case SH_PopupMenu_SpaceActivatesItem: - case SH_ScrollView_FrameOnlyAroundContents: - ret = 1; - break; - - case SH_PopupMenu_SubMenuPopupDelay: - ret = 96; - break; - - case SH_ProgressDialog_TextLabelAlignment: - ret = TQt::AlignAuto | TQt::AlignVCenter; - break; - - case SH_ItemView_ChangeHighlightOnFocus: - ret = 0; - break; - - default: - ret = TQCommonStyle::tqstyleHint(hint, widget, opt, returnData); - break; - } - - return ret; -} - - -#endif diff --git a/tqtinterface/qt4/src/styles/tqmotifstyle.h b/tqtinterface/qt4/src/styles/tqmotifstyle.h deleted file mode 100644 index 28aac96..0000000 --- a/tqtinterface/qt4/src/styles/tqmotifstyle.h +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** -** -** Definition of Motif-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQMOTIFSTYLE_H -#define TQMOTIFSTYLE_H - -#ifndef TQT_H -#include "tqcommonstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_MOTIF) || defined(TQT_PLUGIN) - -class TQPalette; - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_MOTIF -#else -#define TQ_EXPORT_STYLE_MOTIF TQ_EXPORT -#endif - - -class TQ_EXPORT_STYLE_MOTIF TQMotifStyle : public TQCommonStyle -{ - Q_OBJECT - TQ_OBJECT -public: - TQMotifStyle( bool useHighlightCols=FALSE ); - virtual ~TQMotifStyle(); - - void setUseHighlightColors( bool ); - bool useHighlightColors() const; - - void polish( TQPalette& ); - void polish( TQWidget* ); - void polish( TQApplication* ); - - void polishPopupMenu( TQPopupMenu* ); - - // new style API - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget* widget, - const TQRect& r, - const TQColorGroup& cg, - SFlags how = Style_Default, -#ifdef TQ_TQDOC - SCFlags sub = SC_All, -#else - SCFlags sub = (uint)SC_All, -#endif - SCFlags subActive = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const; - - TQSize tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect subRect( SubRect r, const TQWidget *widget ) const; - - TQPixmap stylePixmap(StylePixmap, const TQWidget * = 0, const TQStyleOption& = TQStyleOption::Default) const; - - int tqstyleHint(TQ_StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default, - TQStyleHintReturn* = 0) const; - -private: - bool highlightCols; - - // Disabled copy constructor and operator= -#if defined(TQ_DISABLE_COPY) - TQMotifStyle( const TQMotifStyle & ); - TQMotifStyle& operator=( const TQMotifStyle & ); -#endif -}; - -#endif // TQT_NO_STYLE_MOTIF - -#endif // TQMOTIFSTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqplatinumstyle.cpp b/tqtinterface/qt4/src/styles/tqplatinumstyle.cpp deleted file mode 100644 index 2be69b0..0000000 --- a/tqtinterface/qt4/src/styles/tqplatinumstyle.cpp +++ /dev/null @@ -1,1557 +0,0 @@ -/**************************************************************************** -** -** Implementation of Platinum-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqplatinumstyle.h" - -#if !defined(TQT_NO_STYLE_PLATINUM) || defined(TQT_PLUGIN) - -#include "tqapplication.h" -#include "tqcombobox.h" -#include "tqdrawutil.h" -#include "tqpainter.h" -#include "tqpalette.h" -#include "tqpixmap.h" -#include "tqpushbutton.h" -#include "tqscrollbar.h" -#include "tqslider.h" -#include <limits.h> - -/*! - \class TQPlatinumStyle tqplatinumstyle.h - \brief The TQPlatinumStyle class provides Mac/Platinum look and feel. - - \ingroup appearance - - This class implements the Platinum look and feel. It's an - experimental class that tries to resemble a Macinosh-like GUI - style with the TQStyle system. The emulation is currently far from - perfect. - - \sa TQAquaStyle -*/ - - -/*! - Constructs a TQPlatinumStyle -*/ -TQPlatinumStyle::TQPlatinumStyle() -{ -} - -/*!\reimp -*/ -TQPlatinumStyle::~TQPlatinumStyle() -{ -} - - -/*!\reimp - */ -void TQPlatinumStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch (pe) { - case PE_HeaderSection: - { - // adjust the sunken flag, otherwise headers are drawn - // sunken... - if ( flags & Style_Sunken ) - flags ^= Style_Sunken; - tqdrawPrimitive( PE_ButtonBevel, p, r, cg, flags, opt ); - break; - } - case PE_ButtonTool: - { - // tool buttons don't change color when pushed in platinum, - // so we need to make the mid and button color the same - TQColorGroup myCG = cg; - TQBrush fill; - - // quick trick to make sure toolbuttons drawn sunken - // when they are activated... - if ( flags & Style_On ) - flags |= Style_Sunken; - - fill = myCG.brush( TQColorGroup::Button ); - myCG.setBrush( TQColorGroup::Mid, fill ); - tqdrawPrimitive( PE_ButtonBevel, p, r, myCG, flags, opt ); - break; - } - case PE_ButtonBevel: - { - int x, - y, - w, - h; - r.rect( &x, &y, &w, &h ); - - TQPen oldPen = p->pen(); - if ( w * h < 1600 || - TQABS(w - h) > 10 ) { - // small buttons - - if ( !(flags & (Style_Sunken | Style_Down)) ) { - p->fillRect( x + 2, y + 2, w - 4, h - 4, - cg.brush(TQColorGroup::Button) ); - // the bright side - p->setPen( cg.dark() ); - // the bright side - p->setPen( cg.dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.light() ); - p->drawLine( x + 1, y + 1, x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, y + h - 2 ); - - // the dark side - p->setPen( cg.mid() ); - p->drawLine( x + 2, y + h - 2, x + w - 2, y + h - 2 ); - p->drawLine( x + w - 2, y + 2, x + w - 2, y + h - 3 ); - - p->setPen( cg.dark().dark() ); - p->drawLine( x + 1, y + h - 1, x + w - 1, - y + h - 1 ); - p->drawLine( x + w - 1, y + 1, - x + w - 1, - y + h - 2 ); - } else { - p->fillRect(x + 2, y + 2, - w - 4, h - 4, - cg.brush( TQColorGroup::Mid )); - - // the dark side - p->setPen( cg.dark().dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.mid().dark()); - p->drawLine( x + 1, y + 1, - x + w-2, y + 1); - p->drawLine( x + 1, y + 1, - x + 1, y + h - 2 ); - - - // the bright side! - - p->setPen(cg.button()); - p->drawLine( x + 1, y + h - 2, - x + w - 2, - y + h - 2 ); - p->drawLine( x + w - 2, y + 1, - x + w - 2, - y + h - 2 ); - p->setPen(cg.dark()); - p->drawLine(x, y + h - 1, - x + w - 1, - y + h - 1 ); - p->drawLine(x + w - 1, y, - x + w - 1, - y + h - 1 ); - } - } else { - // big ones - if ( !(flags & (Style_Sunken | Style_Down)) ) { - p->fillRect( x + 3, y + 3, w - 6, - h - 6, - cg.brush(TQColorGroup::Button) ); - - // the bright side - p->setPen( cg.button().dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.button() ); - p->drawLine( x + 1, y + 1, - x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, - x + 1, y + h - 2 ); - - p->setPen( cg.light() ); - p->drawLine( x + 2, y + 2, - x + 2, y + h - 2 ); - p->drawLine( x + 2, y + 2, - x + w - 2, y + 2 ); - // the dark side! - - p->setPen( cg.mid() ); - p->drawLine( x + 3, y + h - 3, - x + w - 3, - y + h - 3 ); - p->drawLine( x + w - 3, y + 3, - x + w - 3, - y + h - 3 ); - p->setPen( cg.dark() ); - p->drawLine( x + 2, y + h - 2, - x + w - 2, - y + h - 2 ); - p->drawLine( x + w - 2, y + 2, - x + w - 2, - y + h - 2 ); - - p->setPen( cg.dark().dark() ); - p->drawLine( x + 1, y + h - 1, - x + w - 1, - y + h - 1 ); - p->drawLine( x + w - 1, y + 1, - x + w - 1, - y + h - 1 ); - } else { - p->fillRect( x + 3, y + 3, w - 6, - h - 6, - cg.brush( TQColorGroup::Mid ) ); - - // the dark side - p->setPen( cg.dark().dark().dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.dark().dark() ); - p->drawLine( x + 1, y + 1, - x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, - x + 1, y + h - 2 ); - - p->setPen( cg.mid().dark() ); - p->drawLine( x + 2, y + 2, - x + 2, y + w - 2 ); - p->drawLine( x + 2, y + 2, - x + w - 2, y + 2 ); - - - // the bright side! - - p->setPen( cg.button() ); - p->drawLine( x + 2, y + h - 3, - x + w - 3, - y + h - 3 ); - p->drawLine( x + w - 3, y + 3, - x + w - 3, - y + h - 3 ); - - p->setPen( cg.midlight() ); - p->drawLine( x + 1, y + h - 2, - x + w - 2, - y + h - 2 ); - p->drawLine( x + w - 2, y + 1, - x + w - 2, - y + h - 2 ); - - p->setPen( cg.dark() ); - p->drawLine( x, y + h - 1, - x + w - 1, - y + h - 1 ); - p->drawLine( x + w - 1, y, - x + w - 1, - y + h - 1 ); - - - // corners - p->setPen( mixedColor(cg.dark().dark().dark(), - cg.dark()) ); - p->drawPoint( x, y + h - 1 ); - p->drawPoint( x + w - 1, y ); - - p->setPen( mixedColor(cg.dark().dark(), cg.midlight()) ); - p->drawPoint( x + 1, y + h - 2 ); - p->drawPoint( x + w - 2, y + 1 ); - - p->setPen( mixedColor(cg.mid().dark(), cg.button() ) ); - p->drawPoint( x + 2, y + h - 3 ); - p->drawPoint( x + w - 3, y + 2 ); - } - } - p->setPen( oldPen ); - break; - } - case PE_ButtonCommand: - { - TQPen oldPen = p->pen(); - int x, - y, - w, - h; - r.rect( &x, &y, &w, &h); - - if ( !(flags & (Style_Down | Style_On)) ) { - p->fillRect( x+3, y+3, w-6, h-6, - cg.brush( TQColorGroup::Button )); - // the bright side - p->setPen( cg.shadow() ); - p->drawLine( x, y, x+w-1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.button() ); - p->drawLine( x + 1, y + 1, x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, y + h - 2 ); - - p->setPen( cg.light() ); - p->drawLine( x + 2, y + 2, x + 2, y + h - 2 ); - p->drawLine( x + 2, y + 2, x + w - 2, y + 2 ); - - - // the dark side! - - p->setPen( cg.mid() ); - p->drawLine( x + 3, y + h - 3 ,x + w - 3, y + h - 3 ); - p->drawLine( x + w - 3, y + 3, x + w - 3, y + h - 3 ); - - p->setPen( cg.dark() ); - p->drawLine( x + 2, y + h - 2, x + w - 2, y + h - 2 ); - p->drawLine( x + w - 2, y + 2, x + w - 2, y + h - 2 ); - - p->setPen( cg.shadow() ); - p->drawLine( x + 1, y + h - 1, x + w - 1, y + h - 1 ); - p->drawLine( x + w - 1, y, x + w - 1, y + h - 1 ); - - - // top left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y ); - p->drawPoint( x + 1, y ); - p->drawPoint( x, y+1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + 1 ); - p->setPen( cg.button() ); - p->drawPoint( x + 2, y + 2 ); - p->setPen( Qt::white ); - p->drawPoint( x + 3, y + 3 ); - // bottom left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y + h - 1 ); - p->drawPoint( x + 1, y + h - 1 ); - p->drawPoint( x, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + h - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( x + 2, y + h - 3 ); - // top right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w -1, y ); - p->drawPoint( x + w - 2, y ); - p->drawPoint( x + w - 1, y + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + 1 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 3, y + 2 ); - // bottom right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y + h - 1 ); - p->drawPoint( x + w - 2, y + h - 1 ); - p->drawPoint( x + w - 1, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + h - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 3, y + h - 3 ); - p->setPen( cg.mid() ); - p->drawPoint( x + w - 4, y + h - 4 ); - - } else { - p->fillRect( x + 2, y + 2, w - 4, h - 4, - cg.brush(TQColorGroup::Dark) ); - - // the dark side - p->setPen( cg.shadow() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.dark().dark() ); - p->drawLine( x + 1, y + 1, x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, y + h - 2 ); - - // the bright side! - - p->setPen( cg.button() ); - p->drawLine( x + 1, y + h - 2, x + w - 2, y + h - 2 ); - p->drawLine( x + w - 2, y + 1, x + w - 2, y + h - 2 ); - - p->setPen( cg.dark() ); - p->drawLine( x, y + h - 1, x + w - 1, y + h - 1 ); - p->drawLine( x + w - 1, y, x + w - 1, y + h - 1 ); - - // top left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y ); - p->drawPoint( x + 1, y ); - p->drawPoint( x, y + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + 1 ); - p->setPen( cg.dark().dark() ); - p->drawPoint( x + 3, y + 3 ); - // bottom left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y + h - 1 ); - p->drawPoint( x + 1, y + h - 1 ); - p->drawPoint( x, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + h - 2 ); - // top right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y ); - p->drawPoint( x + w - 2, y ); - p->drawPoint( x + w - 1, y + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + 1 ); - // bottom right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y + h - 1 ); - p->drawPoint( x + w - 2, y + h - 1 ); - p->drawPoint( x + w - 1, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + h - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 3, y + h - 3 ); - p->setPen( cg.mid() ); - p->drawPoint( x + w - 4, y + h - 4 ); - } - p->setPen( oldPen ); - break; - } - case PE_Indicator: - { - tqdrawPrimitive( PE_ButtonBevel, p, TQRect(r.x(), r.y(), - r.width() - 2, r.height()), - cg, flags ); - p->fillRect( r.x() + r.width() - 2, r.y(), 2, r.height(), - cg.brush( TQColorGroup::Background ) ); - p->setPen( cg.shadow() ); - p->drawRect( r.x(), r.y(), r.width() - 2, r.height() ); - - static const TQCOORD nochange_mark[] = { 3,5, 9,5, 3,6, 9,6 }; - static const TQCOORD check_mark[] = { - 3,5, 5,5, 4,6, 5,6, 5,7, 6,7, 5,8, 6,8, 6,9, 9,9, - 6,10, 8,10, 7,11, 8,11, 7,12, 7,12, 8,8, 9,8, 8,7, 10,7, - 9,6, 10,6, 9,5, 11,5, 10,4, 11,4, 10,3, 12,3, - 11,2, 12,2, 11,1, 13,1, 12,0, 13,0 }; - if ( !(flags & Style_Off) ) { - TQPen oldPen = p->pen(); - int x1 = r.x(); - int y1 = r.y(); - if ( flags & Style_Down ) { - x1++; - y1++; - } - TQPointArray amark; - if ( flags & Style_On ) { - amark = TQPointArray( sizeof(check_mark)/(sizeof(TQCOORD)*2), - check_mark ); - // ### KLUDGE!! - flags ^= Style_On; - flags ^= Style_Down; - } else if ( flags & Style_NoChange ) { - amark = TQPointArray( sizeof(nochange_mark) - / (sizeof(TQCOORD) * 2), - nochange_mark ); - } - - amark.translate( x1 + 1, y1 + 1 ); - p->setPen( cg.dark() ); - p->drawLineSegments( amark ); - amark.translate( -1, -1 ); - p->setPen( cg.foreground() ); - p->drawLineSegments( amark ); - p->setPen( oldPen ); - } - break; - } - case PE_IndicatorMask: - { - int x, - y, - w, - h; - r.rect( &x, &y, &w, &h ); - p->fillRect( x, y, w - 2, h, Qt::color1); - if ( flags & Style_Off ) { - TQPen oldPen = p->pen(); - p->setPen ( TQPen(Qt::color1, 2)); - p->drawLine( x + 2, y + h / 2 - 1, - x + w / 2 - 1, y + h - 4 ); - p->drawLine( x + w / 2 - 1, y + h - 4, - x + w, 0); - p->setPen( oldPen ); - } - break; - } - case PE_ExclusiveIndicator: - { -#define TQCOORDARRLEN(x) sizeof(x) / (sizeof(TQCOORD) * 2 ) - bool down = flags & Style_Down; - bool on = flags & Style_On; - - static const TQCOORD pts1[] = { // normal circle - 5,0, 8,0, 9,1, 10,1, 11,2, 12,3, 12,4, 13,5, - 13,8, 12,9, 12,10, 11,11, 10,12, 9,12, 8,13, - 5,13, 4,12, 3,12, 2,11, 1,10, 1,9, 0,8, 0,5, - 1,4, 1,3, 2,2, 3,1, 4,1 }; - static const TQCOORD pts2[] = { // top left shadow - 5,1, 8,1, 3,2, 7,2, 2,3, 5,3, 2,4, 4,4, - 1,5, 3,5, 1,6, 1,8, 2,6, 2,7 }; - static const TQCOORD pts3[] = { // bottom right, dark - 5,12, 8,12, 7,11, 10,11, 8,10, 11,10, - 9,9, 11,9, 10,8, 12,8, 11,7, 11,7, - 12,5, 12,7 }; - static const TQCOORD pts4[] = { // bottom right, light - 5,12, 8,12, 7,11, 10,11, 9,10, 11,10, - 10,9, 11,9, 11,7, 11,8, 12,5, 12,8 }; - static const TQCOORD pts5[] = { // check mark - 6,4, 8,4, 10,6, 10,8, 8,10, 6,10, 4,8, 4,6 }; - static const TQCOORD pts6[] = { // check mark extras - 4,5, 5,4, 9,4, 10,5, 10,9, 9,10, 5,10, 4,9 }; - int x, y; - x = r.x(); - y = r.y(); - p->eraseRect( r ); - p->setBrush( (down||on) ? cg.brush( TQColorGroup::Dark ) - : cg.brush( TQColorGroup::Button) ); - p->setPen( Qt::NoPen ); - p->drawEllipse( x, y, 13, 13 ); - p->setPen( cg.shadow() ); - TQPointArray a( TQCOORDARRLEN(pts1), pts1 ); - a.translate( x, y ); - p->drawPolyline( a ); // draw normal circle - TQColor tc, bc; - const TQCOORD *bp; - int bl; - if ( down || on ) { // pressed down or on - tc = cg.dark().dark(); - bc = cg.light(); - bp = pts4; - bl = TQCOORDARRLEN(pts4); - } else { // released - tc = cg.light(); - bc = cg.dark(); - bp = pts3; - bl = TQCOORDARRLEN(pts3); - } - p->setPen( tc ); - a.setPoints( TQCOORDARRLEN(pts2), pts2 ); - a.translate( x, y ); - p->drawLineSegments( a ); // draw top shadow - p->setPen( bc ); - a.setPoints( bl, bp ); - a.translate( x, y ); - p->drawLineSegments( a ); - if ( on ) { // draw check mark - int x1 = x, - y1 = y; - p->setBrush( cg.foreground() ); - p->setPen( cg.foreground() ); - a.setPoints( TQCOORDARRLEN(pts5), pts5 ); - a.translate( x1, y1 ); - p->drawPolygon( a ); - p->setBrush( Qt::NoBrush ); - p->setPen( cg.dark() ); - a.setPoints( TQCOORDARRLEN(pts6), pts6 ); - a.translate( x1, y1 ); - p->drawLineSegments( a ); - } - break; - } - - case PE_ExclusiveIndicatorMask: - { - static const TQCOORD pts1[] = { // normal circle - 5,0, 8,0, 9,1, 10,1, 11,2, 12,3, 12,4, 13,5, - 13,8, 12,9, 12,10, 11,11, 10,12, 9,12, 8,13, - 5,13, 4,12, 3,12, 2,11, 1,10, 1,9, 0,8, 0,5, - 1,4, 1,3, 2,2, 3,1, 4,1 }; - TQPointArray a(TQCOORDARRLEN(pts1), pts1); - a.translate(r.x(), r.y()); - p->setPen(Qt::color1); - p->setBrush(Qt::color1); - p->drawPolygon(a); - break; - } - case PE_ScrollBarAddLine: - { - tqdrawPrimitive( PE_ButtonBevel, p, r, cg, - (flags & Style_Enabled) | ((flags & Style_Down) - ? Style_Sunken - : Style_Raised) ); - p->setPen( cg.shadow() ); - p->drawRect( r ); - tqdrawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowRight - : PE_ArrowDown), p, TQRect(r.x() + 2, - r.y() + 2, - r.width() - 4, - r.height() - 4), - cg, flags ); - break; - } - case PE_ScrollBarSubLine: - { - tqdrawPrimitive( PE_ButtonBevel, p, r, cg, - (flags & Style_Enabled) | ((flags & Style_Down) - ? Style_Sunken - : Style_Raised) ); - p->setPen( cg.shadow() ); - p->drawRect( r ); - tqdrawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowLeft - : PE_ArrowUp ), p, TQRect(r.x() + 2, - r.y() + 2, - r.width() - 4, - r.height() - 4), - cg, flags ); - break; - } - case PE_ScrollBarAddPage: - case PE_ScrollBarSubPage: - { - TQPen oldPen = p->pen(); - if ( r.width() < 3 || r.height() < 3 ) { - p->fillRect( r, cg.brush(TQColorGroup::Mid) ); - p->setPen( cg.shadow() ); - p->drawRect( r ); - p->setPen( oldPen ); - } else { - int x, - y, - w, - h; - r.rect( &x, &y, &w, &h ); - if ( flags & Style_Horizontal ) { - p->fillRect( x + 2, y + 2, w - 2, - h - 4, - cg.brush(TQColorGroup::Mid) ); - // the dark side - p->setPen( cg.dark().dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->setPen( cg.shadow()); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.mid().dark()); - p->drawLine( x + 1, y + 1, x + w - 1, - y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, - y + h - 2 ); - - // the bright side! - - p->setPen( cg.button()); - p->drawLine( x + 1, y + h - 2, - x + w - 1, - y + h - 2 ); - p->setPen( cg.shadow()); - p->drawLine( x, y + h - 1, - x + w - 1, - y + h - 1 ); - - } else { - p->fillRect( x + 2, y + 2, w - 4, - h - 2, - cg.brush(TQColorGroup::Mid) ); - - // the dark side - p->setPen( cg.dark().dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->setPen( cg.shadow() ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.mid().dark() ); - p->drawLine( x + 1, y + 1, x + w - 2, - y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, - y + h - 1 ); - - // the bright side! - p->setPen( cg.button() ); - p->drawLine( x + w - 2, y + 1, - x + w - 2, - y + h - 1 ); - - p->setPen( cg.shadow() ); - p->drawLine( x + w - 1, y, - x + w - 1, - y + h - 1 ); - - } - } - p->setPen( oldPen ); - break; - } - case PE_ScrollBarSlider: - { - TQPoint bo = p->brushOrigin(); - p->setBrushOrigin( r.topLeft() ); - tqdrawPrimitive( PE_ButtonBevel, p, r, cg, Style_Raised ); - p->setBrushOrigin( bo ); - drawRiffles( p, r.x(), r.y(), r.width(), r.height(), cg, - flags & Style_Horizontal ); - p->setPen( cg.shadow() ); - p->drawRect( r ); - if ( flags & Style_HasFocus ) { - tqdrawPrimitive( PE_FocusRect, p, TQRect(r.x() + 2, r.y() + 2, - r.width() - 5, - r.height() - 5 ), - cg, flags ); - } - break; - } - default: - TQWindowsStyle::tqdrawPrimitive( pe, p, r, cg, flags, opt ); - break; - } - -} - -/*!\reimp - */ -void TQPlatinumStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how, - const TQStyleOption& opt ) const -{ - switch( element ) { - case CE_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - TQColorGroup myCg( cg ); - const TQPushButton *btn; - int x1, y1, x2, y2; - bool useBevelButton; - SFlags flags; - flags = Style_Default; - btn = (const TQPushButton*)widget; - p->setBrushOrigin( -widget->backgroundOffset().x(), - -widget->backgroundOffset().y() ); - - // take care of the flags based on what we know... - if ( btn->isDown() ) - flags |= Style_Down; - if ( btn->isOn() ) - flags |= Style_On; - if ( btn->isEnabled() ) - flags |= Style_Enabled; - if ( btn->isDefault() ) - flags |= Style_Default; - if (! btn->isFlat() && !(flags & Style_Down)) - flags |= Style_Raised; - - r.coords( &x1, &y1, &x2, &y2 ); - - p->setPen( cg.foreground() ); - p->setBrush( TQBrush(cg.button(), Qt::NoBrush) ); - - TQBrush fill; - if ( btn->isDown() ) { - fill = cg.brush( TQColorGroup::Dark ); - // this could be done differently, but this - // makes a down Bezel drawn correctly... - myCg.setBrush( TQColorGroup::Mid, fill ); - } else if ( btn->isOn() ) { - fill = TQBrush( cg.mid(), Qt::Dense4Pattern ); - myCg.setBrush( TQColorGroup::Mid, fill ); - } - // to quote the old TQPlatinumStlye drawPushButton... - // small or square image buttons as well as toggle buttons are - // bevel buttons (what a heuristic....) - if ( btn->isToggleButton() - || ( btn->pixmap() && - (btn->width() * btn->height() < 1600 || - TQABS( btn->width() - btn->height()) < 10 )) ) - useBevelButton = TRUE; - else - useBevelButton = FALSE; - - int diw = tqpixelMetric( PM_ButtonDefaultIndicator, widget ); - if ( btn->isDefault() ) { - x1 += 1; - y1 += 1; - x2 -= 1; - y2 -= 1; - TQColorGroup cg2( myCg ); - SFlags myFlags = flags; - // don't draw the default button sunken, unless it's necessary. - if ( myFlags & Style_Down ) - myFlags ^= Style_Down; - if ( myFlags & Style_Sunken ) - myFlags ^= Style_Sunken; - - cg2.setColor( TQColorGroup::Button, cg.mid() ); - if ( useBevelButton ) { - tqdrawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1, - x2 - x1 + 1, - y2 - y1 + 1 ), - myCg, myFlags, opt ); - } else { - tqdrawPrimitive( PE_ButtonCommand, p, TQRect( x1, y1, - x2 - x1 + 1, - y2 - y1 + 1 ), - cg2, myFlags, opt ); - } - } - - if ( btn->isDefault() || btn->autoDefault() ) { - x1 += diw; - y1 += diw; - x2 -= diw; - y2 -= diw; - } - - if ( !btn->isFlat() || btn->isOn() || btn->isDown() ) { - if ( useBevelButton ) { - // fix for toggle buttons... - if ( flags & (Style_Down | Style_On) ) - flags |= Style_Sunken; - tqdrawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1, - x2 - x1 + 1, - y2 - y1 + 1 ), - myCg, flags, opt ); - } else { - - tqdrawPrimitive( PE_ButtonCommand, p, TQRect( x1, y1, - x2 - x1 + 1, - y2 - y1 + 1 ), - myCg, flags, opt ); - } - } - - - if ( p->brush().style() != Qt::NoBrush ) - p->setBrush( Qt::NoBrush ); - break; -#endif - } - case CE_PushButtonLabel: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *btn; - bool on; - int x, y, w, h; - SFlags flags; - flags = Style_Default; - btn = (const TQPushButton*)widget; - on = btn->isDown() || btn->isOn(); - r.rect( &x, &y, &w, &h ); - if ( btn->isMenuButton() ) { - int dx = tqpixelMetric( PM_MenuButtonIndicator, widget ); - - TQColorGroup g = cg; - int xx = x + w - dx - 4; - int yy = y - 3; - int hh = h + 6; - - if ( !on ) { - p->setPen( g.mid() ); - p->drawLine( xx, yy + 2, xx, yy + hh - 3 ); - p->setPen( g.button() ); - p->drawLine( xx + 1, yy + 1, xx + 1, yy + hh - 2 ); - p->setPen( g.light() ); - p->drawLine( xx + 2, yy + 2, xx + 2, yy + hh - 2 ); - } - if ( btn->isEnabled() ) - flags |= Style_Enabled; - tqdrawPrimitive( PE_ArrowDown, p, TQRect(x + w - dx - 1, y + 2, - dx, h - 4), - g, flags, opt ); - w -= dx; - } -#ifndef TQT_NO_ICONSET - if ( btn->iconSet() && !btn->iconSet()->isNull() ) { - TQIconSet::Mode mode = btn->isEnabled() - ? TQIconSet::Normal : TQIconSet::Disabled; - if ( mode == TQIconSet::Normal && btn->hasFocus() ) - mode = TQIconSet::Active; - TQIconSet::State state = TQIconSet::Off; - if ( btn->isToggleButton() && btn->isOn() ) - state = TQIconSet::On; - TQPixmap pixmap = btn->iconSet()->pixmap( TQIconSet::Small, - mode, state ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - p->drawPixmap( x + 2, y + h / 2 - pixh / 2, pixmap ); - x += pixw + 4; - w -= pixw + 4; - } -#endif - drawItem( p, TQRect( x, y, w, h ), - TQt::AlignCenter | TQt::ShowPrefix, - btn->tqcolorGroup(), btn->isEnabled(), - btn->pixmap(), btn->text(), -1, - on ? TQT_TQCOLOR_CONST(&btn->tqcolorGroup().brightText()) - : TQT_TQCOLOR_CONST(&btn->tqcolorGroup().buttonText()) ); - if ( btn->hasFocus() ) - tqdrawPrimitive( PE_FocusRect, p, - subRect(SR_PushButtonFocusRect, widget), - cg, flags ); - break; -#endif - } - default: - TQWindowsStyle::tqdrawControl( element, p, widget, r, cg, how, opt ); - break; - } -} - -/*!\reimp - */ -void TQPlatinumStyle::tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how, - SCFlags sub, - SCFlags subActive, - const TQStyleOption& opt ) const -{ - switch ( control ) { - case CC_ComboBox: - { - int x, - y, - w, - h; - r.rect( &x, &y, &w, &h ); - p->fillRect( x + 2, y + 2, w - 4, - h - 4, cg.brush(TQColorGroup::Button) ); - // the bright side - p->setPen(cg.shadow()); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.light() ); - p->drawLine( x + 1, y + 1, - x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, - x + 1, y + h - 2 ); - - // the dark side! - - - p->setPen( cg.mid() ); - p->drawLine( x + 2, y + h - 2, - x + w - 2, y + h - 2 ); - p->drawLine( x + w - 2, y + 2, - x + w - 2, y + h - 2 ); - - p->setPen (cg.shadow() ); - p->drawLine( x + 1, y + h - 1, - x + w - 1, y + h - 1 ); - p->drawLine( x + w - 1, y, - x + w - 1, y + h - 1 ); - - // top left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y ); - p->drawPoint( x + 1, y ); - p->drawPoint( x, y + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + 1 ); - p->setPen( Qt::white ); - p->drawPoint( x + 3, y + 3 ); - // bottom left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y + h - 1 ); - p->drawPoint( x + 1, y + h - 1 ); - p->drawPoint( x, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + 1, y + h - 2 ); - // top right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y ); - p->drawPoint( x + w - 2, y ); - p->drawPoint( x + w - 1, y + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + 1 ); - // bottom right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y + h - 1 ); - p->drawPoint( x + w - 2, y + h - 1 ); - p->drawPoint( x + w - 1, y + h - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( x + w - 2, y + h - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 3, y + h - 3 ); - - if ( sub & SC_ComboBoxArrow ) { - TQRect rTmp = querySubControlMetrics( CC_ComboBox, widget, - SC_ComboBoxArrow, opt ); - int xx = rTmp.x(), - yy = rTmp.y(), - ww = rTmp.width(), - hh = rTmp.height(); - // the bright side - - p->setPen( cg.mid() ); - p->drawLine( xx, yy+2, xx, yy+hh-3 ); - - p->setPen( cg.button() ); - p->drawLine( xx+1, yy+1, xx+ww-2, yy+1 ); - p->drawLine( xx+1, yy+1, xx+1, yy+hh-2 ); - - p->setPen( cg.light() ); - p->drawLine( xx+2, yy+2, xx+2, yy+hh-2 ); - p->drawLine( xx+2, yy+2, xx+ww-2, yy+2 ); - - - // the dark side! - - p->setPen( cg.mid() ); - p->drawLine( xx+3, yy+hh-3 ,xx+ww-3, yy+hh-3 ); - p->drawLine( xx+ww-3, yy+3, xx+ww-3, yy+hh-3 ); - - p->setPen( cg.dark() ); - p->drawLine( xx+2, yy+hh-2 ,xx+ww-2, yy+hh-2 ); - p->drawLine( xx+ww-2, yy+2, xx+ww-2, yy+hh-2 ); - - p->setPen( cg.shadow() ); - p->drawLine( xx+1, yy+hh-1,xx+ww-1, yy+hh-1 ); - p->drawLine( xx+ww-1, yy, xx+ww-1, yy+hh-1 ); - - // top right corner: - p->setPen( cg.background() ); - p->drawPoint( xx + ww - 1, yy ); - p->drawPoint( xx + ww - 2, yy ); - p->drawPoint( xx + ww - 1, yy + 1 ); - p->setPen( cg.shadow() ); - p->drawPoint( xx + ww - 2, yy + 1 ); - // bottom right corner: - p->setPen( cg.background() ); - p->drawPoint( xx + ww - 1, yy + hh - 1 ); - p->drawPoint( xx + ww - 2, yy + hh - 1 ); - p->drawPoint( xx + ww - 1, yy + hh - 2 ); - p->setPen( cg.shadow() ); - p->drawPoint( xx + ww - 2, yy + hh - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( xx + ww - 3, yy + hh - 3 ); - p->setPen( cg.mid() ); - p->drawPoint( xx + ww - 4, yy + hh - 4 ); - - // and the arrows - p->setPen( cg.foreground() ); - TQPointArray a ; - a.setPoints( 7, -3,1, 3,1, -2,0, 2,0, -1,-1, 1,-1, 0,-2 ); - a.translate( xx + ww / 2, yy + hh / 2 - 3 ); - p->drawLineSegments( a, 0, 3 ); // draw arrow - p->drawPoint( a[6] ); - a.setPoints( 7, -3,-1, 3,-1, -2,0, 2,0, -1,1, 1,1, 0,2 ); - a.translate( xx + ww / 2, yy + hh / 2 + 2 ); - p->drawLineSegments( a, 0, 3 ); // draw arrow - p->drawPoint( a[6] ); - - } -#ifndef TQT_NO_COMBOBOX - if ( sub & SC_ComboBoxEditField ) { - const TQComboBox *cmb; - cmb = (const TQComboBox*)widget; - // sadly this is pretty much the windows code, except - // for the first fillRect call... - TQRect re = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, - widget, - SC_ComboBoxEditField ), - widget ); - if ( cmb->hasFocus() && !cmb->editable() ) - p->fillRect( re.x() + 1, re.y() + 1, - re.width() - 2, re.height() - 2, - cg.brush( TQColorGroup::Highlight ) ); - - if ( cmb->hasFocus() ) { - p->setPen( cg.highlightedText() ); - p->setBackgroundColor( cg.highlight() ); - } else { - p->setPen( cg.text() ); - p->setBackgroundColor( cg.background() ); - } - - if ( cmb->hasFocus() && !cmb->editable() ) { - TQRect re = - TQStyle::tqvisualRect( subRect( SR_ComboBoxFocusRect, - cmb ), - widget ); - tqdrawPrimitive( PE_FocusRect, p, re, cg, - Style_FocusAtBorder, - TQStyleOption(cg.highlight())); - } - if ( cmb->editable() ) { - // need this for the moment... - // was the code in comboButton rect - TQRect ir( x + 3, y + 3, - w - 6 - 16, h - 6 ); - if ( TQApplication::reverseLayout() ) - ir.moveBy( 16, 0 ); - // end comboButtonRect... - ir.setRect( ir.left() - 1, ir.top() - 1, ir.width() + 2, - ir.height() + 2 ); - qDrawShadePanel( p, ir, cg, TRUE, 2, 0 ); - } - } -#endif - break; - } - case CC_Slider: - { -#ifndef TQT_NO_SLIDER - const TQSlider *slider = (const TQSlider *) widget; - int thickness = tqpixelMetric( PM_SliderControlThickness, widget ); - int len = tqpixelMetric( PM_SliderLength, widget ); - int ticks = slider->tickmarks(); - - TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove, - opt), - handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle, - opt); - - if ((sub & SC_SliderGroove) && groove.isValid()) { - p->fillRect( groove, cg.brush(TQColorGroup::Background) ); - - int x, y, w, h; - int mid = thickness / 2; - - if ( ticks & TQSlider::Above ) - mid += len / 8; - if ( ticks & TQSlider::Below ) - mid -= len / 8; - - if ( slider->orientation() == Qt::Horizontal ) { - x = 0; - y = groove.y() + mid - 3; - w = slider->width(); - h = 7; - } else { - x = groove.x() + mid - 3; - y = 0; - w = 7; - h = slider->height(); - } - - p->fillRect( x, y, w, h, cg.brush( TQColorGroup::Dark )); - // the dark side - p->setPen( cg.dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1); - p->setPen( cg.shadow() ); - p->drawLine( x + 1, y + 1, x + w - 2, y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, y + h - 2 ); - // the bright side! - p->setPen(cg.shadow()); - p->drawLine( x + 1, y + h - 2, x + w - 2, y + h - 2 ); - p->drawLine( x + w - 2, y + 1, x + w - 2, y + h - 2 ); - p->setPen( cg.light() ); - p->drawLine( x, y + h - 1, x + w - 1, y + h - 1 ); - p->drawLine( x + w - 1, y, x + w - 1, y + h - 1 ); - // top left corner: - p->setPen(cg.background()); - p->drawPoint( x, y ); - p->drawPoint( x + 1, y ); - p->drawPoint( x, y + 1 ); - p->setPen(cg.shadow()); - p->drawPoint( x + 1, y + 1 ); - // bottom left corner: - p->setPen( cg.background() ); - p->drawPoint( x, y + h - 1 ); - p->drawPoint( x + 1, y + h - 1 ); - p->drawPoint( x, y + h - 2 ); - p->setPen( cg.light() ); - p->drawPoint( x + 1, y + h - 2 ); - // top right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y ); - p->drawPoint( x + w - 2, y ); - p->drawPoint( x + w - 1, y + 1 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 2, y + 1 ); - // bottom right corner: - p->setPen( cg.background() ); - p->drawPoint( x + w - 1, y + h - 1 ); - p->drawPoint( x + w - 2, y + h - 1 ); - p->drawPoint( x + w - 1, y + h - 2 ); - p->setPen( cg.light() ); - p->drawPoint( x + w - 2, y + h - 2 ); - p->setPen( cg.dark() ); - p->drawPoint( x + w - 3, y + h - 3 ); - // ### end slider groove - - if ( how & Style_HasFocus ) - tqdrawPrimitive( PE_FocusRect, p, groove, cg ); - } - - if ((sub & SC_SliderHandle) && handle.isValid()) { - const TQColor c0 = cg.shadow(); - const TQColor c1 = cg.dark(); - const TQColor c3 = cg.light(); - - int x1 = handle.x(); - int x2 = handle.x() + handle.width() - 1; - int y1 = handle.y(); - int y2 = handle.y() + handle.height() - 1; - int mx = handle.width() / 2; - int my = handle.height() / 2; - - if ( slider->orientation() == Qt::Vertical ) { - // Background - TQBrush oldBrush = p->brush(); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->setPen( Qt::NoPen ); - TQPointArray a(6); - a.setPoint( 0, x1 + 1, y1 + 1 ); - a.setPoint( 1, x2 - my + 2, y1 + 1 ); - a.setPoint( 2, x2 - 1, y1 + my - 1 ); - a.setPoint( 3, x2 - 1, y2 - my + 1 ); - a.setPoint( 4, x2 - my + 2, y2 - 1 ); - a.setPoint( 5, x1 + 1, y2 - 1 ); - p->drawPolygon( a ); - p->setBrush( oldBrush ); - - // shadow border - p->setPen( c0 ); - p->drawLine( x1, y1 + 1, x1,y2 - 1 ); - p->drawLine( x2 - my + 2, y1, x2, y1 + my - 2 ); - p->drawLine( x2 - my + 2, y2, x2, y1 + my + 2 ); - p->drawLine( x2, y1 + my - 2, x2, y1 + my + 2 ); - p->drawLine( x1 + 1, y1, x2 - my + 2, y1 ); - p->drawLine( x1 + 1, y2, x2 - my + 2, y2 ); - - // light shadow - p->setPen( c3 ); - p->drawLine( x1 + 1, y1 + 2, x1 + 1, y2 - 2 ); - p->drawLine( x1 + 1, y1 + 1, x2 - my + 2, y1 + 1 ); - p->drawLine( x2 - my + 2, y1 + 1, x2 - 1, y1 + my - 2 ); - - // dark shadow - p->setPen(c1); - p->drawLine( x2 - 1, y1 + my - 2, x2 - 1, y1 + my + 2 ); - p->drawLine( x2 - my + 2, y2 - 1, x2 - 1, y1 + my + 2 ); - p->drawLine( x1 + 1, y2 - 1, x2 -my + 2, y2 - 1 ); - - drawRiffles( p, handle.x(), handle.y() + 2, handle.width() - 3, - handle.height() - 4, cg, TRUE ); - } else { // Qt::Horizontal - TQBrush oldBrush = p->brush(); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->setPen( Qt::NoPen ); - TQPointArray a(6); - a.setPoint( 0, x2 - 1, y1 + 1 ); - a.setPoint( 1, x2 - 1, y2 - mx + 2 ); - a.setPoint( 2, x2 - mx + 1, y2 - 1 ); - a.setPoint( 3, x1 + mx - 1, y2 - 1 ); - a.setPoint( 4, x1 + 1, y2 - mx + 2 ); - a.setPoint( 5, x1 + 1, y1 + 1 ); - p->drawPolygon( a ); - p->setBrush( oldBrush ); - - // shadow border - p->setPen( c0 ); - p->drawLine( x1 + 1, y1, x2 - 1, y1 ); - p->drawLine( x1, y2 - mx + 2, x1 + mx - 2, y2 ); - p->drawLine( x2, y2 - mx + 2, x1 + mx + 2, y2 ); - p->drawLine( x1 + mx - 2, y2, x1 + mx + 2, y2 ); - p->drawLine( x1, y1 + 1, x1, y2 - mx + 2 ); - p->drawLine( x2, y1 + 1, x2, y2 - mx + 2 ); - - // light shadow - p->setPen(c3); - p->drawLine( x1 + 1, y1 + 1, x2 - 1, y1 + 1 ); - p->drawLine( x1 + 1, y1 + 1, x1 + 1, y2 - mx + 2 ); - - // dark shadow - p->setPen(c1); - p->drawLine( x2 - 1, y1 + 1, x2 - 1, y2 - mx + 2 ); - p->drawLine( x1 + 1, y2 - mx + 2, x1 + mx - 2, y2 - 1 ); - p->drawLine( x2 - 1, y2 - mx + 2, x1 + mx + 2, y2 - 1 ); - p->drawLine( x1 + mx - 2, y2 - 1, x1 + mx + 2, y2 - 1 ); - - drawRiffles( p, handle.x() + 2, handle.y(), handle.width() - 4, - handle.height() - 5, cg, FALSE ); - } - } - - if ( sub & SC_SliderTickmarks ) - TQCommonStyle::tqdrawComplexControl( control, p, widget, r, - cg, how, SC_SliderTickmarks, - subActive, opt ); -#endif - break; - } - default: - TQWindowsStyle::tqdrawComplexControl( control, p, widget, r, cg, - how, sub, subActive, opt ); - break; - } -} - - - -/*!\reimp - */ -TQRect TQPlatinumStyle::querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& opt ) const -{ - switch( control ) { -#ifndef TQT_NO_COMBOBOX - case CC_ComboBox: - const TQComboBox *cb; - cb = (const TQComboBox *)widget; - switch( sc ) { - case SC_ComboBoxArrow: { - TQRect ir = cb->rect(); - int xx; - if( TQApplication::reverseLayout() ) - xx = ir.x(); - else - xx = ir.x() + ir.width() - 20; - return TQRect( xx, ir.y(), 20, ir.height()); } - default: - break; - } - break; -#endif -#ifndef TQT_NO_SCROLLBAR - case CC_ScrollBar: { - const TQScrollBar *sb; - sb = (const TQScrollBar *)widget; - int sliderStart = sb->sliderStart(); - int sbextent = tqpixelMetric( PM_ScrollBarExtent, widget ); - int maxlen = ((sb->orientation() == Qt::Horizontal) ? - sb->width() : sb->height()) - ( sbextent * 2 ); - - int sliderlen; - - // calculate length - if ( sb->maxValue() != sb->minValue() ) { - uint range = sb->maxValue() - sb->minValue(); - sliderlen = ( sb->pageStep() * maxlen ) / - ( range + sb->pageStep() ); - - int slidermin = tqpixelMetric( PM_ScrollBarSliderMin, widget ); - if ( sliderlen < slidermin || range > INT_MAX / 2 ) - sliderlen = slidermin; - if ( sliderlen > maxlen ) - sliderlen = maxlen; - } else { - sliderlen = maxlen; - } - - switch ( sc ) { - case SC_ScrollBarSubLine: - if ( sb->orientation() == Qt::Horizontal ) { - int buttonw = TQMIN( sb->width() / 2, sbextent ); - return TQRect( sb->width() - 2 * buttonw, 0, buttonw, sbextent ); - } else { - int buttonh = TQMIN( sb->height() / 2, sbextent ); - return TQRect( 0, sb->height() - 2 * buttonh, sbextent, buttonh ); - } - case SC_ScrollBarAddLine: - if ( sb->orientation() == Qt::Horizontal ) { - int buttonw = TQMIN( sb->width() / 2, sbextent ); - return TQRect( sb->width() - buttonw, 0, sbextent, buttonw ); - } else { - int buttonh = TQMIN( sb->height() / 2, sbextent ); - return TQRect(0, sb->height() - buttonh, sbextent, buttonh ); - } - case SC_ScrollBarSubPage: - if ( sb->orientation() == Qt::Horizontal ) - return TQRect( 1, 0, sliderStart, sbextent ); - return TQRect( 0, 1, sbextent, sliderStart ); - case SC_ScrollBarAddPage: - if ( sb->orientation() == Qt::Horizontal ) - return TQRect( sliderStart + sliderlen, 0, maxlen - sliderStart - sliderlen, sbextent ); - return TQRect( 0, sliderStart + sliderlen, sbextent, maxlen - sliderStart - sliderlen ); - case SC_ScrollBarGroove: - if ( sb->orientation() == Qt::Horizontal ) - return TQRect( 1, 0, sb->width() - sbextent * 2, sb->height() ); - return TQRect( 0, 1, sb->width(), sb->height() - sbextent * 2 ); - default: - break; - } - break; } -#endif -#ifndef TQT_NO_SLIDER - case CC_Slider: { - - const TQSlider *slider = (const TQSlider *) widget; - int tickOffset = tqpixelMetric( PM_SliderTickmarkOffset, widget); - int thickness = tqpixelMetric( PM_SliderControlThickness, widget); - int mid = thickness / 2; - int ticks = slider->tickmarks(); - int len = tqpixelMetric( PM_SliderLength, widget ); - - switch ( sc ) { - case SC_SliderGroove: - if ( ticks & TQSlider::Above ) - mid += len / 8; - if ( ticks & TQSlider::Below ) - mid -= len / 8; - if ( slider->orientation() == Qt::Horizontal ) - return TQRect( 0, tickOffset, slider->width(), thickness ); - return TQRect( tickOffset, 0, thickness, slider->height() ); - default: - break; - } - break; } -#endif - default: - break; - } - return TQWindowsStyle::querySubControlMetrics( control, widget, sc, opt ); -} - - -/*!\reimp - */ -int TQPlatinumStyle::tqpixelMetric( PixelMetric metric, - const TQWidget *widget ) const -{ - int ret; - switch( metric ) { - case PM_ButtonDefaultIndicator: - ret = 3; - break; - case PM_ButtonShiftHorizontal: - case PM_ButtonShiftVertical: - ret = 0; - break; - case PM_IndicatorWidth: - ret = 15; - break; - case PM_IndicatorHeight: - ret = 13; - break; - case PM_ExclusiveIndicatorHeight: - case PM_ExclusiveIndicatorWidth: - ret = 15; - break; - case PM_SliderLength: - ret = 17; - break; - case PM_MaximumDragDistance: - ret = -1; - break; - default: - ret = TQWindowsStyle::tqpixelMetric( metric, widget ); - break; - } - return ret; -} - -/*!\reimp - */ -TQRect TQPlatinumStyle::subRect( SubRect r, const TQWidget *widget ) const -{ - TQRect rect; - switch ( r ) { - case SR_ComboBoxFocusRect: - { - TQRect tmpR = widget->rect(); - rect = TQRect( tmpR.x() + 4, tmpR.y() + 4, tmpR.width() - 8 - 16, - tmpR.height() - 8 ); - break; - } - default: - rect = TQWindowsStyle::subRect( r, widget ); - break; - } - return rect; -} - -/*! - Mixes two colors \a c1 and \a c2 to a new color. -*/ -TQColor TQPlatinumStyle::mixedColor(const TQColor &c1, const TQColor &c2) const -{ - int h1,s1,v1,h2,s2,v2; - c1.hsv(&h1,&s1,&v1); - c2.hsv(&h2,&s2,&v2); - return TQColor( (h1+h2)/2, (s1+s2)/2, (v1+v2)/2, TQColor::Hsv ); -} - -/*! - Draws the nifty Macintosh decoration used on sliders using painter - \a p and colorgroup \a g. \a x, \a y, \a w, \a h and \a horizontal - specify the tqgeometry and orientation of the riffles. -*/ -void TQPlatinumStyle::drawRiffles( TQPainter* p, int x, int y, int w, int h, - const TQColorGroup &g, bool horizontal ) const -{ - if (!horizontal) { - if (h > 20) { - y += (h-20)/2 ; - h = 20; - } - if (h > 8) { - int n = h / 4; - int my = y+h/2-n; - int i ; - p->setPen(g.light()); - for (i=0; i<n; i++) { - p->drawLine(x+3, my+2*i, x+w-5, my+2*i); - } - p->setPen(g.dark()); - my++; - for (i=0; i<n; i++) { - p->drawLine(x+4, my+2*i, x+w-4, my+2*i); - } - } - } - else { - if (w > 20) { - x += (w-20)/2 ; - w = 20; - } - if (w > 8) { - int n = w / 4; - int mx = x+w/2-n; - int i ; - p->setPen(g.light()); - for (i=0; i<n; i++) { - p->drawLine(mx+2*i, y+3, mx + 2*i, y+h-5); - } - p->setPen(g.dark()); - mx++; - for (i=0; i<n; i++) { - p->drawLine(mx+2*i, y+4, mx + 2*i, y+h-4); - } - } - } -} - - -#endif diff --git a/tqtinterface/qt4/src/styles/tqplatinumstyle.h b/tqtinterface/qt4/src/styles/tqplatinumstyle.h deleted file mode 100644 index cd72357..0000000 --- a/tqtinterface/qt4/src/styles/tqplatinumstyle.h +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Definition of Platinum-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQPLATINUMSTYLE_H -#define TQPLATINUMSTYLE_H - -#ifndef TQT_H -#include "tqwindowsstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_PLATINUM) || defined(TQT_PLUGIN) - -class TQPalette; - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_PLATINUM -#else -#define TQ_EXPORT_STYLE_PLATINUM TQ_EXPORT -#endif - -class TQ_EXPORT_STYLE_PLATINUM TQPlatinumStyle : public TQWindowsStyle -{ - Q_OBJECT - TQ_OBJECT -public: - TQPlatinumStyle(); - virtual ~TQPlatinumStyle(); - - // new Style Stuff - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, -#ifdef TQ_TQDOC - SCFlags sub = SC_All, -#else - SCFlags sub = (uint)SC_All, -#endif - SCFlags subActive = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const; - - TQRect subRect( SubRect r, const TQWidget *widget ) const; - -protected: - TQColor mixedColor(const TQColor &, const TQColor &) const; - void drawRiffles( TQPainter* p, int x, int y, int w, int h, - const TQColorGroup &g, bool horizontal ) const; -private: // Disabled copy constructor and operator= -#if defined(TQ_DISABLE_COPY) - TQPlatinumStyle( const TQPlatinumStyle & ); - TQPlatinumStyle& operator=( const TQPlatinumStyle & ); -#endif -}; - -#endif // TQT_NO_STYLE_PLATINUM - -#endif // TQPLATINUMSTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqsgistyle.cpp b/tqtinterface/qt4/src/styles/tqsgistyle.cpp deleted file mode 100644 index 45ac25b..0000000 --- a/tqtinterface/qt4/src/styles/tqsgistyle.cpp +++ /dev/null @@ -1,1470 +0,0 @@ -/**************************************************************************** -** -** Implementation of Motif-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqsgistyle.h" - -#if !defined(TQT_NO_STYLE_SGI) || defined(TQT_PLUGIN) - -#include "tqpopupmenu.h" -#include "tqapplication.h" -#include "tqbutton.h" -#include "tqpainter.h" -#include "tqdrawutil.h" -#include "tqpixmap.h" -#include "tqpalette.h" -#include "tqwidget.h" -#include "tqpushbutton.h" -#include "tqscrollbar.h" -#include "tqcombobox.h" -#include "tqslider.h" -#include "tqtextedit.h" -#include "tqtoolbar.h" -#include "tqlineedit.h" -#include "tqmenubar.h" -#include <limits.h> - -#ifndef TQT_NO_SLIDER -struct SliderLastPosition -{ - SliderLastPosition() : rect(0,-1,0,-1), slider(0) {} - TQRect rect; - const TQSlider* slider; -}; -#endif - -#ifndef TQT_NO_SCROLLBAR -struct ScrollbarLastPosition -{ - ScrollbarLastPosition() : rect( 0,-1, 0,-1 ), scrollbar(0) {} - TQRect rect; - const TQScrollBar *scrollbar; -}; -#endif - -class TQSGIStylePrivate -{ -public: - TQSGIStylePrivate() - : hotWidget( 0 ), mousePos( -1, -1 ) - { - } - - const TQWidget *hotWidget; - TQPoint mousePos; -#ifndef TQT_NO_SCROLLBAR - ScrollbarLastPosition lastScrollbarRect; -#endif -#ifndef TQT_NO_SLIDER - SliderLastPosition lastSliderRect; -#endif -}; - -/*! - \class TQSGIStyle tqsgistyle.h - \brief The TQSGIStyle class provides SGI/Irix look and feel. - - \ingroup appearance - - This class implements the SGI look and feel. It resembles the - SGI/Irix Motif GUI style as closely as TQStyle allows. -*/ - -/*! - Constructs a TQSGIStyle. - - If \a useHighlightCols is FALSE (default value), the style will - polish the application's color palette to emulate the Motif way of - highlighting, which is a simple inversion between the base and the - text color. - - \sa TQMotifStyle::useHighlightColors() -*/ -TQSGIStyle::TQSGIStyle( bool useHighlightCols ) : TQMotifStyle( useHighlightCols ), isApplicationStyle( 0 ) -{ - d = new TQSGIStylePrivate; -} - -/*! - Destroys the style. -*/ -TQSGIStyle::~TQSGIStyle() -{ - delete d; -} - -/*! - \reimp - - Changes some application-wide settings to be SGI-like, e.g. sets a - bold italic font for menu options. -*/ -void -TQSGIStyle::polish( TQApplication* app) -{ - isApplicationStyle = 1; - TQMotifStyle::polish( app ); - - TQPalette pal = TQApplication::palette(); - // check this on SGI-Boxes - //pal.setColor( TQColorGroup::Background, pal.active().midlight() ); - if (pal.active().button() == pal.active().background()) - pal.setColor( TQColorGroup::Button, pal.active().button().dark(120) ); - // darker basecolor in list-widgets - pal.setColor( TQColorGroup::Base, pal.active().base().dark(130) ); - if (! useHighlightColors() ) { - pal.setColor( TQPalette::Active, TQColorGroup::Highlight, pal.active().text() ); - pal.setColor( TQPalette::Active, TQColorGroup::HighlightedText, pal.active().base() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::Highlight, pal.inactive().text() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::HighlightedText, pal.inactive().base() ); - pal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, pal.disabled().text() ); - pal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, pal.disabled().base() ); - } - TQApplication::tqsetPalette( pal, TRUE ); - - // different basecolor and highlighting in Q(Multi)LineEdit - pal.setColor( TQColorGroup::Base, TQColor(211,181,181) ); - pal.setColor( TQPalette::Active, TQColorGroup::Highlight, pal.active().midlight() ); - pal.setColor( TQPalette::Active, TQColorGroup::HighlightedText, pal.active().text() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::Highlight, pal.inactive().midlight() ); - pal.setColor( TQPalette::Inactive, TQColorGroup::HighlightedText, pal.inactive().text() ); - pal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, pal.disabled().midlight() ); - pal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, pal.disabled().text() ); - - TQApplication::tqsetPalette( pal, TRUE, "TQLineEdit" ); - TQApplication::tqsetPalette( pal, TRUE, "TQTextEdit" ); - TQApplication::tqsetPalette( pal, TRUE, "TQDateTimeEditBase" ); - - pal = TQApplication::palette(); - pal.setColor( TQColorGroup::Button, pal.active().background() ); - TQApplication::tqsetPalette( pal, TRUE, "TQMenuBar" ); - TQApplication::tqsetPalette( pal, TRUE, "TQToolBar" ); - TQApplication::tqsetPalette( pal, TRUE, "TQPopupMenu" ); -} - -/*! \reimp -*/ -void -TQSGIStyle::unPolish( TQApplication* /* app */ ) -{ - TQFont f = TQApplication::font(); - TQApplication::tqsetFont( f, TRUE ); // get rid of the special fonts for special widget classes -} - -/*! - \reimp - - Installs an event filter for several widget classes to enable - hovering. -*/ -void -TQSGIStyle::polish( TQWidget* w ) -{ - TQMotifStyle::polish(w); - - if ( !isApplicationStyle ) { - TQPalette sgiPal = TQApplication::palette(); - - sgiPal.setColor( TQColorGroup::Background, sgiPal.active().midlight() ); - if (sgiPal.active().button() == sgiPal.active().background()) - sgiPal.setColor( TQColorGroup::Button, sgiPal.active().button().dark(110) ); - sgiPal.setColor( TQColorGroup::Base, sgiPal.active().base().dark(130) ); - if (! useHighlightColors() ) { - sgiPal.setColor( TQPalette::Active, TQColorGroup::Highlight, sgiPal.active().text() ); - sgiPal.setColor( TQPalette::Active, TQColorGroup::HighlightedText, sgiPal.active().base() ); - sgiPal.setColor( TQPalette::Inactive, TQColorGroup::Highlight, sgiPal.inactive().text() ); - sgiPal.setColor( TQPalette::Inactive, TQColorGroup::HighlightedText, sgiPal.inactive().base() ); - sgiPal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, sgiPal.disabled().text() ); - sgiPal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, sgiPal.disabled().base() ); - } - - if ( ::tqqt_cast<TQLineEdit*>(w) || ::tqqt_cast<TQTextEdit*>(w) ) { - // different basecolor and highlighting in Q(Multi)LineEdit - sgiPal.setColor( TQColorGroup::Base, TQColor(211,181,181) ); - sgiPal.setColor( TQPalette::Active, TQColorGroup::Highlight, sgiPal.active().midlight() ); - sgiPal.setColor( TQPalette::Active, TQColorGroup::HighlightedText, sgiPal.active().text() ); - sgiPal.setColor( TQPalette::Inactive, TQColorGroup::Highlight, sgiPal.inactive().midlight() ); - sgiPal.setColor( TQPalette::Inactive, TQColorGroup::HighlightedText, sgiPal.inactive().text() ); - sgiPal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, sgiPal.disabled().midlight() ); - sgiPal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, sgiPal.disabled().text() ); - - } else if ( ::tqqt_cast<TQMenuBar*>(w) || ::tqqt_cast<TQToolBar*>(w) ) { - sgiPal.setColor( TQColorGroup::Button, sgiPal.active().midlight() ); - } - - w->setPalette( sgiPal ); - } - - if ( ::tqqt_cast<TQButton*>(w) || ::tqqt_cast<TQSlider*>(w) || ::tqqt_cast<TQScrollBar*>(w) ) { - w->installEventFilter( this ); - w->setMouseTracking( TRUE ); -#ifndef TQT_NO_SCROLLBAR - if ( ::tqqt_cast<TQScrollBar*>(w) ) - w->setBackgroundMode( TQt::NoBackground ); -#endif - } else if ( ::tqqt_cast<TQComboBox*>(w) ) { - TQFont f = TQApplication::font(); - f.setBold( TRUE ); - f.setItalic( TRUE ); - w->setFont( f ); -#ifndef TQT_NO_MENUBAR - } else if ( ::tqqt_cast<TQMenuBar*>(w) ) { - ((TQFrame*) w)->setFrameStyle(TQFrame::StyledPanel | TQFrame::Raised); - w->setBackgroundMode( TQt::PaletteBackground ); - TQFont f = TQApplication::font(); - f.setBold( TRUE ); - f.setItalic( TRUE ); - w->setFont( f ); -#endif -#ifndef TQT_NO_POPUPMENU - } else if ( ::tqqt_cast<TQPopupMenu*>(w) ) { - ((TQFrame*) w)->setLineWidth( tqpixelMetric( PM_DefaultFrameWidth ) + 1 ); - TQFont f = TQApplication::font(); - f.setBold( TRUE ); - f.setItalic( TRUE ); - w->setFont( f ); -#endif - } else if ( ::tqqt_cast<TQToolBar*>(w) || w->inherits("TQToolBarSeparator") ) { - w->setBackgroundMode( TQt::PaletteBackground ); - } -} - -/*! \reimp */ -void -TQSGIStyle::unPolish( TQWidget* w ) -{ - if ( ::tqqt_cast<TQButton*>(w) || ::tqqt_cast<TQSlider*>(w) || ::tqqt_cast<TQScrollBar*>(w) ) { - w->removeEventFilter( this ); -#ifndef TQT_NO_POPUPMENU - } else if ( ::tqqt_cast<TQPopupMenu*>(w) ) { - ((TQFrame*)w)->setLineWidth( tqpixelMetric( PM_DefaultFrameWidth ) ); - w->setFont( TQApplication::font() ); -#endif -#if !defined(TQT_NO_MENUBAR) || !defined(TQT_NO_COMBOBOX) - } else if ( ::tqqt_cast<TQMenuBar*>(w) || ::tqqt_cast<TQComboBox*>(w) ) { - w->setFont( TQApplication::font() ); -#endif - } -} - -/*! \reimp */ -bool TQSGIStyle::eventFilter( TQObject* o, TQEvent* e ) -{ - if ( !o->isWidgetType() || e->type() == TQEvent::Paint ) - return TQMotifStyle::eventFilter( o, e ); - - TQWidget *widget = (TQWidget*)o; - - switch ( e->type() ) { - case TQEvent::MouseButtonPress: - { -#ifndef TQT_NO_SCROLLBAR - if ( ::tqqt_cast<TQScrollBar*>(widget) ) { - d->lastScrollbarRect.rect = ((TQScrollBar*)widget)->sliderRect(); - d->lastScrollbarRect.scrollbar = ((TQScrollBar*)widget); - widget->tqrepaint( FALSE ); - } else -#endif - { -#ifndef TQT_NO_SLIDER - if ( ::tqqt_cast<TQSlider*>(widget) ) { - d->lastSliderRect.rect = ((TQSlider*)widget)->sliderRect(); - d->lastSliderRect.slider = ((TQSlider*)widget); - widget->tqrepaint( FALSE ); - } -#endif - } - } - break; - - case TQEvent::MouseButtonRelease: - { - if ( 0 ) { -#ifndef TQT_NO_SCROLLBAR - } else if ( ::tqqt_cast<TQScrollBar*>(widget) ) { - TQRect oldRect = d->lastScrollbarRect.rect; - d->lastScrollbarRect.rect = TQRect( 0, -1, 0, -1 ); - widget->tqrepaint( oldRect, FALSE ); -#endif -#ifndef TQT_NO_SLIDER - } else if ( ::tqqt_cast<TQSlider*>(widget) ) { - TQRect oldRect = d->lastSliderRect.rect; - d->lastSliderRect.rect = TQRect( 0, -1, 0, -1 ); - widget->tqrepaint( oldRect, FALSE ); -#endif - } - } - break; - - case TQEvent::MouseMove: - if ( !widget->isActiveWindow() ) - break; - if ( ((TQMouseEvent*)e)->button() ) - break; - - d->hotWidget = widget; - d->mousePos = ((TQMouseEvent*)e)->pos(); - widget->tqrepaint( FALSE ); - break; - - case TQEvent::Enter: - if ( !widget->isActiveWindow() ) - break; - d->hotWidget = widget; - widget->tqrepaint( FALSE ); - break; - - case TQEvent::Leave: - if ( !widget->isActiveWindow() ) - break; - if ( widget == d->hotWidget) { - d->hotWidget = 0; - widget->tqrepaint( FALSE ); - } - break; - - default: - break; - } - return TQMotifStyle::eventFilter( o, e ); -} - -static const int sgiItemFrame = 2; // menu item frame width -// static const int sgiSepHeight = 1; // separator item height -static const int sgiItemHMargin = 3; // menu item hor text margin -static const int sgiItemVMargin = 2; // menu item ver text margin -static const int sgiArrowHMargin = 6; // arrow horizontal margin -static const int sgiTabSpacing = 12; // space between text and tab -// static const int sgiCheckMarkHMargin = 2; // horiz. margins of check mark ### not used?!? -static const int sgiCheckMarkSpace = 20; - -/*! \reimp */ -int TQSGIStyle::tqpixelMetric( PixelMetric metric, const TQWidget *widget ) const -{ - switch ( metric ) { - case PM_DefaultFrameWidth: - return 2; - - case PM_ButtonDefaultIndicator: - return 4; - - case PM_ScrollBarExtent: - return 21; - - case PM_IndicatorWidth: - case PM_IndicatorHeight: - return 14; - - case PM_ExclusiveIndicatorWidth: - case PM_ExclusiveIndicatorHeight: - return 12; - - case PM_SplitterWidth: - return TQMAX( 10, TQApplication::globalStrut().width() ); - - default: - break; - } - return TQMotifStyle::tqpixelMetric( metric, widget ); -} - -static void drawPanel( TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken, - int lineWidth, const TQBrush* fill) -{ - if ( w == 0 || h == 0 ) - return; -#if defined(CHECK_RANGE) - ASSERT( w > 0 && h > 0 && lineWidth >= 0 ); -#endif - TQPen oldPen = p->pen(); // save pen - TQPointArray a( 4*lineWidth ); - if ( sunken ) - p->setPen( g.dark() ); - else - p->setPen( g.light() ); - int x1, y1, x2, y2; - int i; - int n = 0; - x1 = x; - y1 = y2 = y; - x2 = x+w-2; - for ( i=0; i<lineWidth; i++ ) { // top shadow - a.setPoint( n++, x1, y1++ ); - a.setPoint( n++, x2--, y2++ ); - } - x2 = x1; - y1 = y+h-2; - for ( i=0; i<lineWidth; i++ ) { // left shadow - a.setPoint( n++, x1++, y1 ); - a.setPoint( n++, x2++, y2-- ); - } - p->drawLineSegments( a ); - n = 0; - if ( sunken ) - p->setPen( g.light() ); - else - p->setPen( g.dark() ); - x1 = x; - y1 = y2 = y+h-1; - x2 = x+w-1; - for ( i=0; i<lineWidth; i++ ) { // bottom shadow - a.setPoint( n++, x1++, y1-- ); - a.setPoint( n++, x2, y2-- ); - } - x1 = x2; - y1 = y; - y2 = y+h-lineWidth-1; - for ( i=0; i<lineWidth; i++ ) { // right shadow - a.setPoint( n++, x1--, y1++ ); - a.setPoint( n++, x2--, y2 ); - } - p->drawLineSegments( a ); - if ( fill ) { // fill with fill color - TQBrush oldBrush = p->brush(); - p->setPen( TQt::NoPen ); - p->setBrush( *fill ); - p->drawRect( x+lineWidth, y+lineWidth, w-lineWidth*2, h-lineWidth*2 ); - p->setBrush( oldBrush ); - } - p->setPen( oldPen ); // restore pen -} - -static void drawSeparator( TQPainter *p, int x1, int y1, int x2, int y2, - const TQColorGroup &g ) -{ - TQPen oldPen = p->pen(); - - p->setPen( g.midlight() ); - p->drawLine( x1, y1, x2, y2 ); - p->setPen( g.shadow() ); - if ( y2-y1 < x2-x1 ) - p->drawLine( x1, y1+1, x2, y2+1 ); - else - p->drawLine( x1+1, y1, x2+1, y2 ); - - p->setPen( oldPen ); -} - -static void drawSGIPrefix( TQPainter *p, int x, int y, TQString* miText ) -{ - if ( miText && (!!(*miText)) ) { - int amp = 0; - bool nextAmp = FALSE; - while ( ( amp = miText->find( '&', amp ) ) != -1 ) { - if ( (uint)amp == miText->length()-1 ) - return; - miText->remove( amp,1 ); - nextAmp = (*miText)[amp] == '&'; // next time if && - - if ( !nextAmp ) { // draw special underlining - uint ulx = p->fontMetrics().width(*miText, amp); - - uint ulw = p->fontMetrics().width(*miText, amp+1) - ulx; - - p->drawLine( x+ulx, y, x+ulx+ulw, y ); - p->drawLine( x+ulx, y+1, x+ulx+ulw/2, y+1 ); - p->drawLine( x+ulx, y+2, x+ulx+ulw/4, y+2 ); - } - amp++; - } - } -} - -static int get_combo_extra_width( int h, int *return_awh=0 ) -{ - int awh; - if ( h < 8 ) { - awh = 6; - } else if ( h < 14 ) { - awh = h - 2; - } else { - awh = h/2; - } - if ( return_awh ) - *return_awh = awh; - return awh*2; -} - -static void get_combo_parameters( const TQRect &r, - int &ew, int &awh, int &ax, - int &ay, int &sh, int &dh, - int &sy ) -{ - ew = get_combo_extra_width( r.height(), &awh ); - - sh = (awh+3)/4; - if ( sh < 3 ) - sh = 3; - dh = sh/2 + 1; - - ay = r.y() + (r.height()-awh-sh-dh)/2; - if ( ay < 0 ) { - //panic mode - ay = 0; - sy = r.height(); - } else { - sy = ay+awh+dh; - } - if( TQApplication::reverseLayout() ) - ax = r.x(); - else - ax = r.x() + r.width() - ew; - ax += (ew-awh)/2; -} - -/*! \reimp */ -void TQSGIStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - const int x = r.x(); - const int y = r.y(); - const int w = r.width(); - const int h = r.height(); - const bool sunken = flags & ( Style_Sunken | Style_Down | Style_On ); - const int defaultFrameWidth = tqpixelMetric( PM_DefaultFrameWidth ); - bool hot = ( flags & Style_MouseOver ) && ( flags & Style_Enabled ); - - switch ( pe ) { - case PE_ButtonCommand: - { - TQBrush fill; - if ( hot ) { - if ( sunken ) - fill = cg.brush( TQColorGroup::Dark ); - else - fill = cg.brush( TQColorGroup::Midlight ); - } else if ( sunken ) { - fill = cg.brush( TQColorGroup::Mid ); - } else { - fill = cg.brush( TQColorGroup::Button ); - } - - drawPanel( p, x, y, w, h, cg, sunken, defaultFrameWidth, &fill ); - } - break; - - case PE_PanelPopup: - case PE_ButtonBevel: - case PE_ButtonTool: - { - tqdrawPrimitive( PE_ButtonCommand, p, TQRect( x+1, y+1, w-2, h-2 ), cg, flags, opt ); - - TQPen oldPen = p->pen(); - TQPointArray a; - - // draw twocolored rectangle - p->setPen( sunken ? cg.light() : TQT_TQCOLOR_OBJECT(cg.dark().dark(200)) ); - a.setPoints( 3, x, y+h-1, x+w-1, y+h-1, x+w-1, y ); - p->drawPolyline( a ); - p->setPen( cg.dark() ); - a.setPoints( 3, x, y+h-2, x, y, x+w-2, y ); - p->drawPolyline( a ); - - p->setPen( oldPen ); - } - break; - - case PE_ArrowUp: - case PE_ArrowDown: - case PE_ArrowLeft: - case PE_ArrowRight: - { - TQPointArray a; // arrow polygon - switch ( pe ) { - case PE_ArrowUp: - a.setPoints( 3, 0,-5, -5,4, 4,4 ); - break; - case PE_ArrowDown: - a.setPoints( 3, 0,4, -4,-4, 4,-4 ); - break; - case PE_ArrowLeft: - a.setPoints( 3, -4,0, 4,-5, 4,4 ); - break; - case PE_ArrowRight: - a.setPoints( 3, 4,0, -4,-5, -4,4 ); - break; - default: - return; - } - - p->save(); - p->setPen( TQt::NoPen ); - a.translate( x+w/2, y+h/2 ); - p->setBrush( flags & Style_Enabled ? cg.dark() : cg.light() ); - p->drawPolygon( a ); // draw arrow - p->restore(); - } - break; - - case PE_Indicator: - { - TQRect er = r; - er.addCoords( 1, 1, -1, -1 ); - int iflags = flags & ~Style_On; - tqdrawPrimitive( PE_ButtonBevel, p, er, cg, (QStyle::StateFlag)iflags, opt ); - if ( !(flags & TQStyle::Style_Off) ) { - er = r; - er.addCoords( 1, 2, 1, 1 ); - tqdrawPrimitive( PE_CheckMark, p, er, cg, flags, opt ); - } - } - break; - - case PE_IndicatorMask: - { - TQPen oldPen = p->pen(); - TQBrush oldBrush = p->brush(); - - p->setPen( TQt::color1 ); - p->setBrush( TQt::color1 ); - p->fillRect( x, y, w, h, TQBrush( TQt::color0 ) ); - TQRect er = r; - er.addCoords( 1, 1, -1, -1 ); - p->fillRect(er, TQBrush(TQt::color1)); - - if ( !(flags & TQStyle::Style_Off) ) { - er = r; - er.addCoords( 1, 2, 1, 1 ); - static const TQCOORD check_mark[] = { - 14,0, 10,0, 11,1, 8,1, 9,2, 7,2, 8,3, 6,3, - 7,4, 1,4, 6,5, 1,5, 6,6, 3,6, 5,7, 4,7, - 5,8, 5,8, 4,3, 2,3, 3,2, 3,2 }; - - TQPointArray amark; - amark = TQPointArray( sizeof(check_mark)/(sizeof(TQCOORD)*2), check_mark ); - amark.translate( er.x()+1, er.y()+1 ); - p->drawLineSegments( amark ); - amark.translate( -1, -1 ); - p->drawLineSegments( amark ); - } - - p->setBrush( oldBrush ); - p->setPen( oldPen ); - } - break; - -#ifndef USE_QT4 // [FIXME] - case PE_CheckMark: - { - static const TQCOORD check_mark[] = { - 14,0, 10,0, 11,1, 8,1, 9,2, 7,2, 8,3, 6,3, - 7,4, 1,4, 6,5, 1,5, 6,6, 3,6, 5,7, 4,7, - 5,8, 5,8, 4,3, 2,3, 3,2, 3,2 }; - - TQPen oldPen = p->pen(); - - TQPointArray amark; - amark = TQPointArray( sizeof(check_mark)/(sizeof(TQCOORD)*2), check_mark ); - amark.translate( x+1, y+1 ); - - if ( flags & Style_On ) { - p->setPen( flags & Style_Enabled ? cg.shadow() : cg.dark() ); - p->drawLineSegments( amark ); - amark.translate( -1, -1 ); - p->setPen( flags & Style_Enabled ? TQColor(255,0,0) : cg.dark() ); - p->drawLineSegments( amark ); - p->setPen( oldPen ); - } else { - p->setPen( flags & Style_Enabled ? cg.dark() : cg.mid() ); - p->drawLineSegments( amark ); - amark.translate( -1, -1 ); - p->setPen( flags & Style_Enabled ? TQColor(230,120,120) : cg.dark() ); - p->drawLineSegments( amark ); - p->setPen( oldPen ); - } - } - break; -#endif // USE_QT4 - - case PE_ExclusiveIndicator: - { - p->save(); - p->eraseRect( x, y, w, h ); - p->translate( x, y ); - - p->setPen( cg.button() ); - p->setBrush( hot ? cg.midlight() : cg.button() ); - TQPointArray a; - a.setPoints( 4, 5,0, 11,6, 6,11, 0,5); - p->drawPolygon( a ); - - p->setPen( cg.dark() ); - p->drawLine( 0,5, 5,0 ); - p->drawLine( 6,0, 11,5 ); - p->setPen( flags & Style_Down ? cg.light() : cg.dark() ); - p->drawLine( 11,6, 6,11 ); - p->drawLine( 5,11, 0,6 ); - p->drawLine( 2,7, 5,10 ); - p->drawLine( 6,10, 9,7 ); - p->setPen( cg.light() ); - p->drawLine( 2,5, 5,2 ); - - if ( flags & Style_On ) { - p->setPen( flags & Style_Enabled ? TQt::blue : TQt::darkGray ); - p->setBrush( flags & Style_Enabled ? TQt::blue : TQt::darkGray ); - a.setPoints(3, 6,2, 8,4, 6,6 ); - p->drawPolygon( a ); - p->setBrush( TQt::NoBrush ); - - p->setPen( cg.shadow() ); - p->drawLine( 7,7, 9,5 ); - } else { - p->drawLine( 6,2, 9,5 ); - } - p->restore(); - } - break; - - case PE_ExclusiveIndicatorMask: - { - p->save(); - TQPen oldPen = p->pen(); - TQBrush oldBrush = p->brush(); - - p->setPen( TQt::color1 ); - p->setBrush( TQt::color1 ); - TQPointArray a; - a.setPoints( 8, 0,5, 5,0, 6,0, 11,5, 11,6, 6,11, 5,11, 0,6 ); - a.translate( x, y ); - p->drawPolygon( a ); - - p->setBrush( oldBrush ); - p->setPen( oldPen ); - p->restore(); - } - break; - - case PE_Panel: - { - const int lineWidth = opt.isDefault() ? defaultFrameWidth : opt.lineWidth(); - drawPanel( p, x, y, w, h, cg, flags & (Style_Sunken | Style_Down | Style_On), lineWidth, 0 ); - if ( lineWidth <= 1 ) - return; - - // draw extra shadinglines - TQPen oldPen = p->pen(); - p->setPen( cg.midlight() ); - p->drawLine( x+1, y+h-3, x+1, y+1 ); - p->drawLine( x+1, y+1, x+w-3, y+1 ); - p->setPen( cg.mid() ); - p->drawLine( x+1, y+h-2, x+w-2, y+h-2 ); - p->drawLine( x+w-2, y+h-2, x+w-2, y+1 ); - p->setPen(oldPen); - } - break; - - case PE_ScrollBarSubLine: - if ( !r.contains( d->mousePos ) && !(flags & Style_Active) ) - flags &= ~Style_MouseOver; - tqdrawPrimitive( PE_ButtonCommand, p, r, cg, flags, opt ); - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp), - p, r, cg, Style_Enabled | flags); - break; - - case PE_ScrollBarAddLine: - if ( !r.contains( d->mousePos ) ) - flags &= ~Style_MouseOver; - tqdrawPrimitive( PE_ButtonCommand, p, r, cg, flags, opt ); - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown), - p, r, cg, Style_Enabled | flags); - break; - - case PE_ScrollBarSubPage: - case PE_ScrollBarAddPage: - if ( !r.contains( d->mousePos ) ) - flags &= ~Style_MouseOver; - if ( r.isValid() ) - qDrawShadePanel( p, x, y, w, h, cg, FALSE, 1, hot ? &cg.brush( TQColorGroup::Midlight ) : &cg.brush( TQColorGroup::Button ) ); - break; - - case PE_ScrollBarSlider: - { - if ( !r.isValid() ) - break; - if ( !(r.contains( d->mousePos ) || flags & Style_Active) || !(flags & Style_Enabled ) ) - flags &= ~Style_MouseOver; - - TQPixmap pm( r.width(), r.height() ); - TQPainter bp( &pm ); - tqdrawPrimitive(PE_ButtonBevel, &bp, TQRect(0,0,r.width(),r.height()), cg, flags | Style_Enabled | Style_Raised); - if ( flags & Style_Horizontal ) { - const int sliderM = r.width() / 2; - if ( r.width() > 20 ) { - drawSeparator( &bp, sliderM-5, 2, sliderM-5, r.height()-3, cg ); - drawSeparator( &bp, sliderM+3, 2, sliderM+3, r.height()-3, cg ); - } - if ( r.width() > 10 ) - drawSeparator( &bp, sliderM-1, 2, sliderM-1, r.height()-3, cg ); - - } else { - const int sliderM = r.height() / 2; - if ( r.height() > 20 ) { - drawSeparator( &bp, 2, sliderM-5, r.width()-3, sliderM-5, cg ); - drawSeparator( &bp, 2, sliderM+3, r.width()-3, sliderM+3, cg ); - } - if ( r.height() > 10 ) - drawSeparator( &bp, 2, sliderM-1, r.width()-3, sliderM-1, cg ); - } - bp.end(); - p->drawPixmap( r.x(), r.y(), pm ); - } - - break; - - case PE_Splitter: - { - const int motifOffset = 10; - int sw = tqpixelMetric( PM_SplitterWidth ); - if ( flags & Style_Horizontal ) { - int xPos = x + w/2; - int kPos = motifOffset; - int kSize = sw - 2; - - qDrawShadeLine( p, xPos, kPos + kSize - 1 , - xPos, h, cg ); - - tqdrawPrimitive( PE_ButtonBevel, p, TQRect(xPos-sw/2+1, kPos, kSize, kSize+1), cg, flags, opt ); - qDrawShadeLine( p, xPos+2, 0, xPos, kPos, cg ); - } else { - int yPos = y + h/2; - int kPos = w - motifOffset - sw; - int kSize = sw - 2; - - qDrawShadeLine( p, 0, yPos, kPos, yPos, cg ); - tqdrawPrimitive( PE_ButtonBevel, p, TQRect( kPos, yPos-sw/2+1, kSize+1, kSize ), cg, flags, opt ); - qDrawShadeLine( p, kPos + kSize+1, yPos, w, yPos, cg ); - } - } - break; - - default: - TQMotifStyle::tqdrawPrimitive( pe, p, r, cg, flags, opt ); - break; - } -} - -/*! \reimp */ -void TQSGIStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - if ( widget == d->hotWidget ) - flags |= Style_MouseOver; - - switch ( element ) { - case CE_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *btn = (TQPushButton*)widget; - int x1, y1, x2, y2; - r.coords( &x1, &y1, &x2, &y2 ); - - p->setPen( cg.foreground() ); - p->setBrush( TQBrush( cg.button(), Qt::NoBrush ) ); - p->setBrushOrigin( -widget->backgroundOffset().x(), - -widget->backgroundOffset().y() ); - - int diw = tqpixelMetric( TQStyle::PM_ButtonDefaultIndicator ); - if ( btn->isDefault() || btn->autoDefault() ) { - x1 += diw; - y1 += diw; - x2 -= diw; - y2 -= diw; - } - - TQPointArray a; - if ( btn->isDefault() ) { - if ( diw == 0 ) { - a.setPoints( 9, - x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1, - x2-1, y1+1, x2-1, y2-1, x1+1, y2-1, x1+1, y1+1 ); - p->setPen( cg.shadow() ); - p->drawPolyline( a ); - x1 += 2; - y1 += 2; - x2 -= 2; - y2 -= 2; - } else { - qDrawShadePanel( p, btn->rect(), cg, TRUE ); - } - } - - TQBrush fill = cg.brush( TQColorGroup::Button ); - if ( !btn->isFlat() || btn->isOn() || btn->isDown() ) - tqdrawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1, x2-x1+1, y2-y1+1 ), cg, flags, opt ); - - if ( p->brush().style() != TQt::NoBrush ) - p->setBrush( TQt::NoBrush ); -#endif - } - break; - - case CE_PopupMenuItem: - { -#ifndef TQT_NO_POPUPMENU - if (! widget || opt.isDefault()) - break; - TQMenuItem *mi = opt.menuItem(); - if ( !mi ) - break; - const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget; - int tab = opt.tabWidth(); - int maxpmw = opt.maxIconWidth(); - bool dis = ! (flags & Style_Enabled); - bool checkable = popupmenu->isCheckable(); - bool act = flags & Style_Active; - int x, y, w, h; - - r.rect(&x, &y, &w, &h); - - if ( checkable ) - maxpmw = TQMAX( maxpmw, sgiCheckMarkSpace ); - int checkcol = maxpmw; - - if (mi && mi->isSeparator() ) { - p->setPen( cg.mid() ); - p->drawLine(x, y, x+w, y ); - return; - } - - int pw = sgiItemFrame; - - if ( act && !dis ) { - if ( tqpixelMetric( PM_DefaultFrameWidth ) > 1 ) - drawPanel( p, x, y, w, h, cg, FALSE, pw, - &TQT_TQBRUSH_OBJECT(cg.brush( TQColorGroup::Light )) ); - else - drawPanel( p, x+1, y+1, w-2, h-2, cg, FALSE, 1, - &TQT_TQBRUSH_OBJECT(cg.brush( TQColorGroup::Light )) ); - } else { - p->fillRect( x, y, w, h, cg.brush( TQColorGroup::Button ) ); - } - - if ( !mi ) - return; - - if ( mi->isChecked() ) { - if ( mi->iconSet() ) { - drawPanel( p, x+sgiItemFrame, y+sgiItemFrame, checkcol, h-2*sgiItemFrame, - cg, TRUE, 1, &TQT_TQBRUSH_OBJECT(cg.brush( TQColorGroup::Light )) ); - } - } else { - if ( !act ) - p->fillRect( x+sgiItemFrame, y+sgiItemFrame, checkcol, h-2*sgiItemFrame, - cg.brush( TQColorGroup::Button ) ); - } - - if ( mi->iconSet() ) { - TQIconSet::Mode mode = TQIconSet::Normal; - if ( act && !dis ) - mode = TQIconSet::Active; - TQPixmap pixmap; - if ( checkable && mi->isChecked() ) - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); - else - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - - int pixw = pixmap.width(); - int pixh = pixmap.height(); - TQRect cr( x+sgiItemFrame, y+sgiItemFrame, checkcol, h-2*sgiItemFrame ); - TQRect pmr( 0, 0, pixw, pixh ); - pmr.moveCenter( cr.center() ); - p->setPen( cg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - } else { - if ( checkable ) { - SFlags cflags = Style_Default; - if (! dis) - cflags |= Style_Enabled; - if (act) - cflags |= Style_On; - - if ( mi->isChecked() ) { - TQRect er( x+sgiItemFrame+1, y+sgiItemFrame+3, - tqpixelMetric(PM_IndicatorWidth), - tqpixelMetric(PM_IndicatorHeight) ); - er.addCoords( 1, 1, -1, -1 ); - tqdrawPrimitive( PE_ButtonBevel, p, er, cg, cflags, opt ); - er.addCoords( 0, 1, 1, 1 ); - tqdrawPrimitive( PE_CheckMark, p, er, cg, cflags | Style_On, opt ); - } - } - } - - p->setPen( cg.buttonText() ); - - TQColor discol; - if ( dis ) { - discol = cg.text(); - p->setPen( discol ); - } - - int xm = sgiItemFrame + checkcol + sgiItemHMargin; - - if ( mi->custom() ) { - int m = sgiItemVMargin; - p->save(); - mi->custom()->paint( p, cg, act, !dis, - x+xm, y+m, w-xm-tab+1, h-2*m ); - p->restore(); - } - - TQString s = mi->text(); - if ( !!s ) { - int t = s.find( '\t' ); - int m = sgiItemVMargin; - const int text_flags = TQt::AlignVCenter | TQt::DontClip | TQt::SingleLine; //special underline for &x - - TQString miText = s; - if ( t>=0 ) { - p->drawText(x+w-tab-sgiItemHMargin-sgiItemFrame, - y+m, tab, h-2*m, text_flags, miText.mid( t+1 ) ); - miText = s.mid( 0, t ); - } - TQRect br = p->fontMetrics().boundingRect( x+xm, y+m, w-xm-tab+1, h-2*m, - text_flags, mi->text() ); - - drawSGIPrefix( p, br.x()+p->fontMetrics().leftBearing(miText[0]), - br.y()+br.height()+p->fontMetrics().underlinePos()-2, &miText ); - p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, miText, miText.length() ); - } else { - if ( mi->pixmap() ) { - TQPixmap *pixmap = mi->pixmap(); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::OpaqueMode ); - p->drawPixmap( x+xm, y+sgiItemFrame, *pixmap ); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::TransparentMode ); - } - } - if ( mi->popup() ) { - int dim = (h-2*sgiItemFrame) / 2; - tqdrawPrimitive( PE_ArrowRight, p, TQRect( x+w-sgiArrowHMargin-sgiItemFrame-dim, y+h/2-dim/2, dim, dim ), cg, flags ); - } -#endif - } - break; - - case CE_MenuBarItem: - { -#ifndef TQT_NO_MENUDATA - if (opt.isDefault()) - break; - - TQMenuItem *mi = opt.menuItem(); - - bool active = flags & Style_Active; - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - - if ( active ) { - p->setPen( TQPen( cg.shadow(), 1) ); - p->drawRect( x, y, w, h ); - qDrawShadePanel( p, TQRect(x+1,y+1,w-2,h-2), cg, FALSE, 2, - &cg.brush( TQColorGroup::Light )); - } else { - p->fillRect( x, y, w, h, cg.brush( TQColorGroup::Button )); - } - - if ( mi->pixmap() ) - drawItem( p, r, TQt::AlignCenter|TQt::DontClip|TQt::SingleLine, - cg, mi->isEnabled(), mi->pixmap(), "", -1, TQT_TQCOLOR_CONST(&cg.buttonText()) ); - - if ( !!mi->text() ) { - TQString* text = new TQString(mi->text()); - TQRect br = p->fontMetrics().boundingRect( x, y-2, w+1, h, - TQt::AlignCenter|TQt::DontClip|TQt::SingleLine|TQt::ShowPrefix, mi->text() ); - - drawSGIPrefix( p, br.x()+p->fontMetrics().leftBearing((*text)[0]), - br.y()+br.height()+p->fontMetrics().underlinePos()-2, text ); - p->drawText( x, y-2, w+1, h, TQt::AlignCenter|TQt::DontClip|TQt::SingleLine, *text, text->length() ); - delete text; - } -#endif - } - break; - - case CE_CheckBox: - TQMotifStyle::tqdrawControl( element, p, widget, r, cg, flags, opt ); - break; - - default: - TQMotifStyle::tqdrawControl( element, p, widget, r, cg, flags, opt ); - break; - } -} - -/*! \reimp */ -void TQSGIStyle::tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget* widget, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags, - SCFlags sub, - SCFlags subActive, - const TQStyleOption& opt ) const -{ - if ( widget == d->hotWidget ) - flags |= Style_MouseOver; - - switch ( control ) { - case CC_Slider: - { -#ifndef TQT_NO_SLIDER - const TQSlider * slider = (const TQSlider *) widget; - - TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove, - opt), - handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle, - opt); - - if ((sub & SC_SliderGroove) && groove.isValid()) { - TQRegion region( groove ); - if ( ( sub & SC_SliderHandle ) && handle.isValid() ) - region = region.subtract( handle ); - if ( d->lastSliderRect.slider == slider && d->lastSliderRect.rect.isValid() ) - region = region.subtract( d->lastSliderRect.rect ); - p->setClipRegion( region ); - - TQRect grooveTop = groove; - grooveTop.addCoords( 1, 1, -1, -1 ); - tqdrawPrimitive( PE_ButtonBevel, p, grooveTop, cg, flags & ~Style_MouseOver, opt ); - - if ( flags & Style_HasFocus ) { - TQRect fr = subRect( SR_SliderFocusRect, widget ); - tqdrawPrimitive( PE_FocusRect, p, fr, cg, flags & ~Style_MouseOver ); - } - - if ( d->lastSliderRect.slider == slider && d->lastSliderRect.rect.isValid() ) { - if ( ( sub & SC_SliderHandle ) && handle.isValid() ) { - region = widget->rect(); - region = region.subtract( handle ); - p->setClipRegion( region ); - } else { - p->setClipping( FALSE ); - } - qDrawShadePanel( p, d->lastSliderRect.rect, cg, TRUE, 1, &cg.brush( TQColorGroup::Dark ) ); - } - p->setClipping( FALSE ); - } - - if (( sub & SC_SliderHandle ) && handle.isValid()) { - if ( flags & Style_MouseOver && !handle.contains( d->mousePos ) && subActive != SC_SliderHandle ) - flags &= ~Style_MouseOver; - tqdrawPrimitive( PE_ButtonBevel, p, handle, cg, flags ); - - if ( slider->orientation() == Qt::Horizontal ) { - TQCOORD mid = handle.x() + handle.width() / 2; - qDrawShadeLine( p, mid, handle.y(), mid, - handle.y() + handle.height() - 2, - cg, TRUE, 1); - } else { - TQCOORD mid = handle.y() + handle.height() / 2; - qDrawShadeLine( p, handle.x(), mid, - handle.x() + handle.width() - 2, mid, - cg, TRUE, 1); - } - } - - if ( sub & SC_SliderTickmarks ) - TQMotifStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, - SC_SliderTickmarks, subActive, - opt ); -#endif - break; - } - case CC_ComboBox: - { -#ifndef TQT_NO_COMBOBOX - const TQComboBox * cb = (TQComboBox *) widget; - - if (sub & SC_ComboBoxFrame) { - TQRect fr = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, cb, - SC_ComboBoxFrame ), cb ); - tqdrawPrimitive( PE_ButtonBevel, p, fr, cg, flags ); - } - - if ( sub & SC_ComboBoxArrow ) { - p->save(); - TQRect er = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, cb, SC_ComboBoxArrow ), cb ); - - er.addCoords( 0, 3, 0, 0 ); - - tqdrawPrimitive( PE_ArrowDown, p, er, cg, flags | Style_Enabled, opt ); - - int awh, ax, ay, sh, sy, dh, ew; - get_combo_parameters( widget->rect(), ew, awh, ax, ay, sh, dh, sy ); - - TQBrush arrow = cg.brush( TQColorGroup::Dark ); - p->fillRect( ax, sy-1, awh, sh, arrow ); - - p->restore(); - if ( cb->hasFocus() ) { - TQRect re = TQStyle::tqvisualRect( subRect( SR_ComboBoxFocusRect, cb ), cb ); - tqdrawPrimitive( PE_FocusRect, p, re, cg ); - } - } - if ( sub & SC_ComboBoxEditField ) { - if ( cb->editable() ) { - TQRect er = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, cb, - SC_ComboBoxEditField ), cb ); - er.addCoords( -1, -1, 1, 1); - qDrawShadePanel( p, TQRect( er.x()-1, er.y()-1, - er.width()+2, er.height()+2 ), - cg, TRUE, 1, &cg.brush( TQColorGroup::Button ) ); - } - } -#endif - p->setPen(cg.buttonText()); - break; - } - - case CC_ScrollBar: - { -#ifndef TQT_NO_SCROLLBAR - TQScrollBar *scrollbar = (TQScrollBar*)widget; - bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue()); - if ( maxedOut ) - flags &= ~Style_Enabled; - - TQRect handle = TQStyle::tqvisualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSlider, opt ), widget ); - - if ( sub & SC_ScrollBarGroove ) { - } - if ( sub & SC_ScrollBarAddLine ) { - TQRect er = TQStyle::tqvisualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarAddLine, opt ), widget ); - tqdrawPrimitive( PE_ScrollBarAddLine, p, er, cg, flags, opt ); - } - if ( sub & SC_ScrollBarSubLine ) { - TQRect er = TQStyle::tqvisualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSubLine, opt ), widget ); - tqdrawPrimitive( PE_ScrollBarSubLine, p, er, cg, flags, opt ); - } - if ( sub & SC_ScrollBarAddPage ) { - TQRect er = TQStyle::tqvisualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarAddPage, opt ), widget ); - TQRegion region( er ); - if ( d->lastScrollbarRect.scrollbar == scrollbar && - d->lastScrollbarRect.rect.isValid() && - er.intersects( d->lastScrollbarRect.rect ) ) { - region = region.subtract( d->lastScrollbarRect.rect ); - p->setClipRegion( region ); - } - if ( sub & SC_ScrollBarSlider && er.intersects( handle ) ) { - region = region.subtract( handle ); - p->setClipRegion( region ); - } - - tqdrawPrimitive( PE_ScrollBarAddPage, p, er, cg, flags & ~Style_MouseOver, opt ); - - if ( d->lastScrollbarRect.scrollbar == scrollbar && - d->lastScrollbarRect.rect.isValid() && - er.intersects( d->lastScrollbarRect.rect ) ) { - if ( sub & SC_ScrollBarSlider && handle.isValid() ) { - region = er; - region.subtract( handle ); - p->setClipRegion( region ); - } else { - p->setClipping( FALSE ); - } - qDrawShadePanel( p, d->lastScrollbarRect.rect, cg, TRUE, 1, &cg.brush( TQColorGroup::Dark ) ); - } - p->setClipping( FALSE ); - } - if ( sub & SC_ScrollBarSubPage ) { - TQRect er = TQStyle::tqvisualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSubPage, opt ), widget ); - TQRegion region( er ); - if ( d->lastScrollbarRect.scrollbar == scrollbar && - d->lastScrollbarRect.rect.isValid() && - er.intersects( d->lastScrollbarRect.rect ) ) { - region = region.subtract( d->lastScrollbarRect.rect ); - p->setClipRegion( region ); - } - if ( sub & SC_ScrollBarSlider && er.intersects( handle ) ) { - region = region.subtract( handle ); - p->setClipRegion( region ); - } - tqdrawPrimitive( PE_ScrollBarSubPage, p, er, cg, flags & ~Style_MouseOver, opt ); - if ( d->lastScrollbarRect.scrollbar == scrollbar && - d->lastScrollbarRect.rect.isValid() && - er.intersects( d->lastScrollbarRect.rect ) ) { - if ( sub & SC_ScrollBarSlider && handle.isValid() ) { - region = er; - region.subtract( handle ); - p->setClipRegion( region ); - } else { - p->setClipping( FALSE ); - } - qDrawShadePanel( p, d->lastScrollbarRect.rect, cg, TRUE, 1, &cg.brush( TQColorGroup::Dark ) ); - } - p->setClipping( FALSE ); - } - if ( sub & SC_ScrollBarSlider ) { - p->setClipping( FALSE ); - if ( subActive == SC_ScrollBarSlider ) - flags |= Style_Active; - - tqdrawPrimitive( PE_ScrollBarSlider, p, handle, cg, flags, opt ); - } -#endif - } - break; - - default: - TQMotifStyle::tqdrawComplexControl( control, p, widget, r, cg, flags, sub, subActive, opt ); - break; - } -} - -/*!\reimp -*/ -TQSize TQSGIStyle::tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& opt ) const -{ - TQSize sz(contentsSize); - - switch(contents) { - case CT_PopupMenuItem: - { -#ifndef TQT_NO_POPUPMENU - if (! widget || opt.isDefault()) - break; - - TQMenuItem *mi = opt.menuItem(); - sz = TQMotifStyle::tqsizeFromContents( contents, widget, contentsSize, - opt ); - // SGI checkmark items needs a bit more room - const TQPopupMenu *popup = (TQPopupMenu *) widget; - if ( popup && popup->isCheckable() ) - sz.setWidth( sz.width() + 8 ); - // submenu indicator needs a bit more room - if (mi->popup()) - sz.setWidth( sz.width() + sgiTabSpacing ); -#endif - break; - } - case CT_ComboBox: - sz.rwidth() += 30; - break; - - default: - sz = TQMotifStyle::tqsizeFromContents( contents, widget, contentsSize, opt ); - break; - } - - return sz; -} - -/*! \reimp */ -TQRect TQSGIStyle::subRect( SubRect r, const TQWidget *widget ) const -{ - TQRect rect; - - switch ( r ) { - case SR_ComboBoxFocusRect: - { - int awh, ax, ay, sh, sy, dh, ew; - int fw = tqpixelMetric( PM_DefaultFrameWidth, widget ); - TQRect tr = widget->rect(); - - tr.addCoords( fw, fw, -fw, -fw ); - get_combo_parameters( tr, ew, awh, ax, ay, sh, dh, sy ); - rect.setRect(ax-2, ay-2, awh+4, awh+sh+dh+4); - } - break; - default: - return TQMotifStyle::subRect( r, widget ); - } - - return rect; -} - -/*! \reimp */ -TQRect TQSGIStyle::querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sub, - const TQStyleOption& opt ) const -{ - switch ( control ) { - case CC_ComboBox: - switch ( sub ) { - case SC_ComboBoxFrame: - return widget->rect(); - - case SC_ComboBoxArrow: { - int ew, awh, sh, dh, ax, ay, sy; - int fw = tqpixelMetric( PM_DefaultFrameWidth, widget ); - TQRect cr = widget->rect(); - cr.addCoords( fw, fw, -fw, -fw ); - get_combo_parameters( cr, ew, awh, ax, ay, sh, dh, sy ); - return TQRect( ax, ay, awh, awh ); } - - case SC_ComboBoxEditField: { - int fw = tqpixelMetric( PM_DefaultFrameWidth, widget ); - TQRect rect = widget->rect(); - rect.addCoords( fw, fw, -fw, -fw ); - int ew = get_combo_extra_width( rect.height() ); - rect.addCoords( 1, 1, -1-ew, -1 ); - return rect; } - - default: - break; - } - break; - case CC_ScrollBar: - return TQCommonStyle::querySubControlMetrics( control, widget, sub, opt ); - default: break; - } - return TQMotifStyle::querySubControlMetrics( control, widget, sub, opt ); -} - -#endif // TQT_NO_STYLE_SGI diff --git a/tqtinterface/qt4/src/styles/tqsgistyle.h b/tqtinterface/qt4/src/styles/tqsgistyle.h deleted file mode 100644 index 8458a70..0000000 --- a/tqtinterface/qt4/src/styles/tqsgistyle.h +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Definition of SGI-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQSGISTYLE_H -#define TQSGISTYLE_H - -#ifndef TQT_H -#include "tqmotifstyle.h" -#include "tqguardedptr.h" -#include "tqwidget.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_SGI) || defined(TQT_PLUGIN) - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_SGI -#else -#define TQ_EXPORT_STYLE_SGI TQ_EXPORT -#endif - -class TQSGIStylePrivate; - -class TQ_EXPORT_STYLE_SGI TQSGIStyle: public TQMotifStyle -{ - Q_OBJECT - TQ_OBJECT -public: - TQSGIStyle( bool useHighlightCols = FALSE ); - virtual ~TQSGIStyle(); - -#if !defined(TQ_NO_USING_KEYWORD) - using TQMotifStyle::polish; -#endif - void polish( TQWidget* ); - void unPolish( TQWidget* ); - void polish( TQApplication* ); - void unPolish( TQApplication* ); - - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags how = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQWidget* widget, - const TQRect& r, - const TQColorGroup& cg, - SFlags how = Style_Default, -#ifdef TQ_TQDOC - SCFlags sub = SC_All, -#else - SCFlags sub = (uint)SC_All, -#endif - SCFlags subActive = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const; - - TQSize tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect subRect( SubRect r, const TQWidget *widget ) const; - TQRect querySubControlMetrics( TQ_ComplexControl control, - const TQWidget *widget, - SubControl sc, - const TQStyleOption& = TQStyleOption::Default ) const; - -protected: - bool eventFilter( TQObject*, TQEvent*); - -private: - TQSGIStylePrivate *d; - - uint isApplicationStyle :1; -#if defined(TQ_DISABLE_COPY) - TQSGIStyle( const TQSGIStyle & ); - TQSGIStyle& operator=( const TQSGIStyle & ); -#endif - -}; - -#endif // TQT_NO_STYLE_SGI - -#endif // TQSGISTYLE_H diff --git a/tqtinterface/qt4/src/styles/tqstylefactory.cpp b/tqtinterface/qt4/src/styles/tqstylefactory.cpp deleted file mode 100644 index 6d72738..0000000 --- a/tqtinterface/qt4/src/styles/tqstylefactory.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQStyleFactory class -** -** Created : 001103 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqstyleinterface_p.h" // up here for GCC 2.7.* compatibility -#include "tqstylefactory.h" - -#ifndef TQT_NO_STYLE - -#include "tqapplication.h" -#include "tqwindowsstyle.h" -#include "tqmotifstyle.h" -#include "tqcdestyle.h" -#include "tqmotifplusstyle.h" -#include "tqplatinumstyle.h" -#include "tqsgistyle.h" -#include "tqcompactstyle.h" -#ifndef TQT_NO_STYLE_WINDOWSXP -#include "tqwindowsxpstyle.h" -#endif -#ifndef TQT_NO_STYLE_AQUA -#include "tqaquastyle.h" -#endif -#ifndef TQT_NO_STYLE_POCKETPC -#include "tqpocketpcstyle_wce.h" -#endif - -#if !defined( TQT_NO_STYLE_MAC ) && defined( TQ_WS_MAC ) -TQString p2qstring(const unsigned char *c); //qglobal.cpp -#include "tqt_mac.h" -#include "tqmacstyle_mac.h" -#endif -#include <stdlib.h> - -#include <private/tqpluginmanager_p.h> -#ifndef TQT_NO_COMPONENT -class TQStyleFactoryPrivate : public TQObject -{ -public: - TQStyleFactoryPrivate(); - ~TQStyleFactoryPrivate(); - - static TQPluginManager<TQStyleFactoryInterface> *manager; -}; - -static TQStyleFactoryPrivate *instance = 0; -TQPluginManager<TQStyleFactoryInterface> *TQStyleFactoryPrivate::manager = 0; - -TQStyleFactoryPrivate::TQStyleFactoryPrivate() -: TQObject( tqApp ) -{ - manager = new TQPluginManager<TQStyleFactoryInterface>( IID_TQStyleFactory, TQApplication::libraryPaths(), "/styles", FALSE ); -} - -TQStyleFactoryPrivate::~TQStyleFactoryPrivate() -{ - delete manager; - manager = 0; - - instance = 0; -} - -#endif //TQT_NO_COMPONENT - -/*! - \class TQStyleFactory tqstylefactory.h - \brief The TQStyleFactory class creates TQStyle objects. - - The style factory creates a TQStyle object for a given key with - TQStyleFactory::create(key). - - The styles are either built-in or dynamically loaded from a style - plugin (see \l TQStylePlugin). - - TQStyleFactory::keys() returns a list of valid keys, typically - including "Windows", "Motif", "CDE", "MotifPlus", "Platinum", - "SGI" and "Compact". Depending on the platform, "WindowsXP", - "Aqua" or "Macintosh" may be available. -*/ - -/*! - Creates a TQStyle object that matches \a key case-insensitively. - This is either a built-in style, or a style from a style plugin. - - \sa keys() -*/ -TQStyle *TQStyleFactory::create( const TQString& key ) -{ - TQStyle *ret = 0; - TQString style = key.lower(); -#ifndef TQT_NO_STYLE_WINDOWS - if ( style == "windows" ) - ret = new TQWindowsStyle; - else -#endif -#ifndef TQT_NO_STYLE_WINDOWSXP - if ( style == "windowsxp" ) - ret = new TQWindowsXPStyle; - else -#endif -#ifndef TQT_NO_STYLE_MOTIF - if ( style == "motif" ) - ret = new TQMotifStyle; - else -#endif -#ifndef TQT_NO_STYLE_CDE - if ( style == "cde" ) - ret = new TQCDEStyle; - else -#endif -#ifndef TQT_NO_STYLE_MOTIFPLUS - if ( style == "motifplus" ) - ret = new TQMotifPlusStyle; - else -#endif -#ifndef TQT_NO_STYLE_PLATINUM - if ( style == "platinum" ) - ret = new TQPlatinumStyle; - else -#endif -#ifndef TQT_NO_STYLE_SGI - if ( style == "sgi") - ret = new TQSGIStyle; - else -#endif -#ifndef TQT_NO_STYLE_COMPACT - if ( style == "compact" ) - ret = new TQCompactStyle; - else -#endif -#ifndef TQT_NO_STYLE_AQUA - if ( style == "aqua" ) - ret = new TQAquaStyle; -#endif -#ifndef TQT_NO_STYLE_POCKETPC - if ( style == "pocketpc" ) - ret = new TQPocketPCStyle; -#endif -#if !defined( TQT_NO_STYLE_MAC ) && defined( TQ_WS_MAC ) - if( style.left(9) == "macintosh" ) - ret = new TQMacStyle; -#endif - { } // Keep these here - they make the #ifdefery above work - -#ifndef TQT_NO_COMPONENT - if(!ret) { - if ( !instance ) - instance = new TQStyleFactoryPrivate; - - TQInterfacePtr<TQStyleFactoryInterface> iface; - TQStyleFactoryPrivate::manager->queryInterface( style, &iface ); - - if ( iface ) - ret = iface->create( style ); - } - if(ret) - TQT_TQOBJECT(ret)->setName(key); -#endif - return ret; -} - -#ifndef TQT_NO_STRINGLIST -/*! - Returns the list of keys this factory can create styles for. - - \sa create() -*/ -TQStringList TQStyleFactory::keys() -{ - TQStringList list; -#ifndef TQT_NO_COMPONENT - if ( !instance ) - instance = new TQStyleFactoryPrivate; - - list = TQStyleFactoryPrivate::manager->featureList(); -#endif //TQT_NO_COMPONENT - -#ifndef TQT_NO_STYLE_WINDOWS - if ( !list.contains( "Windows" ) ) - list << "Windows"; -#endif -#ifndef TQT_NO_STYLE_WINDOWSXP - if ( !list.contains( "WindowsXP" ) && TQWindowsXPStyle::resolveSymbols() ) - list << "WindowsXP"; -#endif -#ifndef TQT_NO_STYLE_MOTIF - if ( !list.contains( "Motif" ) ) - list << "Motif"; -#endif -#ifndef TQT_NO_STYLE_CDE - if ( !list.contains( "CDE" ) ) - list << "CDE"; -#endif -#ifndef TQT_NO_STYLE_MOTIFPLUS - if ( !list.contains( "MotifPlus" ) ) - list << "MotifPlus"; -#endif -#ifndef TQT_NO_STYLE_PLATINUM - if ( !list.contains( "Platinum" ) ) - list << "Platinum"; -#endif -#ifndef TQT_NO_STYLE_SGI - if ( !list.contains( "SGI" ) ) - list << "SGI"; -#endif -#ifndef TQT_NO_STYLE_COMPACT - if ( !list.contains( "Compact" ) ) - list << "Compact"; -#endif -#ifndef TQT_NO_STYLE_ATQUA - if ( !list.contains( "Aqua" ) ) - list << "Aqua"; -#endif -#if !defined( TQT_NO_STYLE_MAC ) && defined( TQ_WS_MAC ) - TQString mstyle = "Macintosh"; - Collection c = NewCollection(); - if (c) { - GetTheme(c); - Str255 str; - long int s = 256; - if(!GetCollectionItem(c, kThemeNameTag, 0, &s, &str)) - mstyle += " (" + p2qstring(str) + ")"; - } - if (!list.contains(mstyle)) - list << mstyle; - DisposeCollection(c); -#endif - - return list; -} -#endif -#endif // TQT_NO_STYLE diff --git a/tqtinterface/qt4/src/styles/tqstylefactory.h b/tqtinterface/qt4/src/styles/tqstylefactory.h deleted file mode 100644 index 0b9a37d..0000000 --- a/tqtinterface/qt4/src/styles/tqstylefactory.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** ... -** -** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQSTYLEFACTORY_H -#define TQSTYLEFACTORY_H - -#ifndef TQT_H -#include "tqstringlist.h" -#endif // TQT_H - -#ifndef TQT_NO_STYLE - -class TQString; -class TQStyle; - -class TQ_EXPORT TQStyleFactory -{ -public: -#ifndef TQT_NO_STRINGLIST - static TQStringList keys(); -#endif - static TQStyle *create( const TQString& ); -}; - -#endif //TQT_NO_STYLE - -#endif //TQSTYLEFACTORY_H diff --git a/tqtinterface/qt4/src/styles/tqstyleinterface_p.h b/tqtinterface/qt4/src/styles/tqstyleinterface_p.h deleted file mode 100644 index 6b401c2..0000000 --- a/tqtinterface/qt4/src/styles/tqstyleinterface_p.h +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** ... -** -** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQSTYLEINTERFACE_P_H -#define TQSTYLEINTERFACE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the TQt API. This header file may -// change from version to version without notice, or even be -// removed. -// -// We mean it. -// -// - -#ifndef TQT_H -#include <private/tqcom_p.h> -#endif // TQT_H - -#ifndef TQT_NO_STYLE -#ifndef TQT_NO_COMPONENT - -class TQStyle; - -// {FC1B6EBE-053C-49c1-A483-C377739AB9A5} -#ifndef IID_TQStyleFactory -#define IID_TQStyleFactory TQUuid(0xfc1b6ebe, 0x53c, 0x49c1, 0xa4, 0x83, 0xc3, 0x77, 0x73, 0x9a, 0xb9, 0xa5) -#endif - -struct TQ_EXPORT TQStyleFactoryInterface : public TQFeatureListInterface -{ - virtual TQStyle* create( const TQString& style ) = 0; -}; - -#endif //TQT_NO_COMPONENT -#endif //TQT_NO_STYLE - -#endif //TQSTYLEINTERFACE_P_H diff --git a/tqtinterface/qt4/src/styles/tqstyleplugin.cpp b/tqtinterface/qt4/src/styles/tqstyleplugin.cpp deleted file mode 100644 index 970d4bb..0000000 --- a/tqtinterface/qt4/src/styles/tqstyleplugin.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQSqlDriverPlugin class -** -** Created : 010920 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqstyleplugin.h" - -#ifndef TQT_NO_STYLE -#ifndef TQT_NO_COMPONENT - -#include "tqstyleinterface_p.h" -#include "tqobjectcleanuphandler.h" -#include "tqstyle.h" - -/*! - \class TQStylePlugin tqstyleplugin.h - \brief The TQStylePlugin class provides an abstract base for custom TQStyle plugins. - - \ingroup plugins - - The style plugin is a simple plugin interface that makes it easy - to create custom styles that can be loaded dynamically into - applications with a TQStyleFactory. - - Writing a style plugin is achieved by subclassing this base class, - reimplementing the pure virtual functions keys() and create(), and - exporting the class with the \c TQ_EXPORT_PLUGIN macro. See the - \link plugins-howto.html plugins documentation\endlink for an - example. -*/ - -/*! - \fn TQStringList TQStylePlugin::keys() const - - Returns the list of style keys this plugin supports. - - These keys are usually the class names of the custom styles that - are implemented in the plugin. - - \sa create() -*/ - -/*! - \fn TQStyle* TQStylePlugin::create( const TQString& key ) - - Creates and returns a TQStyle object for the style key \a key. The - style key is usually the class name of the required style. - - \sa keys() -*/ - -class TQStylePluginPrivate : public TQStyleFactoryInterface, public TQLibraryInterface -{ -public: - TQStylePluginPrivate( TQStylePlugin *p ) - : plugin( p ) - { - } - - virtual ~TQStylePluginPrivate(); - - TQRESULT queryInterface( const TQUuid &iid, TQUnknownInterface **iface ); - TQ_REFCOUNT; - - TQStringList featureList() const; - TQStyle *create( const TQString &key ); - - bool init(); - void cleanup(); - bool canUnload() const; - -private: - TQStylePlugin *plugin; - TQObjectCleanupHandler styles; -}; - -TQRESULT TQStylePluginPrivate::queryInterface( const TQUuid &iid, TQUnknownInterface **iface ) -{ - *iface = 0; - - if ( iid == IID_TQUnknown ) - *iface = (TQStyleFactoryInterface*)this; - else if ( iid == IID_TQFeatureList ) - *iface = (TQFeatureListInterface*)this; - else if ( iid == IID_TQStyleFactory ) - *iface = (TQStyleFactoryInterface*)this; - else if ( iid == IID_TQLibrary ) - *iface = (TQLibraryInterface*) this; - else - return TQE_NOINTERFACE; - - (*iface)->addRef(); - return TQS_OK; -} - -TQStylePluginPrivate::~TQStylePluginPrivate() -{ - delete plugin; -} - -TQStringList TQStylePluginPrivate::featureList() const -{ - return plugin->keys(); -} - -TQStyle *TQStylePluginPrivate::create( const TQString &key ) -{ - TQStyle *st = plugin->create( key ); - styles.add( TQT_TQOBJECT(st) ); - return st; -} - -bool TQStylePluginPrivate::init() -{ - return TRUE; -} - -void TQStylePluginPrivate::cleanup() -{ - styles.clear(); -} - -bool TQStylePluginPrivate::canUnload() const -{ - return styles.isEmpty(); -} - - -/*! - Constructs a style plugin. This is invoked automatically by the - \c TQ_EXPORT_PLUGIN macro. -*/ -TQStylePlugin::TQStylePlugin() - : TQGPlugin( (TQStyleFactoryInterface*)(d = new TQStylePluginPrivate( this )) ) -{ -} - -/*! - Destroys the style plugin. - - You never have to call this explicitly. TQt destroys a plugin - automatically when it is no longer used. -*/ -TQStylePlugin::~TQStylePlugin() -{ - // don't delete d, as this is deleted by d -} - -#endif // TQT_NO_COMPONENT -#endif // TQT_NO_STYLE diff --git a/tqtinterface/qt4/src/styles/tqstyleplugin.h b/tqtinterface/qt4/src/styles/tqstyleplugin.h deleted file mode 100644 index 75245f3..0000000 --- a/tqtinterface/qt4/src/styles/tqstyleplugin.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Definition of TQStylePlugin class -** -** Created : 010920 -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQSTYLEPLUGIN_H -#define TQSTYLEPLUGIN_H - -#ifndef TQT_H -#include "tqgplugin.h" -#include "tqstringlist.h" -#endif // TQT_H - -#ifndef TQT_NO_STYLE -#ifndef TQT_NO_COMPONENT - -class TQStyle; -class TQStylePluginPrivate; - -class TQ_EXPORT TQStylePlugin : public TQGPlugin -{ - Q_OBJECT - TQ_OBJECT -public: - TQStylePlugin(); - ~TQStylePlugin(); - - virtual TQStringList keys() const = 0; - virtual TQStyle *create( const TQString &key ) = 0; - -private: - TQStylePluginPrivate *d; -}; - -#endif // TQT_NO_COMPONENT -#endif // TQT_NO_STYLE - -#endif // TQSTYLEPLUGIN_H diff --git a/tqtinterface/qt4/src/styles/tqwindowsstyle.cpp b/tqtinterface/qt4/src/styles/tqwindowsstyle.cpp deleted file mode 100644 index 7588997..0000000 --- a/tqtinterface/qt4/src/styles/tqwindowsstyle.cpp +++ /dev/null @@ -1,2166 +0,0 @@ -/**************************************************************************** -** -** Implementation of Windows-like style class -** -** Created : 981231 -** -** Copyright (C) 1998-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -// ** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqwindowsstyle.h" - -#if !defined(TQT_NO_STYLE_WINDOWS) || defined(TQT_PLUGIN) - -#include "tqpopupmenu.h" -#include "tqapplication.h" -#include "tqpainter.h" -#include "tqdrawutil.h" // for now -#include "tqpixmap.h" // for now -#include "tqwidget.h" -#include "tqbrush.h" -#include "tqlabel.h" -#include "tqimage.h" -#include "tqpushbutton.h" -#include "tqcombobox.h" -#include "tqlistbox.h" -#include "tqwidget.h" -#include "tqrangecontrol.h" -#include "tqscrollbar.h" -#include "tqslider.h" -#include "tqtabwidget.h" -#include "tqtabbar.h" -#include "tqlistview.h" -#include "tqbitmap.h" -#include "tqcleanuphandler.h" -#include "tqdockwindow.h" -#include "tqobjectlist.h" -#include "tqmenubar.h" - -#if defined(TQ_WS_WIN) -#include "tqt_windows.h" -#endif - -#include <limits.h> - - -static const int windowsItemFrame = 2; // menu item frame width -static const int windowsSepHeight = 2; // separator item height -static const int windowsItemHMargin = 3; // menu item hor text margin -static const int windowsItemVMargin = 2; // menu item ver text margin -static const int windowsArrowHMargin = 6; // arrow horizontal margin -static const int windowsTabSpacing = 12; // space between text and tab -static const int windowsCheckMarkHMargin = 2; // horiz. margins of check mark -static const int windowsRightBorder = 12; // right border on windows -static const int windowsCheckMarkWidth = 12; // checkmarks width on windows - -static bool use2000style = TRUE; - -enum TQSliderDirection { SlUp, SlDown, SlLeft, SlRight }; - -// A friendly class providing access to TQMenuData's protected member. -class FriendlyMenuData : public TQMenuData -{ - friend class TQWindowsStyle; -}; - -// Private class -class TQWindowsStyle::Private : public TQObject -{ -public: - Private(TQWindowsStyle *parent); - - bool hasSeenAlt(const TQWidget *widget) const; - bool altDown() const { return alt_down; } - -protected: - bool eventFilter(TQObject *o, TQEvent *e); - -private: - TQPtrList<TQWidget> seenAlt; - bool alt_down; - int menuBarTimer; -}; - -TQWindowsStyle::Private::Private(TQWindowsStyle *parent) -: TQObject(parent, "TQWindowsStylePrivate"), alt_down(FALSE), menuBarTimer(0) -{ -} - -// Returns true if the toplevel parent of \a widget has seen the Alt-key -bool TQWindowsStyle::Private::hasSeenAlt(const TQWidget *widget) const -{ - widget = widget->tqtopLevelWidget(); - return seenAlt.contains(widget); -} - -// Records Alt- and Focus events -bool TQWindowsStyle::Private::eventFilter(TQObject *o, TQEvent *e) -{ - if (!o->isWidgetType()) - return TQObject::eventFilter(o, e); - - TQWidget *widget = ::tqqt_cast<TQWidget*>(o); - - switch(e->type()) { - case TQEvent::KeyPress: - if (((TQKeyEvent*)e)->key() == Qt::Key_Alt) { - widget = widget->tqtopLevelWidget(); - - // Alt has been pressed - find all widgets that care - TQObjectList *l = widget->queryList("TQWidget"); - TQObjectListIt it( *l ); - TQWidget *w; - while ( (w = (TQWidget*)it.current()) != 0 ) { - ++it; - if (w->isTopLevel() || !w->isVisible() || - w->tqstyle().tqstyleHint(SH_UnderlineAccelerator, w)) - l->removeRef(TQT_TQOBJECT(w)); - } - // Update states before repainting - seenAlt.append(widget); - alt_down = TRUE; - - // Repaint all relevant widgets - it.toFirst(); - while ( (w = (TQWidget*)it.current()) != 0 ) { - ++it; - w->tqrepaint(FALSE); - } - delete l; - } - break; - case TQEvent::KeyRelease: - if (((TQKeyEvent*)e)->key() == Qt::Key_Alt) { - widget = widget->tqtopLevelWidget(); - - // Update state - alt_down = FALSE; - // Repaint only menubars - TQObjectList *l = widget->queryList("TQMenuBar"); - TQObjectListIt it( *l ); - TQMenuBar *menuBar; - while ( (menuBar = (TQMenuBar*)it.current()) != 0) { - ++it; - menuBar->tqrepaint(FALSE); - } - } - break; - case TQEvent::FocusIn: - case TQEvent::FocusOut: - { - // Menubars toggle based on focus - TQMenuBar *menuBar = ::tqqt_cast<TQMenuBar*>(o); - if (menuBar && !menuBarTimer) // delayed tqrepaint to avoid flicker - menuBarTimer = menuBar->startTimer(0); - } - break; - case TQEvent::Close: - // Reset widget when closing - seenAlt.removeRef(TQT_TQWIDGET(widget)); - seenAlt.removeRef(TQT_TQWIDGET(widget->tqtopLevelWidget())); - break; - case TQEvent::Timer: - { - TQMenuBar *menuBar = ::tqqt_cast<TQMenuBar*>(o); - TQTimerEvent *te = (TQTimerEvent*)e; - if (menuBar && te->timerId() == menuBarTimer) { - menuBar->killTimer(te->timerId()); - menuBarTimer = 0; - menuBar->tqrepaint(FALSE); - return TRUE; - } - } - break; - default: - break; - } - - return TQObject::eventFilter(o, e); -} - -/*! - \class TQWindowsStyle tqwindowsstyle.h - \brief The TQWindowsStyle class provides a Microsoft Windows-like look and feel. - - \ingroup appearance - - This style is TQt's default GUI style on Windows. -*/ - -/*! - Constructs a TQWindowsStyle -*/ -TQWindowsStyle::TQWindowsStyle() : TQCommonStyle(), d(0) -{ -#if defined(TQ_OS_WIN32) - use2000style = qWinVersion() != TQt::WV_NT && qWinVersion() != TQt::WV_95; -#endif -} - -/*! \reimp */ -TQWindowsStyle::~TQWindowsStyle() -{ - delete d; -} - -/*! \reimp */ -void TQWindowsStyle::polish(TQApplication *app) -{ - // We only need the overhead when shortcuts are sometimes hidden - if (!tqstyleHint(SH_UnderlineAccelerator, 0)) { - d = new Private(this); - app->installEventFilter(d); - } -} - -/*! \reimp */ -void TQWindowsStyle::unPolish(TQApplication *) -{ - delete d; - d = 0; -} - -/*! \reimp */ -void TQWindowsStyle::polish(TQWidget *widget) -{ - TQCommonStyle::polish(widget); -} - -/*! \reimp */ -void TQWindowsStyle::unPolish(TQWidget *widget) -{ - TQCommonStyle::polish(widget); -} - -/*! \reimp */ -void TQWindowsStyle::polish( TQPalette &pal ) -{ - TQCommonStyle::polish(pal); -} - -/*! \reimp */ -void TQWindowsStyle::tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - TQRect rr( r ); - switch (pe) { - case PE_ButtonCommand: - { - TQBrush fill; - - if (! (flags & Style_Down) && (flags & Style_On)) - fill = TQBrush(cg.light(), Qt::Dense4Pattern); - else - fill = cg.brush(TQColorGroup::Button); - - if (flags & Style_ButtonDefault && flags & Style_Down) { - p->setPen(cg.dark()); - p->setBrush(fill); - p->drawRect(r); - } else if (flags & (Style_Raised | Style_Down | Style_On | Style_Sunken)) - qDrawWinButton(p, r, cg, flags & (Style_Sunken | Style_Down | - Style_On), &fill); - else - p->fillRect(r, fill); - break; - } - - case PE_ButtonBevel: - case PE_HeaderSection: - { - TQBrush fill; - - if (! (flags & Style_Down) && (flags & Style_On)) - fill = TQBrush(cg.light(), Qt::Dense4Pattern); - else - fill = cg.brush(TQColorGroup::Button); - - if (flags & (Style_Raised | Style_Down | Style_On | Style_Sunken)) - qDrawWinButton(p, r, cg, flags & (Style_Down | Style_On), &fill); - else - p->fillRect(r, fill); - break; - } -#if defined(TQ_WS_WIN) - case PE_HeaderArrow: - p->save(); - if ( flags & Style_Up ) { // invert logic to follow Windows style guide - TQPointArray pa( 3 ); - p->setPen( cg.light() ); - p->drawLine( r.x() + r.width(), r.y(), r.x() + r.width() / 2, r.height() ); - p->setPen( cg.dark() ); - pa.setPoint( 0, r.x() + r.width() / 2, r.height() ); - pa.setPoint( 1, r.x(), r.y() ); - pa.setPoint( 2, r.x() + r.width(), r.y() ); - p->drawPolyline( pa ); - } else { - TQPointArray pa( 3 ); - p->setPen( cg.light() ); - pa.setPoint( 0, r.x(), r.height() ); - pa.setPoint( 1, r.x() + r.width(), r.height() ); - pa.setPoint( 2, r.x() + r.width() / 2, r.y() ); - p->drawPolyline( pa ); - p->setPen( cg.dark() ); - p->drawLine( r.x(), r.height(), r.x() + r.width() / 2, r.y() ); - } - p->restore(); - break; -#endif - - case PE_ButtonDefault: - p->setPen(cg.shadow()); - p->drawRect(r); - break; - - case PE_ButtonTool: - { - TQBrush fill; - bool stippled = FALSE; - - if (! (flags & (Style_Down | Style_MouseOver)) && - (flags & Style_On) && - use2000style) { - fill = TQBrush(cg.light(), Qt::Dense4Pattern); - stippled = TRUE; - } else - fill = cg.brush(TQColorGroup::Button); - - if (flags & (Style_Raised | Style_Down | Style_On)) { - if (flags & Style_AutoRaise) { - qDrawShadePanel(p, r, cg, flags & (Style_Down | Style_On), - 1, &fill); - - if (stippled) { - p->setPen(cg.button()); - p->drawRect(r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2); - } - } else - qDrawWinButton(p, r, cg, flags & (Style_Down | Style_On), - &fill); - } else - p->fillRect(r, fill); - - break; - } - - case PE_FocusRect: - if (opt.isDefault()) - p->drawWinFocusRect(r); -#ifndef USE_QT4 // [FIXME] - else - p->drawWinFocusRect(r, opt.color()); -#endif // USE_QT4 - break; - - case PE_Indicator: - { - TQBrush fill; - if (flags & Style_NoChange) { - TQBrush b = p->brush(); - TQColor c = p->backgroundColor(); - p->setBackgroundMode( Qt::TransparentMode ); - p->setBackgroundColor( Qt::green ); - fill = TQBrush(cg.base(), Qt::Dense4Pattern); - p->setBackgroundColor( c ); - p->setBrush( b ); - } else if (flags & Style_Down) - fill = cg.brush( TQColorGroup::Button ); - else if (flags & Style_Enabled) - fill = cg.brush( TQColorGroup::Base ); - else - fill = cg.brush( TQColorGroup::Background ); - - qDrawWinPanel( p, r, cg, TRUE, &fill ); - - if (flags & Style_NoChange ) - p->setPen( cg.dark() ); - else - p->setPen( cg.text() ); - } // FALLTHROUGH - case PE_CheckListIndicator: - if ( pe == PE_CheckListIndicator ) { //since we fall through from PE_Indicator - if ( flags & Style_Enabled ) - p->setPen( TQPen( cg.text(), 1 ) ); - else - p->setPen( TQPen( cg.dark(), 1 ) ); - if ( flags & Style_NoChange ) - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->drawRect( r.x()+1, r.y()+1, 11, 11 ); - } - if (! (flags & Style_Off)) { - TQPointArray a( 7*2 ); - int i, xx, yy; - xx = rr.x() + 3; - yy = rr.y() + 5; - - for ( i=0; i<3; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - - yy -= 2; - for ( i=3; i<7; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - - p->drawLineSegments( a ); - } - break; - - case PE_ExclusiveIndicator: - { -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - static const TQCOORD pts1[] = { // dark lines - 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; - static const TQCOORD pts2[] = { // black lines - 2,8, 1,7, 1,4, 2,3, 2,2, 3,2, 4,1, 7,1, 8,2, 9,2 }; - static const TQCOORD pts3[] = { // background lines - 2,9, 3,9, 4,10, 7,10, 8,9, 9,9, 9,8, 10,7, 10,4, 9,3 }; - static const TQCOORD pts4[] = { // white lines - 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, - 11,4, 10,3, 10,2 }; - static const TQCOORD pts5[] = { // inner fill - 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; - - // make sure the indicator is square - TQRect ir = r; - - if (r.width() < r.height()) { - ir.setTop(r.top() + (r.height() - r.width()) / 2); - ir.setHeight(r.width()); - } else if (r.height() < r.width()) { - ir.setLeft(r.left() + (r.width() - r.height()) / 2); - ir.setWidth(r.height()); - } - - p->eraseRect(ir); - bool down = flags & Style_Down; - bool enabled = flags & Style_Enabled; - bool on = flags & Style_On; - TQPointArray a; - a.setPoints( TQCOORDARRLEN(pts1), pts1 ); - a.translate( ir.x(), ir.y() ); - p->setPen( cg.dark() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts2), pts2 ); - a.translate( ir.x(), ir.y() ); - p->setPen( cg.shadow() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts3), pts3 ); - a.translate( ir.x(), ir.y() ); - p->setPen( cg.midlight() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts4), pts4 ); - a.translate( ir.x(), ir.y() ); - p->setPen( cg.light() ); - p->drawPolyline( a ); - a.setPoints( TQCOORDARRLEN(pts5), pts5 ); - a.translate( ir.x(), ir.y() ); - TQColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); - p->setPen( fillColor ); - p->setBrush( fillColor ) ; - p->drawPolygon( a ); - if ( on ) { - p->setPen( Qt::NoPen ); - p->setBrush( cg.text() ); - p->drawRect( ir.x() + 5, ir.y() + 4, 2, 4 ); - p->drawRect( ir.x() + 4, ir.y() + 5, 4, 2 ); - } - break; - } - - case PE_Panel: - case PE_PanelPopup: - { - int lw = opt.isDefault() ? tqpixelMetric(PM_DefaultFrameWidth) - : opt.lineWidth(); - - if (lw == 2) { - TQColorGroup popupCG = cg; - if ( pe == PE_PanelPopup ) { - popupCG.setColor( TQColorGroup::Light, cg.background() ); - popupCG.setColor( TQColorGroup::Midlight, cg.light() ); - } - qDrawWinPanel(p, r, popupCG, flags & Style_Sunken); - } else { - TQCommonStyle::tqdrawPrimitive(pe, p, r, cg, flags, opt); - } - break; - } - - case PE_Splitter: - { - TQPen oldPen = p->pen(); - p->setPen( cg.light() ); - if ( flags & Style_Horizontal ) { - p->drawLine( r.x() + 1, r.y(), r.x() + 1, r.height() ); - p->setPen( cg.dark() ); - p->drawLine( r.x(), r.y(), r.x(), r.height() ); - p->drawLine( r.right()-1, r.y(), r.right()-1, r.height() ); - p->setPen( cg.shadow() ); - p->drawLine( r.right(), r.y(), r.right(), r.height() ); - } else { - p->drawLine( r.x(), r.y() + 1, r.width(), r.y() + 1 ); - p->setPen( cg.dark() ); - p->drawLine( r.x(), r.bottom() - 1, r.width(), r.bottom() - 1 ); - p->setPen( cg.shadow() ); - p->drawLine( r.x(), r.bottom(), r.width(), r.bottom() ); - } - p->setPen( oldPen ); - break; - } -#ifndef USE_QT4 // [FIXME] - case PE_DockWindowResizeHandle: - { - TQPen oldPen = p->pen(); - p->setPen( cg.light() ); - if ( flags & Style_Horizontal ) { - p->drawLine( r.x(), r.y(), r.width(), r.y() ); - p->setPen( cg.dark() ); - p->drawLine( r.x(), r.bottom() - 1, r.width(), r.bottom() - 1 ); - p->setPen( cg.shadow() ); - p->drawLine( r.x(), r.bottom(), r.width(), r.bottom() ); - } else { - p->drawLine( r.x(), r.y(), r.x(), r.height() ); - p->setPen( cg.dark() ); - p->drawLine( r.right()-1, r.y(), r.right()-1, r.height() ); - p->setPen( cg.shadow() ); - p->drawLine( r.right(), r.y(), r.right(), r.height() ); - } - p->setPen( oldPen ); - break; - } -#endif // USE_QT4 - - case PE_ScrollBarSubLine: - if (use2000style) { - if (flags & Style_Down) { - p->setPen( cg.dark() ); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->drawRect( r ); - } else - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, flags | Style_Raised); - } else - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) | - ((flags & Style_Down) ? Style_Down : Style_Raised)); - - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp), - p, r, cg, flags); - break; - - case PE_ScrollBarAddLine: - if (use2000style) { - if (flags & Style_Down) { - p->setPen( cg.dark() ); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->drawRect( r ); - } else - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, flags | Style_Raised); - } else - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) | - ((flags & Style_Down) ? Style_Down : Style_Raised)); - - tqdrawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown), - p, r, cg, flags); - break; - - case PE_ScrollBarAddPage: - case PE_ScrollBarSubPage: - { - TQBrush br; - TQColor c = p->backgroundColor(); - - p->setPen(Qt::NoPen); - p->setBackgroundMode(Qt::OpaqueMode); - - if (flags & Style_Down) { - br = TQBrush(cg.shadow(), Qt::Dense4Pattern); - p->setBackgroundColor( cg.dark() ); - p->setBrush( TQBrush(cg.shadow(), Qt::Dense4Pattern) ); - } else { - br = (TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Light)).pixmap() ? - cg.brush(TQColorGroup::Light) : - TQBrush(cg.light(), Qt::Dense4Pattern)); - p->setBrush(br); - } - - p->drawRect(r); - p->setBackgroundColor(c); - break; - } - - case PE_ScrollBarSlider: - if (! (flags & Style_Enabled)) { - TQBrush br = (TQT_TQBRUSH_OBJECT(cg.brush(TQColorGroup::Light)).pixmap() ? - cg.brush(TQColorGroup::Light) : - TQBrush(cg.light(), Qt::Dense4Pattern)); - p->setPen(Qt::NoPen); - p->setBrush(br); - p->setBackgroundMode(Qt::OpaqueMode); - p->drawRect(r); - } else - tqdrawPrimitive(PE_ButtonBevel, p, r, cg, Style_Enabled | Style_Raised); - break; - - case PE_WindowFrame: - { - TQColorGroup popupCG = cg; - popupCG.setColor( TQColorGroup::Light, cg.background() ); - popupCG.setColor( TQColorGroup::Midlight, cg.light() ); - qDrawWinPanel(p, r, popupCG, flags & Style_Sunken); - } - break; - - default: - if (pe >= PE_ArrowUp && pe <= PE_ArrowLeft) { - TQPointArray a; - - switch ( pe ) { - case PE_ArrowUp: - a.setPoints( 7, -4,1, 2,1, -3,0, 1,0, -2,-1, 0,-1, -1,-2 ); - break; - - case PE_ArrowDown: - a.setPoints( 7, -4,-2, 2,-2, -3,-1, 1,-1, -2,0, 0,0, -1,1 ); - break; - - case PE_ArrowRight: - a.setPoints( 7, -2,-3, -2,3, -1,-2, -1,2, 0,-1, 0,1, 1,0 ); - break; - - case PE_ArrowLeft: - a.setPoints( 7, 0,-3, 0,3, -1,-2, -1,2, -2,-1, -2,1, -3,0 ); - break; - - default: - break; - } - - if (a.isNull()) - return; - - p->save(); - if ( flags & Style_Down ) - p->translate( tqpixelMetric( PM_ButtonShiftHorizontal ), - tqpixelMetric( PM_ButtonShiftVertical ) ); - - if ( flags & Style_Enabled ) { - a.translate( r.x() + r.width() / 2, r.y() + r.height() / 2 ); - p->setPen( cg.buttonText() ); - p->drawLineSegments( a, 0, 3 ); // draw arrow - p->drawPoint( a[6] ); - } else { - a.translate( r.x() + r.width() / 2 + 1, r.y() + r.height() / 2 + 1 ); - p->setPen( cg.light() ); - p->drawLineSegments( a, 0, 3 ); // draw arrow - p->drawPoint( a[6] ); - a.translate( -1, -1 ); - p->setPen( cg.mid() ); - p->drawLineSegments( a, 0, 3 ); // draw arrow - p->drawPoint( a[6] ); - } - p->restore(); - } else - TQCommonStyle::tqdrawPrimitive(pe, p, r, cg, flags, opt); - } -} - - -/*! - \reimp -*/ -void TQWindowsStyle::tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - switch (element) { -#ifndef TQT_NO_TABBAR - case CE_TabBarTab: - { - if ( !widget || !widget->parentWidget() || !opt.tab() ) - break; - - const TQTabBar * tb = (const TQTabBar *) widget; - const TQTab * t = opt.tab(); - bool selected = flags & Style_Selected; - bool lastTab = (tb->indexOf( t->identifier() ) == tb->count()-1) ? - TRUE : FALSE; - TQRect r2( r ); - if ( tb->tqshape() == TQTabBar::RoundedAbove ) { - p->setPen( cg.midlight() ); - - p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() ); - p->setPen( cg.light() ); - p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 ); - if ( r2.left() == 0 ) - p->drawPoint( tb->rect().bottomLeft() ); - - if ( selected ) { - p->fillRect( TQRect( r2.left()+1, r2.bottom()-1, r2.width()-3, 2), - cg.brush( TQColorGroup::Background )); - p->setPen( cg.background() ); - p->drawLine( r2.left()+1, r2.bottom(), r2.left()+1, r2.top()+2 ); - p->setPen( cg.light() ); - } else { - p->setPen( cg.light() ); - r2.setRect( r2.left() + 2, r2.top() + 2, - r2.width() - 4, r2.height() - 2 ); - } - - int x1, x2; - x1 = r2.left(); - x2 = r2.right() - 2; - p->drawLine( x1, r2.bottom()-1, x1, r2.top() + 2 ); - x1++; - p->drawPoint( x1, r2.top() + 1 ); - x1++; - p->drawLine( x1, r2.top(), x2, r2.top() ); - if ( r2.left() > 0 ) { - p->setPen( cg.midlight() ); - } - x1 = r2.left(); - p->drawPoint( x1, r2.bottom()); - - p->setPen( cg.midlight() ); - x1++; - p->drawLine( x1, r2.bottom(), x1, r2.top() + 2 ); - x1++; - p->drawLine( x1, r2.top()+1, x2, r2.top()+1 ); - - p->setPen( cg.dark() ); - x2 = r2.right() - 1; - p->drawLine( x2, r2.top() + 2, x2, r2.bottom() - 1 + - (selected ? 1:-1) ); - p->setPen( cg.shadow() ); - p->drawPoint( x2, r2.top() + 1 ); - p->drawPoint( x2, r2.top() + 1 ); - x2++; - p->drawLine( x2, r2.top() + 2, x2, r2.bottom() - - (selected ? (lastTab ? 0:1) :2)); - } else if ( tb->tqshape() == TQTabBar::RoundedBelow ) { - bool rightAligned = tqstyleHint( SH_TabBar_Alignment, tb ) == TQt::AlignRight; - bool firstTab = tb->indexOf( t->identifier() ) == 0; - if ( selected ) { - p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1), - cg.brush( TQColorGroup::Background )); - p->setPen( cg.background() ); - p->drawLine( r2.left()+1, r2.top(), r2.left()+1, r2.bottom()-2 ); - p->setPen( cg.dark() ); - } else { - p->setPen( cg.shadow() ); - p->drawLine( r2.left() + - (rightAligned && firstTab ? 0 : 1), - r2.top() + 1, - r2.right() - (lastTab ? 0 : 2), - r2.top() + 1 ); - - if ( rightAligned && lastTab ) - p->drawPoint( r2.right(), r2.top() ); - p->setPen( cg.dark() ); - p->drawLine( r2.left(), r2.top(), r2.right() - 1, - r2.top() ); - r2.setRect( r2.left() + 2, r2.top(), - r2.width() - 4, r2.height() - 2 ); - } - - p->drawLine( r2.right() - 1, r2.top() + (selected ? 0: 2), - r2.right() - 1, r2.bottom() - 2 ); - p->drawPoint( r2.right() - 2, r2.bottom() - 2 ); - p->drawLine( r2.right() - 2, r2.bottom() - 1, - r2.left() + 1, r2.bottom() - 1 ); - - p->setPen( cg.midlight() ); - p->drawLine( r2.left() + 1, r2.bottom() - 2, - r2.left() + 1, r2.top() + (selected ? 0 : 2) ); - - p->setPen( cg.shadow() ); - p->drawLine( r2.right(), - r2.top() + (lastTab && rightAligned && - selected) ? 0 : 1, - r2.right(), r2.bottom() - 1 ); - p->drawPoint( r2.right() - 1, r2.bottom() - 1 ); - p->drawLine( r2.right() - 1, r2.bottom(), - r2.left() + 2, r2.bottom() ); - - p->setPen( cg.light() ); - p->drawLine( r2.left(), r2.top() + (selected ? 0 : 2), - r2.left(), r2.bottom() - 2 ); - } else { - TQCommonStyle::tqdrawControl(element, p, widget, r, cg, flags, opt); - } - break; - } -#endif // TQT_NO_TABBAR - case CE_ToolBoxTab: - { - qDrawShadePanel( p, r, cg, flags & (Style_Sunken | Style_Down | Style_On) , 1, - &cg.brush(TQColorGroup::Button)); - break; - } - -#ifndef TQT_NO_POPUPMENU - case CE_PopupMenuItem: - { - if (! widget || opt.isDefault()) - break; - - const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget; - TQMenuItem *mi = opt.menuItem(); - if ( !mi ) - break; - - int tab = opt.tabWidth(); - int maxpmw = opt.maxIconWidth(); - bool dis = !(flags&Style_Enabled); - bool checkable = popupmenu->isCheckable(); - bool act = flags & Style_Active; - int x, y, w, h; - - r.rect(&x, &y, &w, &h); - - if ( checkable ) { - // space for the checkmarks - if (use2000style) - maxpmw = TQMAX( maxpmw, 20 ); - else - maxpmw = TQMAX( maxpmw, 12 ); - } - - int checkcol = maxpmw; - - if ( mi && mi->isSeparator() ) { // draw separator - p->setPen( cg.dark() ); - p->drawLine( x, y, x+w, y ); - p->setPen( cg.light() ); - p->drawLine( x, y+1, x+w, y+1 ); - return; - } - - TQBrush fill = (act ? - cg.brush( TQColorGroup::Highlight ) : - cg.brush( TQColorGroup::Button )); - p->fillRect( x, y, w, h, fill); - - if ( !mi ) - return; - - int xpos = x; - TQRect vrect = tqvisualRect( TQRect( xpos, y, checkcol, h ), r ); - int xvis = vrect.x(); - if ( mi->isChecked() ) { - if ( act && !dis ) - qDrawShadePanel( p, xvis, y, checkcol, h, - cg, TRUE, 1, &cg.brush( TQColorGroup::Button ) ); - else { - TQBrush fill( cg.light(), Qt::Dense4Pattern ); - // set the brush origin for the hash pattern to the x/y coordinate - // of the menu item's checkmark... this way, the check marks have - // a consistent look - TQPoint origin = p->brushOrigin(); - p->setBrushOrigin( xvis, y ); - qDrawShadePanel( p, xvis, y, checkcol, h, cg, TRUE, 1, - &fill ); - // restore the previous brush origin - p->setBrushOrigin( origin ); - } - } else if (! act) - p->fillRect(xvis, y, checkcol , h, cg.brush( TQColorGroup::Button )); - - if ( mi->iconSet() ) { // draw iconset - TQIconSet::Mode mode = dis ? TQIconSet::Disabled : TQIconSet::Normal; - if (act && !dis ) - mode = TQIconSet::Active; - TQPixmap pixmap; - if ( checkable && mi->isChecked() ) - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); - else - pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - if ( act && !dis && !mi->isChecked() ) - qDrawShadePanel( p, xvis, y, checkcol, h, cg, FALSE, 1, - &cg.brush( TQColorGroup::Button ) ); - TQRect pmr( 0, 0, pixw, pixh ); - pmr.moveCenter( vrect.center() ); - p->setPen( cg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - - fill = (act ? - cg.brush( TQColorGroup::Highlight ) : - cg.brush( TQColorGroup::Button )); - int xp = xpos + checkcol + 1; - p->fillRect( tqvisualRect( TQRect( xp, y, w - checkcol - 1, h ), r ), fill); - } else if ( checkable ) { // just "checking"... - if ( mi->isChecked() ) { - int xp = xpos + windowsItemFrame; - - SFlags cflags = Style_Default; - if (! dis) - cflags |= Style_Enabled; - if (act) - cflags |= Style_On; - - tqdrawPrimitive(PE_CheckMark, p, - tqvisualRect( TQRect(xp, y + windowsItemFrame, - checkcol - 2*windowsItemFrame, - h - 2*windowsItemFrame), r ), cg, cflags); - } - } - - p->setPen( act ? cg.highlightedText() : cg.buttonText() ); - - TQColor discol; - if ( dis ) { - discol = cg.text(); - p->setPen( discol ); - } - - int xm = windowsItemFrame + checkcol + windowsItemHMargin; - xpos += xm; - - vrect = tqvisualRect( TQRect( xpos, y+windowsItemVMargin, w-xm-tab+1, h-2*windowsItemVMargin ), r ); - xvis = vrect.x(); - if ( mi->custom() ) { - p->save(); - if ( dis && !act ) { - p->setPen( cg.light() ); - mi->custom()->paint( p, cg, act, !dis, - xvis+1, y+windowsItemVMargin+1, w-xm-tab+1, h-2*windowsItemVMargin ); - p->setPen( discol ); - } - mi->custom()->paint( p, cg, act, !dis, - xvis, y+windowsItemVMargin, w-xm-tab+1, h-2*windowsItemVMargin ); - p->restore(); - } - TQString s = mi->text(); - if ( !s.isNull() ) { // draw text - int t = s.find( '\t' ); - int text_flags = TQt::AlignVCenter|TQt::ShowPrefix | TQt::DontClip | TQt::SingleLine; - if (!tqstyleHint(SH_UnderlineAccelerator, widget)) - text_flags |= TQt::NoAccel; - text_flags |= (TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft ); - if ( t >= 0 ) { // draw tab text - int xp = x + w - tab - windowsItemHMargin - windowsItemFrame + 1; - if ( use2000style ) - xp -= 20; - else - xp -= windowsRightBorder; - int xoff = tqvisualRect( TQRect( xp, y+windowsItemVMargin, tab, h-2*windowsItemVMargin ), r ).x(); - if ( dis && !act ) { - p->setPen( cg.light() ); - p->drawText( xoff+1, y+windowsItemVMargin+1, tab, h-2*windowsItemVMargin, text_flags, s.mid( t+1 )); - p->setPen( discol ); - } - p->drawText( xoff, y+windowsItemVMargin, tab, h-2*windowsItemVMargin, text_flags, s.mid( t+1 ) ); - s = s.left( t ); - } - if ( dis && !act ) { - p->setPen( cg.light() ); - p->drawText( xvis+1, y+windowsItemVMargin+1, w-xm-tab+1, h-2*windowsItemVMargin, text_flags, s, t ); - p->setPen( discol ); - } - p->drawText( xvis, y+windowsItemVMargin, w-xm-tab+1, h-2*windowsItemVMargin, text_flags, s, t ); - } else if ( mi->pixmap() ) { // draw pixmap - TQPixmap *pixmap = mi->pixmap(); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::OpaqueMode ); - p->drawPixmap( xvis, y+windowsItemFrame, *pixmap ); - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::TransparentMode ); - } - if ( mi->popup() ) { // draw sub menu arrow - int dim = (h-2*windowsItemFrame) / 2; - PrimitiveElement arrow; - arrow = ( TQApplication::reverseLayout() ? PE_ArrowLeft : PE_ArrowRight ); - xpos = x+w - windowsArrowHMargin - windowsItemFrame - dim; - vrect = tqvisualRect( TQRect(xpos, y + h / 2 - dim / 2, dim, dim), r ); - if ( act ) { - TQColorGroup g2 = cg; - g2.setColor( TQColorGroup::ButtonText, g2.highlightedText() ); - tqdrawPrimitive(arrow, p, vrect, - g2, dis ? Style_Default : Style_Enabled); - } else { - tqdrawPrimitive(arrow, p, vrect, - cg, dis ? Style_Default : Style_Enabled ); - } - } - - break; - } -#endif - - case CE_MenuBarItem: - { - bool active = flags & Style_Active; - bool hasFocus = flags & Style_HasFocus; - bool down = flags & Style_Down; - TQRect pr = r; - - p->fillRect( r, cg.brush( TQColorGroup::Button ) ); - if ( active || hasFocus ) { - TQBrush b = cg.brush( TQColorGroup::Button ); - if ( active && down ) - p->setBrushOrigin(p->brushOrigin() + TQPoint(1,1)); - if ( active && hasFocus ) - qDrawShadeRect( p, r.x(), r.y(), r.width(), r.height(), - cg, active && down, 1, 0, &b ); - if ( active && down ) { - pr.moveBy( tqpixelMetric(PM_ButtonShiftHorizontal, widget), - tqpixelMetric(PM_ButtonShiftVertical, widget) ); - p->setBrushOrigin(p->brushOrigin() - TQPoint(1,1)); - } - } - TQCommonStyle::tqdrawControl(element, p, widget, pr, cg, flags, opt); - break; - } - - default: - TQCommonStyle::tqdrawControl(element, p, widget, r, cg, flags, opt); - } -} - - -/*! - \reimp -*/ -int TQWindowsStyle::tqpixelMetric(PixelMetric metric, const TQWidget *widget) const -{ - int ret; - - switch (metric) { - case PM_ButtonDefaultIndicator: - case PM_ButtonShiftHorizontal: - case PM_ButtonShiftVertical: - ret = 1; - break; - - case PM_MaximumDragDistance: - ret = 60; - break; - -#ifndef TQT_NO_SLIDER - case PM_SliderLength: - ret = 11; - break; - - // Returns the number of pixels to use for the business part of the - // slider (i.e., the non-tickmark portion). The remaining space is shared - // equally between the tickmark regions. - case PM_SliderControlThickness: - { - const TQSlider * sl = (const TQSlider *) widget; - int space = (sl->orientation() == Qt::Horizontal) ? sl->height() - : sl->width(); - int ticks = sl->tickmarks(); - int n = 0; - if ( ticks & TQSlider::Above ) n++; - if ( ticks & TQSlider::Below ) n++; - if ( !n ) { - ret = space; - break; - } - - int thick = 6; // Magic constant to get 5 + 16 + 5 - if ( ticks != TQSlider::Both && ticks != TQSlider::NoMarks ) - thick += tqpixelMetric( PM_SliderLength, sl ) / 4; - - space -= thick; - //### the two sides may be unequal in size - if ( space > 0 ) - thick += (space * 2) / (n + 2); - ret = thick; - break; - } -#endif // TQT_NO_SLIDER - - case PM_MenuBarFrameWidth: - ret = 0; - break; - -#if defined(TQ_WS_WIN) - case PM_TitleBarHeight: - if ( widget && ( widget->testWFlags( WStyle_Tool ) || ::tqqt_cast<TQDockWindow*>(widget) ) ) { - // MS always use one less than they say -#if defined(TQ_OS_TEMP) - ret = GetSystemMetrics( SM_CYCAPTION ) - 1; -#else - ret = GetSystemMetrics( SM_CYSMCAPTION ) - 1; -#endif - } else { - ret = GetSystemMetrics( SM_CYCAPTION ) - 1; - } - break; - - case PM_ScrollBarExtent: - { -#ifndef TQ_OS_TEMP - NONCLIENTMETRICS ncm; - ncm.cbSize = sizeof(NONCLIENTMETRICS); - if ( SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0 ) ) - ret = TQMAX( ncm.iScrollHeight, ncm.iScrollWidth ); - else -#endif - ret = TQCommonStyle::tqpixelMetric( metric, widget ); - } - break; -#endif - - case PM_SplitterWidth: - ret = TQMAX( 6, TQApplication::globalStrut().width() ); - break; - -#if defined(TQ_WS_WIN) - case PM_MDIFrameWidth: - ret = GetSystemMetrics(SM_CYFRAME); - break; -#endif - - default: - ret = TQCommonStyle::tqpixelMetric(metric, widget); - break; - } - - return ret; -} - - -/*! - \reimp -*/ -TQSize TQWindowsStyle::tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& opt ) const -{ - TQSize sz(contentsSize); - - switch (contents) { - case CT_PushButton: - { -#ifndef TQT_NO_PUSHBUTTON - const TQPushButton *button = (const TQPushButton *) widget; - sz = TQCommonStyle::tqsizeFromContents(contents, widget, contentsSize, opt); - int w = sz.width(), h = sz.height(); - - int defwidth = 0; - if (button->isDefault() || button->autoDefault()) - defwidth = 2*tqpixelMetric( PM_ButtonDefaultIndicator, widget ); - - if (w < 80+defwidth && !button->pixmap()) - w = 80+defwidth; - if (h < 23+defwidth) - h = 23+defwidth; - - sz = TQSize(w, h); -#endif - break; - } - - case CT_PopupMenuItem: - { -#ifndef TQT_NO_POPUPMENU - if (! widget || opt.isDefault()) - break; - - const TQPopupMenu *popup = (const TQPopupMenu *) widget; - bool checkable = popup->isCheckable(); - TQMenuItem *mi = opt.menuItem(); - int maxpmw = opt.maxIconWidth(); - int w = sz.width(), h = sz.height(); - - if (mi->custom()) { - w = mi->custom()->tqsizeHint().width(); - h = mi->custom()->tqsizeHint().height(); - if (! mi->custom()->fullSpan()) - h += 2*windowsItemVMargin + 2*windowsItemFrame; - } else if ( mi->widget() ) { - } else if (mi->isSeparator()) { - w = 10; // arbitrary - h = windowsSepHeight; - } else { - if (mi->pixmap()) - h = TQMAX(h, mi->pixmap()->height() + 2*windowsItemFrame); - else if (! mi->text().isNull()) - h = TQMAX(h, popup->fontMetrics().height() + 2*windowsItemVMargin + - 2*windowsItemFrame); - - if (mi->iconSet() != 0) - h = TQMAX(h, mi->iconSet()->pixmap(TQIconSet::Small, - TQIconSet::Normal).height() + - 2*windowsItemFrame); - } - - if (! mi->text().isNull() && mi->text().find('\t') >= 0) { - if ( use2000style ) - w += 20; - else - w += windowsTabSpacing; - } else if (mi->popup()) { - w += 2*windowsArrowHMargin; - } - - if (use2000style) { - if (checkable && maxpmw < 20) - w += 20 - maxpmw; - } else { - if (checkable && maxpmw < windowsCheckMarkWidth) - w += windowsCheckMarkWidth - maxpmw; - } - if (checkable || maxpmw > 0) - w += windowsCheckMarkHMargin; - if (use2000style) - w += 20; - else - w += windowsRightBorder; - - sz = TQSize(w, h); -#endif - break; - } - - default: - sz = TQCommonStyle::tqsizeFromContents(contents, widget, sz, opt); - break; - } - - return sz; -} - -/*! \reimp -*/ -void TQWindowsStyle::polishPopupMenu( TQPopupMenu* p) -{ -#ifndef TQT_NO_POPUPMENU - if ( !p->testWState( TQt::WState_Polished ) ) - p->setCheckable( TRUE ); -#endif -} - -#ifndef TQT_NO_IMAGEIO_XPM -static const char * const qt_close_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"............", -"..##....##..", -"...##..##...", -"....####....", -".....##.....", -"....####....", -"...##..##...", -"..##....##..", -"............", -"............", -"............"}; - -static const char * const qt_maximize_xpm[]={ -"12 12 2 1", -"# c #000000", -". c None", -"............", -".#########..", -".#########..", -".#.......#..", -".#.......#..", -".#.......#..", -".#.......#..", -".#.......#..", -".#.......#..", -".#########..", -"............", -"............"}; - - -static const char * const qt_minimize_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"............", -"............", -"............", -"............", -"............", -"............", -"............", -"..######....", -"..######....", -"............", -"............"}; - -static const char * const qt_normalizeup_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"....######..", -"....######..", -"....#....#..", -"..######.#..", -"..######.#..", -"..#....###..", -"..#....#....", -"..#....#....", -"..######....", -"............", -"............"}; - - -static const char * const qt_shade_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"............", -"............", -"............", -"............", -".....#......", -"....###.....", -"...#####....", -"..#######...", -"............", -"............", -"............"}; - -static const char * const qt_unshade_xpm[] = { -"12 12 2 1", -"# c #000000", -". c None", -"............", -"............", -"............", -"............", -"..#######...", -"...#####....", -"....###.....", -".....#......", -"............", -"............", -"............", -"............"}; - -static const char * dock_window_close_xpm[] = { -"8 8 2 1", -"# c #000000", -". c None", -"........", -".##..##.", -"..####..", -"...##...", -"..####..", -".##..##.", -"........", -"........"}; - -/* XPM */ -static const char * const information_xpm[]={ -"32 32 5 1", -". c None", -"c c #000000", -"* c #999999", -"a c #ffffff", -"b c #0000ff", -"...........********.............", -"........***aaaaaaaa***..........", -"......**aaaaaaaaaaaaaa**........", -".....*aaaaaaaaaaaaaaaaaa*.......", -"....*aaaaaaaabbbbaaaaaaaac......", -"...*aaaaaaaabbbbbbaaaaaaaac.....", -"..*aaaaaaaaabbbbbbaaaaaaaaac....", -".*aaaaaaaaaaabbbbaaaaaaaaaaac...", -".*aaaaaaaaaaaaaaaaaaaaaaaaaac*..", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac*.", -"*aaaaaaaaaabbbbbbbaaaaaaaaaaac*.", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**", -".*aaaaaaaaaaabbbbbaaaaaaaaaac***", -".*aaaaaaaaaaabbbbbaaaaaaaaaac***", -"..*aaaaaaaaaabbbbbaaaaaaaaac***.", -"...caaaaaaabbbbbbbbbaaaaaac****.", -"....caaaaaaaaaaaaaaaaaaaac****..", -".....caaaaaaaaaaaaaaaaaac****...", -"......ccaaaaaaaaaaaaaacc****....", -".......*cccaaaaaaaaccc*****.....", -"........***cccaaaac*******......", -"..........****caaac*****........", -".............*caaac**...........", -"...............caac**...........", -"................cac**...........", -".................cc**...........", -"..................***...........", -"...................**..........."}; -/* XPM */ -static const char* const warning_xpm[]={ -"32 32 4 1", -". c None", -"a c #ffff00", -"* c #000000", -"b c #999999", -".............***................", -"............*aaa*...............", -"...........*aaaaa*b.............", -"...........*aaaaa*bb............", -"..........*aaaaaaa*bb...........", -"..........*aaaaaaa*bb...........", -".........*aaaaaaaaa*bb..........", -".........*aaaaaaaaa*bb..........", -"........*aaaaaaaaaaa*bb.........", -"........*aaaa***aaaa*bb.........", -".......*aaaa*****aaaa*bb........", -".......*aaaa*****aaaa*bb........", -"......*aaaaa*****aaaaa*bb.......", -"......*aaaaa*****aaaaa*bb.......", -".....*aaaaaa*****aaaaaa*bb......", -".....*aaaaaa*****aaaaaa*bb......", -"....*aaaaaaaa***aaaaaaaa*bb.....", -"....*aaaaaaaa***aaaaaaaa*bb.....", -"...*aaaaaaaaa***aaaaaaaaa*bb....", -"...*aaaaaaaaaa*aaaaaaaaaa*bb....", -"..*aaaaaaaaaaa*aaaaaaaaaaa*bb...", -"..*aaaaaaaaaaaaaaaaaaaaaaa*bb...", -".*aaaaaaaaaaaa**aaaaaaaaaaa*bb..", -".*aaaaaaaaaaa****aaaaaaaaaa*bb..", -"*aaaaaaaaaaaa****aaaaaaaaaaa*bb.", -"*aaaaaaaaaaaaa**aaaaaaaaaaaa*bb.", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb", -".*aaaaaaaaaaaaaaaaaaaaaaaaa*bbbb", -"..*************************bbbbb", -"....bbbbbbbbbbbbbbbbbbbbbbbbbbb.", -".....bbbbbbbbbbbbbbbbbbbbbbbbb.."}; -/* XPM */ -static const char* const critical_xpm[]={ -"32 32 4 1", -". c None", -"a c #999999", -"* c #ff0000", -"b c #ffffff", -"...........********.............", -".........************...........", -".......****************.........", -"......******************........", -".....********************a......", -"....**********************a.....", -"...************************a....", -"..*******b**********b*******a...", -"..******bbb********bbb******a...", -".******bbbbb******bbbbb******a..", -".*******bbbbb****bbbbb*******a..", -"*********bbbbb**bbbbb*********a.", -"**********bbbbbbbbbb**********a.", -"***********bbbbbbbb***********aa", -"************bbbbbb************aa", -"************bbbbbb************aa", -"***********bbbbbbbb***********aa", -"**********bbbbbbbbbb**********aa", -"*********bbbbb**bbbbb*********aa", -".*******bbbbb****bbbbb*******aa.", -".******bbbbb******bbbbb******aa.", -"..******bbb********bbb******aaa.", -"..*******b**********b*******aa..", -"...************************aaa..", -"....**********************aaa...", -"....a********************aaa....", -".....a******************aaa.....", -"......a****************aaa......", -".......aa************aaaa.......", -".........aa********aaaaa........", -"...........aaaaaaaaaaa..........", -".............aaaaaaa............"}; -/* XPM */ -static const char *const question_xpm[] = { -"32 32 5 1", -". c None", -"c c #000000", -"* c #999999", -"a c #ffffff", -"b c #0000ff", -"...........********.............", -"........***aaaaaaaa***..........", -"......**aaaaaaaaaaaaaa**........", -".....*aaaaaaaaaaaaaaaaaa*.......", -"....*aaaaaaaaaaaaaaaaaaaac......", -"...*aaaaaaaabbbbbbaaaaaaaac.....", -"..*aaaaaaaabaaabbbbaaaaaaaac....", -".*aaaaaaaabbaaaabbbbaaaaaaaac...", -".*aaaaaaaabbbbaabbbbaaaaaaaac*..", -"*aaaaaaaaabbbbaabbbbaaaaaaaaac*.", -"*aaaaaaaaaabbaabbbbaaaaaaaaaac*.", -"*aaaaaaaaaaaaabbbbaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbbaaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**", -"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**", -"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac**", -".*aaaaaaaaaaaabbaaaaaaaaaaaac***", -".*aaaaaaaaaaabbbbaaaaaaaaaaac***", -"..*aaaaaaaaaabbbbaaaaaaaaaac***.", -"...caaaaaaaaaabbaaaaaaaaaac****.", -"....caaaaaaaaaaaaaaaaaaaac****..", -".....caaaaaaaaaaaaaaaaaac****...", -"......ccaaaaaaaaaaaaaacc****....", -".......*cccaaaaaaaaccc*****.....", -"........***cccaaaac*******......", -"..........****caaac*****........", -".............*caaac**...........", -"...............caac**...........", -"................cac**...........", -".................cc**...........", -"..................***...........", -"...................**...........", -}; -#endif //TQT_NO_IMAGEIO_XPM - -/*! - \reimp - */ -TQPixmap TQWindowsStyle::stylePixmap(StylePixmap stylepixmap, - const TQWidget *widget, - const TQStyleOption& opt) const -{ -#ifndef TQT_NO_IMAGEIO_XPM - switch (stylepixmap) { - case SP_TitleBarShadeButton: - return TQPixmap( (const char **)qt_shade_xpm ); - case SP_TitleBarUnshadeButton: - return TQPixmap( (const char **)qt_unshade_xpm ); - case SP_TitleBarNormalButton: - return TQPixmap( (const char **)qt_normalizeup_xpm ); - case SP_TitleBarMinButton: - return TQPixmap( (const char **)qt_minimize_xpm ); - case SP_TitleBarMaxButton: - return TQPixmap( (const char **)qt_maximize_xpm ); - case SP_TitleBarCloseButton: - return TQPixmap( (const char **)qt_close_xpm ); - case SP_DockWindowCloseButton: - return TQPixmap( (const char **)dock_window_close_xpm ); - case SP_MessageBoxInformation: - return TQPixmap( (const char **)information_xpm); - case SP_MessageBoxWarning: - return TQPixmap( (const char **)warning_xpm ); - case SP_MessageBoxCritical: - return TQPixmap( (const char **)critical_xpm ); - case SP_MessageBoxQuestion: - return TQPixmap( (const char **)question_xpm ); - default: - break; - } -#endif //TQT_NO_IMAGEIO_XPM - return TQCommonStyle::stylePixmap(stylepixmap, widget, opt); -} - -/*!\reimp -*/ -void TQWindowsStyle::tqdrawComplexControl( TQ_ComplexControl ctrl, TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - SCFlags sub, - SCFlags subActive, - const TQStyleOption& opt ) const -{ - switch (ctrl) { -#ifndef TQT_NO_LISTVIEW - case CC_ListView: - { - if ( sub & SC_ListView ) { - TQCommonStyle::tqdrawComplexControl( ctrl, p, widget, r, cg, flags, sub, subActive, opt ); - } - if ( sub & ( SC_ListViewBranch | SC_ListViewExpand ) ) { - if (opt.isDefault()) - break; - - TQListViewItem *item = opt.listViewItem(), - *child = item->firstChild(); - - int y = r.y(); - int c; - int dotoffset = 0; - TQPointArray dotlines; - if ( subActive == (uint)SC_All && sub == SC_ListViewExpand ) { - c = 2; - dotlines.resize(2); - dotlines[0] = TQPoint( r.right(), r.top() ); - dotlines[1] = TQPoint( r.right(), r.bottom() ); - } else { - int linetop = 0, linebot = 0; - // each branch needs at most two lines, ie. four end points - dotoffset = (item->itemPos() + item->height() - y) %2; - dotlines.resize( item->childCount() * 4 ); - c = 0; - - // skip the stuff above the exposed rectangle - while ( child && y + child->height() <= 0 ) { - y += child->totalHeight(); - child = child->nextSibling(); - } - - int bx = r.width() / 2; - - // paint stuff in the magical area - TQListView* v = item->listView(); - while ( child && y < r.height() ) { - if (child->isVisible()) { - int lh; - if ( !item->multiLinesEnabled() ) - lh = child->height(); - else - lh = p->fontMetrics().height() + 2 * v->itemMargin(); - lh = TQMAX( lh, TQApplication::globalStrut().height() ); - if ( lh % 2 > 0 ) - lh++; - linebot = y + lh/2; - if ( (child->isExpandable() || child->childCount()) && - (child->height() > 0) ) { - // needs a box - p->setPen( cg.mid() ); - p->drawRect( bx-4, linebot-4, 9, 9 ); - // plus or minus - p->setPen( cg.text() ); - p->drawLine( bx - 2, linebot, bx + 2, linebot ); - if ( !child->isOpen() ) - p->drawLine( bx, linebot - 2, bx, linebot + 2 ); - // dotlinery - p->setPen( cg.mid() ); - dotlines[c++] = TQPoint( bx, linetop ); - dotlines[c++] = TQPoint( bx, linebot - 4 ); - dotlines[c++] = TQPoint( bx + 5, linebot ); - dotlines[c++] = TQPoint( r.width(), linebot ); - linetop = linebot + 5; - } else { - // just dotlinery - dotlines[c++] = TQPoint( bx+1, linebot -1); - dotlines[c++] = TQPoint( r.width(), linebot -1); - } - y += child->totalHeight(); - } - child = child->nextSibling(); - } - - // Expand line height to edge of rectangle if there's any - // visible child below - while ( child && child->height() <= 0) - child = child->nextSibling(); - if ( child ) - linebot = r.height(); - - if ( linetop < linebot ) { - dotlines[c++] = TQPoint( bx, linetop ); - dotlines[c++] = TQPoint( bx, linebot ); - } - } - p->setPen( cg.text() ); - - static TQBitmap *verticalLine = 0, *horizontalLine = 0; - static TQCleanupHandler<TQBitmap> qlv_cleanup_bitmap; - if ( !verticalLine ) { - // make 128*1 and 1*128 bitmaps that can be used for - // drawing the right sort of lines. - verticalLine = new TQBitmap( 1, 129, TRUE ); - horizontalLine = new TQBitmap( 128, 1, TRUE ); - TQPointArray a( 64 ); - TQPainter p; - p.begin( verticalLine ); - int i; - for( i=0; i<64; i++ ) - a.setPoint( i, 0, i*2+1 ); - p.setPen( Qt::color1 ); - p.drawPoints( a ); - p.end(); - TQApplication::flushX(); - verticalLine->setMask( *verticalLine ); - p.begin( horizontalLine ); - for( i=0; i<64; i++ ) - a.setPoint( i, i*2+1, 0 ); - p.setPen( Qt::color1 ); - p.drawPoints( a ); - p.end(); - TQApplication::flushX(); - horizontalLine->setMask( *horizontalLine ); - qlv_cleanup_bitmap.add( &verticalLine ); - qlv_cleanup_bitmap.add( &horizontalLine ); - } - - int line; // index into dotlines - if ( sub & SC_ListViewBranch ) for( line = 0; line < c; line += 2 ) { - // assumptions here: lines are horizontal or vertical. - // lines always start with the numerically lowest - // coordinate. - - // point ... relevant coordinate of current point - // end ..... same coordinate of the end of the current line - // other ... the other coordinate of the current point/line - if ( dotlines[line].y() == dotlines[line+1].y() ) { - int end = dotlines[line+1].x(); - int point = dotlines[line].x(); - int other = dotlines[line].y(); - while( point < end ) { - int i = 128; - if ( i+point > end ) - i = end-point; - p->drawPixmap( point, other, *horizontalLine, - 0, 0, i, 1 ); - point += i; - } - } else { - int end = dotlines[line+1].y(); - int point = dotlines[line].y(); - int other = dotlines[line].x(); - int pixmapoffset = ((point & 1) != dotoffset ) ? 1 : 0; - while( point < end ) { - int i = 128; - if ( i+point > end ) - i = end-point; - p->drawPixmap( other, point, *verticalLine, - 0, pixmapoffset, 1, i ); - point += i; - } - } - } - } - } - break; -#endif //TQT_NO_LISTVIEW - -#ifndef TQT_NO_COMBOBOX - case CC_ComboBox: - if ( sub & SC_ComboBoxArrow ) { - SFlags flags = Style_Default; - - qDrawWinPanel( p, r, cg, TRUE, widget->isEnabled() ? - &cg.brush( TQColorGroup::Base ): - &cg.brush( TQColorGroup::Background ) ); - - TQRect ar = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, widget, - SC_ComboBoxArrow ), widget ); - if ( subActive == SC_ComboBoxArrow ) { - p->setPen( cg.dark() ); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->drawRect( ar ); - } else - qDrawWinPanel( p, ar, cg, FALSE, - &cg.brush( TQColorGroup::Button ) ); - - ar.addCoords( 2, 2, -2, -2 ); - if ( widget->isEnabled() ) - flags |= Style_Enabled; - - if ( subActive == SC_ComboBoxArrow ) { - flags |= Style_Sunken; - } - tqdrawPrimitive( PE_ArrowDown, p, ar, cg, flags ); - } - - if ( sub & SC_ComboBoxEditField ) { - const TQComboBox * cb = (const TQComboBox *) widget; - TQRect re = - TQStyle::tqvisualRect( querySubControlMetrics( CC_ComboBox, widget, - SC_ComboBoxEditField ), widget ); - if ( cb->hasFocus() && !cb->editable() ) - p->fillRect( re.x(), re.y(), re.width(), re.height(), - cg.brush( TQColorGroup::Highlight ) ); - - if ( cb->hasFocus() ) { - p->setPen( cg.highlightedText() ); - p->setBackgroundColor( cg.highlight() ); - - } else { - p->setPen( cg.text() ); - p->setBackgroundColor( cg.background() ); - } - - if ( cb->hasFocus() && !cb->editable() ) { - TQRect re = - TQStyle::tqvisualRect( subRect( SR_ComboBoxFocusRect, cb ), widget ); - tqdrawPrimitive( PE_FocusRect, p, re, cg, Style_FocusAtBorder, TQStyleOption(cg.highlight())); - } - } - - break; -#endif // TQT_NO_COMBOBOX - -#ifndef TQT_NO_SLIDER - case CC_Slider: - { - const TQSlider *sl = (const TQSlider *) widget; - int thickness = tqpixelMetric( PM_SliderControlThickness, widget ); - int len = tqpixelMetric( PM_SliderLength, widget ); - int ticks = sl->tickmarks(); - - TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove, - opt), - handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle, - opt); - - if ((sub & SC_SliderGroove) && groove.isValid()) { - int mid = thickness / 2; - - if ( ticks & TQSlider::Above ) - mid += len / 8; - if ( ticks & TQSlider::Below ) - mid -= len / 8; - - p->setPen( cg.shadow() ); - if ( sl->orientation() == Qt::Horizontal ) { - qDrawWinPanel( p, groove.x(), groove.y() + mid - 2, - groove.width(), 4, cg, TRUE ); - p->drawLine( groove.x() + 1, groove.y() + mid - 1, - groove.x() + groove.width() - 3, groove.y() + mid - 1 ); - } else { - qDrawWinPanel( p, groove.x() + mid - 2, groove.y(), - 4, groove.height(), cg, TRUE ); - p->drawLine( groove.x() + mid - 1, groove.y() + 1, - groove.x() + mid - 1, - groove.y() + groove.height() - 3 ); - } - } - - if (sub & SC_SliderTickmarks) - TQCommonStyle::tqdrawComplexControl(ctrl, p, widget, r, cg, flags, - SC_SliderTickmarks, subActive, - opt ); - - if ( sub & SC_SliderHandle ) { - // 4444440 - // 4333310 - // 4322210 - // 4322210 - // 4322210 - // 4322210 - // *43210* - // **410** - // ***0*** - const TQColor c0 = cg.shadow(); - const TQColor c1 = cg.dark(); - // const TQColor c2 = g.button(); - const TQColor c3 = cg.midlight(); - const TQColor c4 = cg.light(); - - int x = handle.x(), y = handle.y(), - wi = handle.width(), he = handle.height(); - - int x1 = x; - int x2 = x+wi-1; - int y1 = y; - int y2 = y+he-1; - - Qt::Orientation orient = sl->orientation(); - bool tickAbove = sl->tickmarks() == TQSlider::Above; - bool tickBelow = sl->tickmarks() == TQSlider::Below; - - p->fillRect( x, y, wi, he, cg.brush( TQColorGroup::Background ) ); - - if ( flags & Style_HasFocus ) { - TQRect re = subRect( SR_SliderFocusRect, sl ); - tqdrawPrimitive( PE_FocusRect, p, re, cg ); - } - - if ( (tickAbove && tickBelow) || (!tickAbove && !tickBelow) ) { - qDrawWinButton( p, TQRect(x,y,wi,he), cg, FALSE, - &cg.brush( TQColorGroup::Button ) ); - return; - } - - TQSliderDirection dir; - - if ( orient == Qt::Horizontal ) - if ( tickAbove ) - dir = SlUp; - else - dir = SlDown; - else - if ( tickAbove ) - dir = SlLeft; - else - dir = SlRight; - - TQPointArray a; - - int d = 0; - switch ( dir ) { - case SlUp: - y1 = y1 + wi/2; - d = (wi + 1) / 2 - 1; - a.setPoints(5, x1,y1, x1,y2, x2,y2, x2,y1, x1+d,y1-d ); - break; - case SlDown: - y2 = y2 - wi/2; - d = (wi + 1) / 2 - 1; - a.setPoints(5, x1,y1, x1,y2, x1+d,y2+d, x2,y2, x2,y1 ); - break; - case SlLeft: - d = (he + 1) / 2 - 1; - x1 = x1 + he/2; - a.setPoints(5, x1,y1, x1-d,y1+d, x1,y2, x2,y2, x2,y1); - break; - case SlRight: - d = (he + 1) / 2 - 1; - x2 = x2 - he/2; - a.setPoints(5, x1,y1, x1,y2, x2,y2, x2+d,y1+d, x2,y1 ); - break; - } - - TQBrush oldBrush = p->brush(); - p->setBrush( cg.brush( TQColorGroup::Button ) ); - p->setPen( Qt::NoPen ); - p->drawRect( x1, y1, x2-x1+1, y2-y1+1 ); - p->drawPolygon( a ); - p->setBrush( oldBrush ); - - if ( dir != SlUp ) { - p->setPen( c4 ); - p->drawLine( x1, y1, x2, y1 ); - p->setPen( c3 ); - p->drawLine( x1, y1+1, x2, y1+1 ); - } - if ( dir != SlLeft ) { - p->setPen( c3 ); - p->drawLine( x1+1, y1+1, x1+1, y2 ); - p->setPen( c4 ); - p->drawLine( x1, y1, x1, y2 ); - } - if ( dir != SlRight ) { - p->setPen( c0 ); - p->drawLine( x2, y1, x2, y2 ); - p->setPen( c1 ); - p->drawLine( x2-1, y1+1, x2-1, y2-1 ); - } - if ( dir != SlDown ) { - p->setPen( c0 ); - p->drawLine( x1, y2, x2, y2 ); - p->setPen( c1 ); - p->drawLine( x1+1, y2-1, x2-1, y2-1 ); - } - - switch ( dir ) { - case SlUp: - p->setPen( c4 ); - p->drawLine( x1, y1, x1+d, y1-d); - p->setPen( c0 ); - d = wi - d - 1; - p->drawLine( x2, y1, x2-d, y1-d); - d--; - p->setPen( c3 ); - p->drawLine( x1+1, y1, x1+1+d, y1-d ); - p->setPen( c1 ); - p->drawLine( x2-1, y1, x2-1-d, y1-d); - break; - case SlDown: - p->setPen( c4 ); - p->drawLine( x1, y2, x1+d, y2+d); - p->setPen( c0 ); - d = wi - d - 1; - p->drawLine( x2, y2, x2-d, y2+d); - d--; - p->setPen( c3 ); - p->drawLine( x1+1, y2, x1+1+d, y2+d ); - p->setPen( c1 ); - p->drawLine( x2-1, y2, x2-1-d, y2+d); - break; - case SlLeft: - p->setPen( c4 ); - p->drawLine( x1, y1, x1-d, y1+d); - p->setPen( c0 ); - d = he - d - 1; - p->drawLine( x1, y2, x1-d, y2-d); - d--; - p->setPen( c3 ); - p->drawLine( x1, y1+1, x1-d, y1+1+d ); - p->setPen( c1 ); - p->drawLine( x1, y2-1, x1-d, y2-1-d); - break; - case SlRight: - p->setPen( c4 ); - p->drawLine( x2, y1, x2+d, y1+d); - p->setPen( c0 ); - d = he - d - 1; - p->drawLine( x2, y2, x2+d, y2-d); - d--; - p->setPen( c3 ); - p->drawLine( x2, y1+1, x2+d, y1+1+d ); - p->setPen( c1 ); - p->drawLine( x2, y2-1, x2+d, y2-1-d); - break; - } - } - - break; - } -#endif // TQT_NO_SLIDER - - default: - TQCommonStyle::tqdrawComplexControl( ctrl, p, widget, r, cg, flags, sub, - subActive, opt ); - break; - } -} - - -/*! \reimp */ -int TQWindowsStyle::tqstyleHint( TQ_StyleHint hint, - const TQWidget *widget, - const TQStyleOption &opt, - TQStyleHintReturn *returnData ) const -{ - int ret; - - switch (hint) { - case SH_EtchDisabledText: - case SH_Slider_SnapToValue: - case SH_PrintDialog_RightAlignButtons: - case SH_MainWindow_SpaceBelowMenuBar: - case SH_FontDialog_SelectAssociatedText: - case SH_PopupMenu_AllowActiveAndDisabled: - case SH_MenuBar_AltKeyNavigation: - case SH_MenuBar_MouseTracking: - case SH_PopupMenu_MouseTracking: - case SH_ComboBox_ListMouseTracking: - case SH_ScrollBar_StopMouseOverSlider: - ret = 1; - break; - - case SH_ItemView_ChangeHighlightOnFocus: -#if defined(TQ_WS_WIN) - if ( qWinVersion() != WV_95 && qWinVersion() != WV_NT ) - ret = 1; - else -#endif - ret = 0; - break; - - case SH_ToolBox_SelectedPageTitleBold: - ret = 0; - break; - -#if defined(TQ_WS_WIN) - case SH_UnderlineAccelerator: - ret = 1; - if ( qWinVersion() != WV_95 && qWinVersion() != WV_98 && qWinVersion() != WV_NT ) { - BOOL cues; - SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &cues, 0); - ret = cues ? 1 : 0; - // Do nothing if we always paint underlines - if (!ret && widget && d) { - TQMenuBar *menuBar = ::tqqt_cast<TQMenuBar*>(widget); - TQPopupMenu *popupMenu = 0; - if (!menuBar) - popupMenu = ::tqqt_cast<TQPopupMenu*>(widget); - - // If we paint a menubar draw underlines if it has focus, or if alt is down, - // or if a popup menu belonging to the menubar is active and paints underlines - if (menuBar) { - if (menuBar->hasFocus()) { - ret = 1; - } else if (d->altDown()) { - ret = 1; - } else if (tqApp->tqfocusWidget() && tqApp->tqfocusWidget()->isPopup()) { - popupMenu = ::tqqt_cast<TQPopupMenu*>(tqApp->tqfocusWidget()); - TQMenuData *pm = popupMenu ? (TQMenuData*)popupMenu->tqqt_cast("TQMenuData") : 0; - if (pm && ((FriendlyMenuData*)pm)->parentMenu == menuBar) { - if (d->hasSeenAlt(menuBar)) - ret = 1; - } - } - // If we paint a popup menu draw underlines if the respective menubar does - } else if (popupMenu) { - TQMenuData *pm = (TQMenuData*)popupMenu->tqqt_cast("TQMenuData"); - while (pm) { - if (((FriendlyMenuData*)pm)->isMenuBar) { - menuBar = (TQMenuBar*)pm; - if (d->hasSeenAlt(menuBar)) - ret = 1; - break; - } - pm = ((FriendlyMenuData*)pm)->parentMenu; - } - // Otherwise draw underlines if the toplevel widget has seen an alt-press - } else if (d->hasSeenAlt(widget)) { - ret = 1; - } - } - - } - break; -#endif - - default: - ret = TQCommonStyle::tqstyleHint(hint, widget, opt, returnData); - break; - } - - return ret; -} - -/*! \reimp */ -TQRect TQWindowsStyle::subRect(SubRect r, const TQWidget *widget) const -{ - TQRect rect; - - switch (r) { -#ifndef TQT_NO_SLIDER - case SR_SliderFocusRect: - { - rect = widget->rect(); - break; - } -#endif // TQT_NO_SLIDER - case SR_ToolBoxTabContents: - rect = widget->rect(); - break; - default: - rect = TQCommonStyle::subRect( r, widget ); - break; - } - - return rect; -} - -#endif diff --git a/tqtinterface/qt4/src/styles/tqwindowsstyle.h b/tqtinterface/qt4/src/styles/tqwindowsstyle.h deleted file mode 100644 index 0ba06a4..0000000 --- a/tqtinterface/qt4/src/styles/tqwindowsstyle.h +++ /dev/null @@ -1,135 +0,0 @@ -/**************************************************************************** -** -** Definition of Windows-like style class -** -** Created : 981231 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQWINDOWSSTYLE_H -#define TQWINDOWSSTYLE_H - -#ifndef TQT_H -#include "tqcommonstyle.h" -#endif // TQT_H - -#if !defined(TQT_NO_STYLE_WINDOWS) || defined(TQT_PLUGIN) - -#if defined(TQT_PLUGIN) -#define TQ_EXPORT_STYLE_WINDOWS -#else -#define TQ_EXPORT_STYLE_WINDOWS TQ_EXPORT -#endif - - -class TQ_EXPORT_STYLE_WINDOWS TQWindowsStyle : public TQCommonStyle -{ - Q_OBJECT - TQ_OBJECT -public: - TQWindowsStyle(); - ~TQWindowsStyle(); - - void polish(TQApplication*); - void unPolish(TQApplication*); - - void polish(TQWidget*); - void unPolish(TQWidget*); - - void polish( TQPalette & ); - - virtual void polishPopupMenu( TQPopupMenu* ); - - // new stuff - void tqdrawPrimitiveBase( TQ_PrimitiveElement pe, - TQPainter *p, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawControl( TQ_ControlElement element, - TQPainter *p, - const TQWidget *widget, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void tqdrawComplexControl( TQ_ComplexControl control, - TQPainter* p, - const TQWidget* widget, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags = Style_Default, -#ifdef TQ_TQDOC - SCFlags sub = SC_All, -#else - SCFlags sub = (uint)SC_All, -#endif - SCFlags subActive = SC_None, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqpixelMetric( PixelMetric metric, - const TQWidget *widget = 0 ) const; - - TQSize tqsizeFromContents( ContentsType contents, - const TQWidget *widget, - const TQSize &contentsSize, - const TQStyleOption& = TQStyleOption::Default ) const; - - int tqstyleHint(TQ_StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default, - TQStyleHintReturn* = 0) const; - - TQPixmap stylePixmap( StylePixmap stylepixmap, - const TQWidget *widget = 0, - const TQStyleOption& = TQStyleOption::Default ) const; - - TQRect subRect( SubRect r, const TQWidget *widget ) const; - -private: - class Private; - Private *d; - - // Disabled copy constructor and operator= -#if defined(TQ_DISABLE_COPY) - TQWindowsStyle( const TQWindowsStyle & ); - TQWindowsStyle& operator=( const TQWindowsStyle & ); -#endif -}; - -#endif // TQT_NO_STYLE_WINDOWS - -#endif // TQWINDOWSSTYLE_H |