diff options
Diffstat (limited to 'tqtinterface/qt4/src/styles/tqcdestyle.cpp')
-rw-r--r-- | tqtinterface/qt4/src/styles/tqcdestyle.cpp | 367 |
1 files changed, 0 insertions, 367 deletions
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 [email protected]. -** -** 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 |