diff options
| author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:17:53 -0500 | 
|---|---|---|
| committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:17:53 -0500 | 
| commit | dda8474928bd7276e1fad8fb7a601e7c83ff2bc2 (patch) | |
| tree | 7f83910598b33b12730035f086df20b5a53ab99c /tqtinterface/qt4/src/kernel/tqstyle.cpp | |
| parent | 6260b6178868c03aab1644bf93b0ef043654bdb0 (diff) | |
| download | experimental-dda8474928bd7276e1fad8fb7a601e7c83ff2bc2.tar.gz experimental-dda8474928bd7276e1fad8fb7a601e7c83ff2bc2.zip | |
Added TQt4 HEAD
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqstyle.cpp')
| -rw-r--r-- | tqtinterface/qt4/src/kernel/tqstyle.cpp | 2186 | 
1 files changed, 2186 insertions, 0 deletions
| diff --git a/tqtinterface/qt4/src/kernel/tqstyle.cpp b/tqtinterface/qt4/src/kernel/tqstyle.cpp new file mode 100644 index 0000000..ac14dcb --- /dev/null +++ b/tqtinterface/qt4/src/kernel/tqstyle.cpp @@ -0,0 +1,2186 @@ +/**************************************************************************** +** +** Implementation of TQStyle class +** +** Created : 981231 +** +** Copyright (C) 1998-2008 Trolltech ASA.  All rights reserved. +** +** This file is part of the kernel 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 "tqstyle.h" +#ifndef TQT_NO_STYLE +#include "tqapplication.h" +#include "tqpainter.h" +#include "tqbitmap.h" +#include "tqpixmapcache.h" + +#include <limits.h> + +#ifdef USE_QT4 + +// // Default implementations in case Qt4 style objects are being used +// int TQStyle::tqpixelMetric( QStyle::PixelMetric metric, const TQWidget *widget ) const { +// // 	return QStyle::pixelMetric(metric, 0, widget); +// 	printf("[WARNING] TQStyle::tqpixelMetric( QStyle::PixelMetric metric, const TQWidget *widget ) const unimplemented\n\r"); +// 	return 0; +// } +//  +// // End default implementations + +bool TQStyle::isA( const char *classname ) const +{ +	if (tqstrcmp(classname, metaObject()->className()) == 0) return true; +	else { +		TQString cn = metaObject()->className(); +		if (cn[0] == 'T') +			cn = cn.remove(0,1); +		return (tqstrcmp(classname, cn.ascii()) == 0); +	} +} + +bool TQStyle::inherits( const char *classname ) const { +	if (QStyle::inherits(classname)) return true; +	else { +		TQString cn = classname; +		if (cn[0] != 'T') +			cn = cn.prepend('T'); +		return QStyle::inherits(cn.ascii()); +	} +} + +//const char *TQStyle::name(const char *defaultName) const { +//	TQString s = objectName(); +//	return s.isEmpty()?defaultName:s.latin1_helper(); +//} + +const char *TQStyle::tqname() const { +	if (dynamic_cast<const TQStyle*>(static_cast<const QStyle*>(static_cast<const QObject*>(this)))) { +		static_object_name = TQT_OBJECT_NAME_HANDLER(objectName()); +		return static_object_name.ascii(); +	} +	else { +		printf("[WARNING] Attempted to call TQStyle::tqname() on an object without a constructed TQStyle object or base object.  Returning \"\"\n\r"); +		return ""; +	} +} + +const char *TQStyle::name() const { +	if (dynamic_cast<const TQStyle*>(static_cast<const QStyle*>(static_cast<const QObject*>(this)))) { +		static_object_name = TQT_OBJECT_NAME_HANDLER(objectName()); +		return static_object_name.ascii(); +	} +	else { +		printf("[WARNING] Attempted to call TQStyle::name() on an object without a constructed TQStyle object or base object.  Returning \"\"\n\r"); +		return ""; +	} +} + +TQMetaObject *TQStyle::tqmetaObject() const { +	return TQT_TQOBJECT_CONST(this)->tqmetaObject(); +} + +/*! +    Returns the appropriate area (see below) within rectangle \a r in +    which to draw the \a text or \a pixmap using painter \a p. If \a +    len is -1 (the default) all the \a text is drawn; otherwise only +    the first \a len characters of \a text are drawn. The text is +    aligned in accordance with the tqalignment \a flags (see +    \l{TQt::AlignmentFlags}). The \a enabled bool indicates whether or +    not the item is enabled. + +    If \a r is larger than the area needed to render the \a text the +    rectangle that is returned will be offset within \a r in +    accordance with the tqalignment \a flags. For example if \a flags is +    \c AlignCenter the returned rectangle will be centered within \a +    r. If \a r is smaller than the area needed the rectangle that is +    returned will be \e larger than \a r (the smallest rectangle large +    enough to render the \a text or \a pixmap). + +    By default, if both the text and the pixmap are not null, the +    pixmap is drawn and the text is ignored. +*/ +TQRect TQStyle::tqitemRect( QPainter *p, const QRect &r, +			int flags, bool enabled, const QPixmap *pixmap, +			const QString& text, int len ) const +{ +    TQRect result; +    int x = r.x(); +    int y = r.y(); +    int w = r.width(); +    int h = r.height(); +    TQt::GUIStyle gs = (TQt::GUIStyle)tqstyleHint( SH_GUIStyle ); + +    if ( pixmap ) { +	if ( (flags & TQt::AlignVCenter) == TQt::AlignVCenter ) +	    y += h/2 - pixmap->height()/2; +	else if ( (flags & TQt::AlignBottom) == TQt::AlignBottom) +	    y += h - pixmap->height(); +	if ( (flags & TQt::AlignRight) == TQt::AlignRight ) +	    x += w - pixmap->width(); +	else if ( (flags & TQt::AlignHCenter) == TQt::AlignHCenter ) +	    x += w/2 - pixmap->width()/2; +	else if ( (flags & TQt::AlignLeft) != TQt::AlignLeft && TQApplication::reverseLayout() ) +	    x += w - pixmap->width(); +	result = TQRect(x, y, pixmap->width(), pixmap->height()); +    } else if ( !text.isNull() && p ) { +	result = TQT_TQPAINTER(p)->boundingRect( x, y, w, h, flags, text, len ); +	if ( gs == TQt::WindowsStyle && !enabled ) { +	    result.setWidth(result.width()+1); +	    result.setHeight(result.height()+1); +	} +    } else { +	result = TQRect(x, y, w, h); +    } + +    return result; +} + +/*! +    Draws the \a text or \a pixmap in rectangle \a r using painter \a +    p and color group \a g. The pen color is specified with \a +    penColor. The \a enabled bool indicates whether or not the item is +    enabled; when reimplementing this bool should influence how the +    item is drawn. If \a len is -1 (the default) all the \a text is +    drawn; otherwise only the first \a len characters of \a text are +    drawn. The text is aligned and wrapped according to the tqalignment +    \a flags (see \l{TQt::AlignmentFlags}). + +    By default, if both the text and the pixmap are not null, the +    pixmap is drawn and the text is ignored. +*/ +void TQStyle::drawItem( TQPainter *p, const TQRect &r, +		       int flags, const TQColorGroup &g, bool enabled, +		       const TQPixmap *pixmap, const TQString& text, int len, +		       const TQColor* penColor ) const +{ +    int x = r.x(); +    int y = r.y(); +    int w = r.width(); +    int h = r.height(); +    TQt::GUIStyle gs = (TQt::GUIStyle)tqstyleHint( SH_GUIStyle ); + +    p->setPen( penColor?*penColor:g.foreground() ); +    if ( pixmap ) { +	TQPixmap  pm( *pixmap ); +	bool clip = (flags & TQt::DontClip) == 0; +	if ( clip ) { +	    if ( pm.width() < w && pm.height() < h ) { +		clip = FALSE; +	    } else { +		p->save(); +		TQRegion cr = TQRect(x, y, w, h); +		if (p->hasClipping()) +		    cr &= p->clipRegion(TQPainter::CoordPainter); +		p->setClipRegion(cr); +	    } +	} +	if ( (flags & TQt::AlignVCenter) == TQt::AlignVCenter ) +	    y += h/2 - pm.height()/2; +	else if ( (flags & TQt::AlignBottom) == TQt::AlignBottom) +	    y += h - pm.height(); +	if ( (flags & TQt::AlignRight) == TQt::AlignRight ) +	    x += w - pm.width(); +	else if ( (flags & TQt::AlignHCenter) == TQt::AlignHCenter ) +	    x += w/2 - pm.width()/2; +	else if ( ((flags & TQt::AlignLeft) != TQt::AlignLeft) && TQApplication::reverseLayout() ) // AlignAuto && rightToLeft +	    x += w - pm.width(); + +	if ( !enabled ) { +	    if ( pm.tqmask() ) {			// pixmap with a tqmask +		if ( !pm.selfMask() ) {		// tqmask is not pixmap itself +		    TQPixmap pmm( *pm.tqmask() ); +		    pmm.setMask( *((TQBitmap *)&pmm) ); +		    pm = pmm; +		} +	    } else if ( pm.depth() == 1 ) {	// monochrome pixmap, no tqmask +		pm.setMask( *((TQBitmap *)&pm) ); +#ifndef TQT_NO_IMAGE_HEURISTIC_MASK +	    } else {				// color pixmap, no tqmask +		TQString k; +		k.sprintf( "$qt-drawitem-%x", pm.serialNumber() ); +		TQPixmap *tqmask = TQPixmapCache::tqfind(k); +		bool del=FALSE; +		if ( !tqmask ) { +		    tqmask = new TQPixmap( pm.createHeuristicMask() ); +		    tqmask->setMask( *((TQBitmap*)tqmask) ); +		    del = !TQPixmapCache::insert( k, tqmask ); +		} +		pm = *tqmask; +		if (del) delete tqmask; +#endif +	    } +	    if ( gs == TQt::WindowsStyle ) { +		p->setPen( g.light() ); +		p->drawPixmap( x+1, y+1, pm ); +		p->setPen( g.text() ); +	    } +	} +	p->drawPixmap( x, y, pm ); +	if ( clip ) +	    p->restore(); +    } else if ( !text.isNull() ) { +	if ( gs == TQt::WindowsStyle && !enabled ) { +	    p->setPen( g.light() ); +	    p->drawText( x+1, y+1, w, h, flags, text, len ); +	    p->setPen( g.text() ); +	} +	p->drawText( x, y, w, h, flags, text, len ); +    } +} + +/*! +    Initializes the appearance of a widget. + +    This function is called for every widget at some point after it +    has been fully created but just \e before it is shown the very +    first time. + +    Reasonable actions in this function might be to call +    TQWidget::setBackgroundMode() for the widget. An example of highly +    unreasonable use would be setting the tqgeometry! Reimplementing +    this function gives you a back-door through which you can change +    the appearance of a widget. With TQt 3.0's style engine you will +    rarely need to write your own polish(); instead reimplement +    drawItem(), drawPrimitive(), etc. + +    The TQWidget::inherits() function may provide enough information to +    allow class-specific customizations. But be careful not to +    hard-code things too much because new TQStyle subclasses are +    expected to work reasonably with all current and \e future +    widgets. + +    \sa unPolish() +*/ +void TQStyle::polish( TQWidget*) +{ +} + +/*! +    Undoes the initialization of a widget's appearance. + +    This function is the counterpart to polish. It is called for every +    polished widget when the style is dynamically changed. The former +    style has to unpolish its settings before the new style can polish +    them again. + +    \sa polish() +*/ +void TQStyle::unPolish( TQWidget*) +{ +} + +/*! +    \overload +    Late initialization of the TQApplication object. + +    \sa unPolish() +*/ +void TQStyle::polish( TQApplication*) +{ +} + +/*! +    \overload + +    Undoes the application polish. + +    \sa polish() +*/ +void TQStyle::unPolish( TQApplication*) +{ +} + +/*! +    \overload + +    The style may have certain requirements for color palettes. In +    this function it has the chance to change the palette according to +    these requirements. + +    \sa TQPalette, TQApplication::setPalette() +*/ +void TQStyle::polish( TQPalette&) +{ +} + +#else // USE_QT4 + +class TQStylePrivate +{ +public: +    TQStylePrivate() +    { +    } +}; + +/*! +    \class TQStyleOption tqstyle.h +    \brief The TQStyleOption class specifies optional parameters for TQStyle functions. +    \ingroup appearance + +    Some TQStyle functions take an optional argument specifying extra +    information that is required for a paritical primitive or control. +    So that the TQStyle class can be extended, TQStyleOption is used to +    provide a variable-argument for these options. + +    The TQStyleOption class has constructors for each type of optional +    argument, and this set of constructors may be extended in future +    TQt releases. There are also corresponding access functions that +    return the optional arguments: these too may be extended. + +    For each constructor, you should refer to the documentation of the +    TQStyle functions to see the meaning of the arguments. + +    When calling TQStyle functions from your own widgets, you must only +    pass the default TQStyleOption or the argument that TQStyle is +    documented to accept. For example, if the function expects +    TQStyleOption(TQMenuItem *, int), passing TQStyleOption(TQMenuItem *) +    leaves the optional integer argument uninitialized. + +    When subclassing TQStyle, you must similarly only expect the +    default or documented arguments. The other arguments will have +    uninitialized values. + +    If you make your own TQStyle subclasses and your own widgets, you +    can make a subclass of TQStyleOption to pass additional arguments +    to your TQStyle subclass. You will need to cast the "const +    TQStyleOption&" argument to your subclass, so be sure your style +    has been called from your widget. +*/ + +/*! +    \enum TQStyleOption::StyleOptionDefault + +    This enum value can be passed as the optional argument to any +    TQStyle function. + +    \value Default +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(StyleOptionDefault) + +    The default option. This can always be passed as the optional +    argument to TQStyle functions. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(int) + +    Pass one integer, \a in1. For example, headerSection. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(int, int) + +    Pass two integers, \a in1 and \a in2. For example, linewidth and +    midlinewidth. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(int, int, int, int) + +    Pass four integers, \a in1, \a in2, \a in3 and \a in4. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQMenuItem*) + +    Pass a menu item, \a m. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQMenuItem*, int) + +    Pass a menu item and an integer, \a m and \a in1. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQMenuItem*, int, int) + +    Pass a menu item and two integers, \a m, \a in1 and \a in2. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(const TQColor&) + +    Pass a color, \a c. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQTab*) + +    Pass a TQTab, \a t. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQListViewItem*) + +    Pass a TQListViewItem, \a i. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQt::ArrowType) + +    Pass an TQt::ArrowType, \a a. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption(TQCheckListItem* i) + +    Pass a TQCheckListItem, \a i. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption( const TQRect &r ) + +    Pass a TQRect, \a r. +*/ + +/*! +    \fn TQStyleOption::TQStyleOption( TQWidget *w ) + +    Pass a TQWidget, \a w. +*/ + +/*! +    \fn bool TQStyleOption::isDefault() const + +    Returns TRUE if the option was constructed with the default +    constructor; otherwise returns FALSE. +*/ + +/*! +    \fn int TQStyleOption::day() const + +    Returns the index of the day in the month if the appropriate +    constructor was called; otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::lineWidth() const + +    Returns the line width if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::midLineWidth() const + +    Returns the mid-line width if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::frameShape() const + +    Returns a TQFrame::Shape value if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::frameShadow() const + +    Returns a TQFrame::Shadow value if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn TQMenuItem* TQStyleOption::menuItem() const + +    Returns a menu item if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::maxIconWidth() const + +    Returns the maximum width of the menu item check area if the +    appropriate constructor was called; otherwise the return value is +    undefined. +*/ + +/*! +    \fn int TQStyleOption::tabWidth() const + +    Returns the tab indent width if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn int TQStyleOption::headerSection() const + +    Returns the header section if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn const TQColor& TQStyleOption::color() const + +    Returns a color if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn TQTab* TQStyleOption::tab() const + +    Returns a TQTabBar tab if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn TQListViewItem* TQStyleOption::listViewItem() const + +    Returns a TQListView item if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn TQt::ArrowType TQStyleOption::arrowType() const + +    Returns an arrow type if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn TQCheckListItem* TQStyleOption::checkListItem() const + +    Returns a check list item if the appropriate constructor was +    called; otherwise the return value is undefined. +*/ + +/*! +    \fn TQRect TQStyleOption::rect() const + +    Returns a rectangle if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \fn TQWidget* TQStyleOption::widget() const + +    Returns a pointer to a widget if the appropriate constructor was called; +    otherwise the return value is undefined. +*/ + +/*! +    \class TQStyle tqstyle.h +    \brief The TQStyle class specifies the look and feel of a GUI. +    \ingroup appearance + +    A large number of GUI elements are common to many widgets. The +    TQStyle class allows the look of these elements to be modified +    across all widgets that use the TQStyle functions. It also +    provides two feel options: Motif and Windows. + +    Although it is not possible to fully enumerate the look of +    graphical elements and the feel of widgets in a GUI, TQStyle +    provides a considerable amount of control and customisability. + +    In TQt 1.x the look and feel option for widgets was specified by a +    single value: the GUIStyle. Starting with TQt 2.0, this notion was +    expanded to allow the look to be specified by virtual drawing +    functions. + +    Derived classes may reimplement some or all of the drawing +    functions to modify the look of all widgets that use those +    functions. + +    Languages written from right to left (such as Arabic and Hebrew) +    usually also mirror the whole tqlayout of widgets. If you design a +    style, you should take special care when drawing asymmetric +    elements to make sure that they also look correct in a mirrored +    tqlayout. You can start your application with \c -reverse to check +    the mirrored tqlayout. Also notice, that for a reversed tqlayout, the +    light usually comes from top right instead of top left. + +    The actual reverse tqlayout is performed automatically when +    possible. However, for the sake of flexibility, the translation +    cannot be performed everywhere. The documentation for each +    function in the TQStyle API states whether the function +    expects/returns logical or screen coordinates. Using logical +    coordinates (in ComplexControls, for example) provides great +    flexibility in controlling the look of a widget. Use tqvisualRect() +    when necessary to translate logical coordinates into screen +    coordinates for drawing. + +    In TQt versions prior to 3.0, if you wanted a low level route into +    changing the appearance of a widget, you would reimplement +    polish(). With the new 3.0 style engine the recommended approach +    is to reimplement the draw functions, for example drawItem(), +    drawPrimitive(), tqdrawControl(), tqdrawControlMask(), +    tqdrawComplexControl() and tqdrawComplexControlMask(). Each of these +    functions is called with a range of parameters that provide +    information that you can use to determine how to draw them, e.g. +    style flags, rectangle, color group, etc. + +    For information on changing elements of an existing style or +    creating your own style see the \link customstyles.html Style +    overview\endlink. + +    Styles can also be created as \link plugins-howto.html +    plugins\endlink. +*/ + +/*! +  \enum TQt::GUIStyle + +  \obsolete + +  \value WindowsStyle +  \value MotifStyle +  \value MacStyle +  \value Win3Style +  \value PMStyle +*/ + +/*! +    \enum TQt::UIEffect + +    \value UI_General +    \value UI_AnimateMenu +    \value UI_FadeMenu +    \value UI_AnimateCombo +    \value UI_AnimateTooltip +    \value UI_FadeTooltip +    \value UI_AnimateToolBox Reserved +*/ + +/*! +    Constructs a TQStyle. +*/ +TQStyle::TQStyle() +{ +    d = new TQStylePrivate; +} + +/*! +    Destroys the style and frees all allocated resources. +*/ +TQStyle::~TQStyle() +{ +    delete d; +    d = 0; +} + +/* +  \fn GUIStyle TQStyle::guiStyle() const +  \obsolete + +  Returns an indicator to the additional "feel" component of a +  style. Current supported values are TQt::WindowsStyle and TQt::MotifStyle. +*/ + + + +/*! +    Initializes the appearance of a widget. + +    This function is called for every widget at some point after it +    has been fully created but just \e before it is shown the very +    first time. + +    Reasonable actions in this function might be to call +    TQWidget::setBackgroundMode() for the widget. An example of highly +    unreasonable use would be setting the tqgeometry! Reimplementing +    this function gives you a back-door through which you can change +    the appearance of a widget. With TQt 3.0's style engine you will +    rarely need to write your own polish(); instead reimplement +    drawItem(), drawPrimitive(), etc. + +    The TQWidget::inherits() function may provide enough information to +    allow class-specific customizations. But be careful not to +    hard-code things too much because new TQStyle subclasses are +    expected to work reasonably with all current and \e future +    widgets. + +    \sa unPolish() +*/ +void TQStyle::polish( TQWidget*) +{ +} + +/*! +    Undoes the initialization of a widget's appearance. + +    This function is the counterpart to polish. It is called for every +    polished widget when the style is dynamically changed. The former +    style has to unpolish its settings before the new style can polish +    them again. + +    \sa polish() +*/ +void TQStyle::unPolish( TQWidget*) +{ +} + + +/*! +    \overload +    Late initialization of the TQApplication object. + +    \sa unPolish() +*/ +void TQStyle::polish( TQApplication*) +{ +} + +/*! +    \overload + +    Undoes the application polish. + +    \sa polish() +*/ +void TQStyle::unPolish( TQApplication*) +{ +} + +/*! +    \overload + +    The style may have certain requirements for color palettes. In +    this function it has the chance to change the palette according to +    these requirements. + +    \sa TQPalette, TQApplication::setPalette() +*/ +void TQStyle::polish( TQPalette&) +{ +} + +/*! +    Polishes the popup menu according to the GUI style. This usually +    means setting the mouse tracking +    (\l{TQPopupMenu::setMouseTracking()}) and whether the menu is +    checkable by default (\l{TQPopupMenu::setCheckable()}). +*/ +void TQStyle::polishPopupMenu( TQPopupMenu *) +{ +} + +/*! +    Returns the appropriate area (see below) within rectangle \a r in +    which to draw the \a text or \a pixmap using painter \a p. If \a +    len is -1 (the default) all the \a text is drawn; otherwise only +    the first \a len characters of \a text are drawn. The text is +    aligned in accordance with the tqalignment \a flags (see +    \l{TQt::AlignmentFlags}). The \a enabled bool indicates whether or +    not the item is enabled. + +    If \a r is larger than the area needed to render the \a text the +    rectangle that is returned will be offset within \a r in +    accordance with the tqalignment \a flags. For example if \a flags is +    \c AlignCenter the returned rectangle will be centered within \a +    r. If \a r is smaller than the area needed the rectangle that is +    returned will be \e larger than \a r (the smallest rectangle large +    enough to render the \a text or \a pixmap). + +    By default, if both the text and the pixmap are not null, the +    pixmap is drawn and the text is ignored. +*/ +TQRect TQStyle::tqitemRect( TQPainter *p, const TQRect &r, +			int flags, bool enabled, const TQPixmap *pixmap, +			const TQString& text, int len ) const +{ +    TQRect result; +    int x = r.x(); +    int y = r.y(); +    int w = r.width(); +    int h = r.height(); +    GUIStyle gs = (GUIStyle)tqstyleHint( SH_GUIStyle ); + +    if ( pixmap ) { +	if ( (flags & TQt::AlignVCenter) == TQt::AlignVCenter ) +	    y += h/2 - pixmap->height()/2; +	else if ( (flags & TQt::AlignBottom) == TQt::AlignBottom) +	    y += h - pixmap->height(); +	if ( (flags & TQt::AlignRight) == TQt::AlignRight ) +	    x += w - pixmap->width(); +	else if ( (flags & TQt::AlignHCenter) == TQt::AlignHCenter ) +	    x += w/2 - pixmap->width()/2; +	else if ( (flags & TQt::AlignLeft) != TQt::AlignLeft && TQApplication::reverseLayout() ) +	    x += w - pixmap->width(); +	result = TQRect(x, y, pixmap->width(), pixmap->height()); +    } else if ( !text.isNull() && p ) { +	result = p->boundingRect( x, y, w, h, flags, text, len ); +	if ( gs == TQt::WindowsStyle && !enabled ) { +	    result.setWidth(result.width()+1); +	    result.setHeight(result.height()+1); +	} +    } else { +	result = TQRect(x, y, w, h); +    } + +    return result; +} + + +/*! +    Draws the \a text or \a pixmap in rectangle \a r using painter \a +    p and color group \a g. The pen color is specified with \a +    penColor. The \a enabled bool indicates whether or not the item is +    enabled; when reimplementing this bool should influence how the +    item is drawn. If \a len is -1 (the default) all the \a text is +    drawn; otherwise only the first \a len characters of \a text are +    drawn. The text is aligned and wrapped according to the tqalignment +    \a flags (see \l{TQt::AlignmentFlags}). + +    By default, if both the text and the pixmap are not null, the +    pixmap is drawn and the text is ignored. +*/ +void TQStyle::drawItem( TQPainter *p, const TQRect &r, +		       int flags, const TQColorGroup &g, bool enabled, +		       const TQPixmap *pixmap, const TQString& text, int len, +		       const TQColor* penColor ) const +{ +    int x = r.x(); +    int y = r.y(); +    int w = r.width(); +    int h = r.height(); +    GUIStyle gs = (GUIStyle)tqstyleHint( SH_GUIStyle ); + +    p->setPen( penColor?*penColor:g.foreground() ); +    if ( pixmap ) { +	TQPixmap  pm( *pixmap ); +	bool clip = (flags & TQt::DontClip) == 0; +	if ( clip ) { +	    if ( pm.width() < w && pm.height() < h ) { +		clip = FALSE; +	    } else { +		p->save(); +		TQRegion cr = TQRect(x, y, w, h); +		if (p->hasClipping()) +		    cr &= p->clipRegion(TQPainter::CoordPainter); +		p->setClipRegion(cr); +	    } +	} +	if ( (flags & TQt::AlignVCenter) == TQt::AlignVCenter ) +	    y += h/2 - pm.height()/2; +	else if ( (flags & TQt::AlignBottom) == TQt::AlignBottom) +	    y += h - pm.height(); +	if ( (flags & TQt::AlignRight) == TQt::AlignRight ) +	    x += w - pm.width(); +	else if ( (flags & TQt::AlignHCenter) == TQt::AlignHCenter ) +	    x += w/2 - pm.width()/2; +	else if ( ((flags & TQt::AlignLeft) != TQt::AlignLeft) && TQApplication::reverseLayout() ) // AlignAuto && rightToLeft +	    x += w - pm.width(); + +	if ( !enabled ) { +	    if ( pm.tqmask() ) {			// pixmap with a tqmask +		if ( !pm.selfMask() ) {		// tqmask is not pixmap itself +		    TQPixmap pmm( *pm.tqmask() ); +		    pmm.setMask( *((TQBitmap *)&pmm) ); +		    pm = pmm; +		} +	    } else if ( pm.depth() == 1 ) {	// monochrome pixmap, no tqmask +		pm.setMask( *((TQBitmap *)&pm) ); +#ifndef TQT_NO_IMAGE_HEURISTIC_MASK +	    } else {				// color pixmap, no tqmask +		TQString k; +		k.sprintf( "$qt-drawitem-%x", pm.serialNumber() ); +		TQPixmap *tqmask = TQPixmapCache::tqfind(k); +		bool del=FALSE; +		if ( !tqmask ) { +		    tqmask = new TQPixmap( pm.createHeuristicMask() ); +		    tqmask->setMask( *((TQBitmap*)tqmask) ); +		    del = !TQPixmapCache::insert( k, tqmask ); +		} +		pm = *tqmask; +		if (del) delete tqmask; +#endif +	    } +	    if ( gs == TQt::WindowsStyle ) { +		p->setPen( g.light() ); +		p->drawPixmap( x+1, y+1, pm ); +		p->setPen( g.text() ); +	    } +	} +	p->drawPixmap( x, y, pm ); +	if ( clip ) +	    p->restore(); +    } else if ( !text.isNull() ) { +	if ( gs == TQt::WindowsStyle && !enabled ) { +	    p->setPen( g.light() ); +	    p->drawText( x+1, y+1, w, h, flags, text, len ); +	    p->setPen( g.text() ); +	} +	p->drawText( x, y, w, h, flags, text, len ); +    } +} + +/*! +    \enum TQStyle::PrimitiveElement + +    This enum represents the PrimitiveElements of a style. A +    PrimitiveElement is a common GUI element, such as a checkbox +    indicator or pushbutton bevel. + +    \value PE_ButtonCommand  button used to initiate an action, for +	example, a TQPushButton. +    \value PE_ButtonDefault  this button is the default button, e.g. +	in a dialog. +    \value PE_ButtonBevel  generic button bevel. +    \value PE_ButtonTool  tool button, for example, a TQToolButton. +    \value PE_ButtonDropDown  drop down button, for example, a tool +	button that displays a popup menu, for example, TQPopupMenu. + + +    \value PE_FocusRect  generic focus indicator. + + +    \value PE_ArrowUp  up arrow. +    \value PE_ArrowDown  down arrow. +    \value PE_ArrowRight  right arrow. +    \value PE_ArrowLeft  left arrow. + + +    \value PE_SpinWidgetUp  up symbol for a spin widget, for example a +	TQSpinBox. +    \value PE_SpinWidgetDown down symbol for a spin widget. +    \value PE_SpinWidgetPlus  increase symbol for a spin widget. +    \value PE_SpinWidgetMinus  decrease symbol for a spin widget. + + +    \value PE_Indicator  on/off indicator, for example, a TQCheckBox. +    \value PE_IndicatorMask  bitmap tqmask for an indicator. +    \value PE_ExclusiveIndicator  exclusive on/off indicator, for +	example, a TQRadioButton. +    \value PE_ExclusiveIndicatorMask  bitmap tqmask for an exclusive indicator. + + +    \value PE_DockWindowHandle  tear off handle for dock windows and +	toolbars, for example \l{TQDockWindow}s and \l{TQToolBar}s. +    \value PE_DockWindowSeparator  item separator for dock window and +	toolbar contents. +    \value PE_DockWindowResizeHandle  resize handle for dock windows. + +    \value PE_Splitter  splitter handle; see also TQSplitter. + + +    \value PE_Panel  generic panel frame; see also TQFrame. +    \value PE_PanelPopup  panel frame for popup windows/menus; see also +	TQPopupMenu. +    \value PE_PanelMenuBar  panel frame for menu bars. +    \value PE_PanelDockWindow  panel frame for dock windows and toolbars. +    \value PE_PanelTabWidget  panel frame for tab widgets. +    \value PE_PanelLineEdit  panel frame for line edits. +    \value PE_PanelGroupBox  panel frame for group boxes. + +    \value PE_TabBarBase  area below tabs in a tab widget, for example, +	TQTab. + + +    \value PE_HeaderSection  section of a list or table header; see also +	TQHeader. +    \value PE_HeaderArrow arrow used to indicate sorting on a list or table +	header +    \value PE_tqStatusBarSection  section of a status bar; see also +	TQStatusBar. + + +    \value PE_GroupBoxFrame  frame around a group box; see also +	TQGroupBox. +    \value PE_WindowFrame  frame around a MDI window or a docking window + + +    \value PE_Separator  generic separator. + + +    \value PE_SizeGrip  window resize handle; see also TQSizeGrip. + + +    \value PE_CheckMark  generic check mark; see also TQCheckBox. + + +    \value PE_ScrollBarAddLine  scrollbar line increase indicator +	(i.e. scroll down); see also TQScrollBar. +    \value PE_ScrollBarSubLine  scrollbar line decrease indicator (i.e. scroll up). +    \value PE_ScrollBarAddPage  scolllbar page increase indicator (i.e. page down). +    \value PE_ScrollBarSubPage  scrollbar page decrease indicator (i.e. page up). +    \value PE_ScrollBarSlider  scrollbar slider +    \value PE_ScrollBarFirst  scrollbar first line indicator (i.e. home). +    \value PE_ScrollBarLast  scrollbar last line indicator (i.e. end). + + +    \value PE_ProgressBarChunk  section of a progress bar indicator; see +	also TQProgressBar. + +    \value PE_CheckListController controller part of a listview item +    \value PE_CheckListIndicator checkbox part of a listview item +    \value PE_CheckListExclusiveIndicator radiobutton part of a listview item +    \value PE_RubberBand rubber band used in such things as iconview + +    \value PE_CustomBase  base value for custom PrimitiveElements. +	All values above this are reserved for custom use. Custom +	values must be greater than this value. + +    \sa drawPrimitive() +*/ +/*! \enum TQStyle::SFlags +    \internal +*/ +/*! \enum TQStyle::SCFlags +    \internal +*/ + +/*! +    \enum TQStyle::StyleFlags + +    This enum represents flags for drawing PrimitiveElements. Not all +    primitives use all of these flags. Note that these flags may mean +    different things to different primitives. For an explanation of +    the relationship between primitives and their flags, as well as +    the different meanings of the flags, see the \link +    customstyles.html Style overview\endlink. + +    \value Style_Default +    \value Style_Enabled +    \value Style_Raised +    \value Style_Sunken +    \value Style_Off +    \value Style_NoChange +    \value Style_On +    \value Style_Down +    \value Style_Horizontal +    \value Style_HasFocus +    \value Style_Top +    \value Style_Bottom +    \value Style_FocusAtBorder +    \value Style_AutoRaise +    \value Style_MouseOver +    \value Style_Up +    \value Style_Selected +    \value Style_HasFocus +    \value Style_Active +    \value Style_ButtonDefault + +    \sa drawPrimitive() +*/ + +/*! +    \fn void TQStyle::drawPrimitive( PrimitiveElement pe, TQPainter *p, const TQRect &r, const TQColorGroup &cg, SFlags flags, const TQStyleOption& opt) const + +    Draws the style PrimitiveElement \a pe using the painter \a p in +    the area \a r. Colors are used from the color group \a cg. + +    The rect \a r should be in screen coordinates. + +    The \a flags argument is used to control how the PrimitiveElement +    is drawn. Multiple flags can be OR'ed together. + +    For example, a pressed button would be drawn with the flags \c +    Style_Enabled and \c Style_Down. + +    The \a opt argument can be used to control how various +    PrimitiveElements are drawn. Note that \a opt may be the default +    value even for PrimitiveElements that make use of extra options. +    When \a opt is non-default, it is used as follows: + +    \table +    \header \i PrimitiveElement \i Options \i Notes +    \row \i \l PE_FocusRect +	 \i \l TQStyleOption ( const \l TQColor & bg ) +	    \list +	    \i opt.\link TQStyleOption::color() color\endlink() +	    \endlist +	 \i \e bg is the background color on which the focus rect is being drawn. +    \row \i12 \l PE_Panel +	 \i12 \l TQStyleOption ( int linewidth, int midlinewidth ) +		\list +		\i opt.\link TQStyleOption::lineWidth() lineWidth\endlink() +		\i opt.\link TQStyleOption::midLineWidth() midLineWidth\endlink() +		\endlist +	 \i \e linewidth is the line width for drawing the panel. +    \row \i \e midlinewidth is the mid-line width for drawing the panel. +    \row \i12 \l PE_PanelPopup +	 \i12 \l TQStyleOption ( int linewidth, int midlinewidth ) +		\list +		\i opt.\link TQStyleOption::lineWidth() lineWidth\endlink() +		\i opt.\link TQStyleOption::midLineWidth() midLineWidth\endlink() +		\endlist +	 \i \e linewidth is the line width for drawing the panel. +    \row \i \e midlinewidth is the mid-line width for drawing the panel. +    \row \i12 \l PE_PanelMenuBar +	 \i12 \l TQStyleOption ( int linewidth, int midlinewidth ) +		\list +		\i opt.\link TQStyleOption::lineWidth() lineWidth\endlink() +		\i opt.\link TQStyleOption::midLineWidth() midLineWidth\endlink() +		\endlist +	 \i \e linewidth is the line width for drawing the panel. +    \row \i \e midlinewidth is the mid-line width for drawing the panel. +    \row \i12 \l PE_PanelDockWindow +	 \i12 \l TQStyleOption ( int linewidth, int midlinewidth ) +		\list +		\i opt.\link TQStyleOption::lineWidth() lineWidth\endlink() +		\i opt.\link TQStyleOption::midLineWidth() midLineWidth\endlink() +		\endlist +	 \i \e linewidth is the line width for drawing the panel. +    \row \i \e midlinewidth is the mid-line width for drawing the panel. +    \row \i14 \l PE_GroupBoxFrame +	 \i14 \l TQStyleOption ( int linewidth, int midlinewidth, int tqshape, int shadow ) +		\list +		\i opt.\link TQStyleOption::lineWidth() lineWidth\endlink() +		\i opt.\link TQStyleOption::midLineWidth() midLineWidth\endlink() +		\i opt.\link TQStyleOption::frameShape() frameShape\endlink() +		\i opt.\link TQStyleOption::frameShadow() frameShadow\endlink() +		\endlist +	 \i \e linewidth is the line width for the group box. +    \row \i \e midlinewidth is the mid-line width for the group box. +    \row \i \e tqshape is the \link TQFrame::frameShape frame tqshape \endlink +	    for the group box. +    \row \i \e shadow is the \link TQFrame::frameShadow frame shadow \endlink +	    for the group box. +    \endtable + + +    For all other \link TQStyle::PrimitiveElement +    PrimitiveElements\endlink, \a opt is unused. + +    \sa StyleFlags +*/ + +/*! +    \enum TQStyle::ControlElement + +    This enum represents a ControlElement. A ControlElement is part of +    a widget that performs some action or displays information to the +    user. + +    \value CE_PushButton  the bevel and default indicator of a TQPushButton. +    \value CE_PushButtonLabel  the label (iconset with text or pixmap) +	of a TQPushButton. + +    \value CE_CheckBox  the indicator of a TQCheckBox. +    \value CE_CheckBoxLabel  the label (text or pixmap) of a TQCheckBox. + +    \value CE_RadioButton  the indicator of a TQRadioButton. +    \value CE_RadioButtonLabel  the label (text or pixmap) of a TQRadioButton. + +    \value CE_TabBarTab  the tab within a TQTabBar (a TQTab). +    \value CE_TabBarLabel  the label within a TQTab. + +    \value CE_ProgressBarGroove  the groove where the progress +	indicator is drawn in a TQProgressBar. +    \value CE_ProgressBarContents  the progress indicator of a TQProgressBar. +    \value CE_ProgressBarLabel  the text label of a TQProgressBar. + +    \value CE_PopupMenuItem  a menu item in a TQPopupMenu. +    \value CE_PopupMenuScroller scrolling areas in a popumenu when the +	style supports scrolling. +    \value CE_PopupMenuHorizontalExtra extra frame area set aside with PM_PopupMenuFrameHorizontalExtra +    \value CE_PopupMenuVerticalExtra extra frame area set aside with PM_PopupMenuFrameVerticalExtra + +    \value CE_MenuBarItem  a menu item in a TQMenuBar. + +    \value CE_ToolButtonLabel a tool button's label. + +    \value CE_MenuBarEmptyArea the empty area of a TQMenuBar. +    \value CE_DockWindowEmptyArea the empty area of a TQDockWindow. + +    \value CE_ToolBoxTab the toolbox's tab area +    \value CE_HeaderLabel the header's label + +    \value CE_CustomBase  base value for custom ControlElements. All values above +	    this are reserved for custom use. Therefore, custom values must be +	    greater than this value. + +    \sa tqdrawControl() +*/ + +/*! +    \fn void TQStyle::tqdrawControl( ControlElement element, TQPainter *p, const TQWidget *widget, const TQRect &r, const TQColorGroup &cg, SFlags how, const TQStyleOption& opt) const + +    Draws the ControlElement \a element using the painter \a p in the +    area \a r. Colors are used from the color group \a cg. + +    The rect \a r should be in screen coordinates. + +    The \a how argument is used to control how the ControlElement is +    drawn. Multiple flags can be OR'ed together. See the table below +    for an explanation of which flags are used with the various +    ControlElements. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a element. The \a opt argument can be used to +    pass extra information required when drawing the ControlElement. +    Note that \a opt may be the default value even for ControlElements +    that can make use of the extra options. See the table below for +    the appropriate \a widget and \a opt usage: + +    \table +    \header \i ControlElement<br>\& Widget Cast +	    \i Style Flags +	    \i Notes +	    \i Options +	    \i Notes + +    \row \i16 \l{CE_PushButton}(const \l TQPushButton *) + +	 and + +	    \l{CE_PushButtonLabel}(const \l TQPushButton *) +	 \i \l Style_Enabled \i Set if the button is enabled. +	 \i16 Unused. +	 \i16   +    \row \i \l Style_HasFocus \i Set if the button has input focus. +    \row \i \l Style_Raised \i Set if the button is not down, not on and not flat. +    \row \i \l Style_On \i Set if the button is a toggle button and toggled on. +    \row \i \l Style_Down \i Set if the button is down (i.e., the mouse button or +			    space bar is pressed on the button). +    \row \i \l Style_ButtonDefault \i Set if the button is a default button. + +    \row \i16 \l{CE_CheckBox}(const \l TQCheckBox *) + +	 and + +	 \l{CE_CheckBoxLabel}(const \l TQCheckBox *) + +	 \i \l Style_Enabled \i Set if the checkbox is enabled. +	 \i16 Unused. +	 \i16   +    \row \i \l Style_HasFocus \i Set if the checkbox has input focus. +    \row \i \l Style_On \i Set if the checkbox is checked. +    \row \i \l Style_Off \i Set if the checkbox is not checked. +    \row \i \l Style_NoChange \i Set if the checkbox is in the NoChange state. +    \row \i \l Style_Down \i Set if the checkbox is down (i.e., the mouse button or +			    space bar is pressed on the button). + +    \row \i15 \l{CE_RadioButton}(const TQRadioButton *) + +	and + +	\l{CE_RadioButtonLabel}(const TQRadioButton *) +	\i \l Style_Enabled \i Set if the radiobutton is enabled. +	\i15 Unused. +	\i15   +    \row \i \l Style_HasFocus \i Set if the radiobutton has input focus. +    \row \i \l Style_On \i Set if the radiobutton is checked. +    \row \i \l Style_Off \i Set if the radiobutton is not checked. +    \row \i \l Style_Down \i Set if the radiobutton is down (i.e., the mouse +			    button or space bar is pressed on the radiobutton). + +    \row \i12 \l{CE_TabBarTab}(const \l TQTabBar *) + +	 and + +	 \l{CE_TabBarLabel}(const \l TQTabBar *) + +	 \i \l Style_Enabled \i Set if the tabbar and tab is enabled. +	 \i12 \l TQStyleOption ( \l TQTab *t ) +		\list +		\i opt.\link TQStyleOption::tab() tab\endlink() +		\endlist +	 \i12 \e t is the TQTab being drawn. +    \row \i \l Style_Selected \i Set if the tab is the current tab. + +    \row \i12 \l{CE_ProgressBarGroove}(const TQProgressBar *) + +	 and + +	 \l{CE_ProgressBarContents}(const TQProgressBar *) + +	 and + +	 \l{CE_ProgressBarLabel}(const TQProgressBar *) + +	 \i \l Style_Enabled \i Set if the progressbar is enabled. +	 \i12 Unused. +	 \i12   +    \row \i \l Style_HasFocus \i Set if the progressbar has input focus. + +    \row \i13 \l{CE_PopupMenuItem}(const \l TQPopupMenu *) +	 \i \l Style_Enabled \i Set if the menuitem is enabled. +	 \i13 \l TQStyleOption ( TQMenuItem *mi, int tabwidth, int maxpmwidth ) +		\list +		\i opt.\link TQStyleOption::menuItem() menuItem\endlink() +		\i opt.\link TQStyleOption::tabWidth() tabWidth\endlink() +		\i opt.\link TQStyleOption::maxIconWidth() maxIconWidth\endlink() +		\endlist +	 \i \e mi is the menu item being drawn. TQMenuItem is currently an +	    internal class. +    \row \i \l Style_Active \i Set if the menuitem is the current item. +	 \i \e tabwidth is the width of the tab column where key accelerators +	    are drawn. +    \row \i \l Style_Down \i Set if the menuitem is down (i.e., the mouse button +			    or space bar is pressed). +	 \i \e maxpmwidth is the maximum width of the check column where +	    checkmarks and iconsets are drawn. + +    \row \i14 \l{CE_MenuBarItem}(const \l TQMenuBar *) +	 \i \l Style_Enabled \i Set if the menuitem is enabled +	 \i14 \l TQStyleOption ( TQMenuItem *mi ) +		\list +		\i opt.\link TQStyleOption::menuItem() menuItem\endlink() +		\endlist +	 \i14 \e mi is the menu item being drawn. +    \row \i \l Style_Active \i Set if the menuitem is the current item. +    \row \i \l Style_Down \i Set if the menuitem is down (i.e., a mouse button or +			    the space bar is pressed). +    \row \i \l Style_HasFocus \i Set if the menubar has input focus. + +    \row \i17 \l{CE_ToolButtonLabel}(const \l TQToolButton *) +	 \i \l Style_Enabled \i Set if the toolbutton is enabled. +	 \i17 \l TQStyleOption ( \l ArrowType t ) +		\list +		\i opt.\link TQStyleOption::arrowType() arrowType\endlink() +		\endlist +	 \i17 When the tool button only tqcontains an arrow, \e t is the +	    arrow's type. +    \row \i \l Style_HasFocus \i Set if the toolbutton has input focus. +    \row \i \l Style_Down \i Set if the toolbutton is down (i.e., a +	    mouse button or the space is pressed). +    \row \i \l Style_On \i Set if the toolbutton is a toggle button +	and is toggled on. +    \row \i \l Style_AutoRaise \i Set if the toolbutton has auto-raise enabled. +    \row \i \l Style_MouseOver \i Set if the mouse pointer is over the toolbutton. +    \row \i \l Style_Raised \i Set if the button is not down, not on and doesn't +	contain the mouse when auto-raise is enabled. +    \endtable + +    \sa ControlElement, StyleFlags +*/ + +/*! +    \fn void TQStyle::tqdrawControlMask( ControlElement element, TQPainter *p, const TQWidget *widget, const TQRect &r, const TQStyleOption& opt) const + +    Draw a bittqmask for the ControlElement \a element using the painter +    \a p in the area \a r. See tqdrawControl() for an explanation of the +    use of the \a widget and \a opt arguments. + +    The rect \a r should be in screen coordinates. + +    \sa tqdrawControl(), ControlElement +*/ + +/*! +    \enum TQStyle::SubRect + +    This enum represents a sub-area of a widget. Style implementations +    would use these areas to draw the different parts of a widget. + +    \value SR_PushButtonContents  area containing the label (iconset +	with text or pixmap). +    \value SR_PushButtonFocusRect  area for the focus rect (usually +	larger than the contents rect). + +    \value SR_CheckBoxIndicator  area for the state indicator (e.g. check mark). +    \value SR_CheckBoxContents  area for the label (text or pixmap). +    \value SR_CheckBoxFocusRect  area for the focus indicator. + + +    \value SR_RadioButtonIndicator  area for the state indicator. +    \value SR_RadioButtonContents  area for the label. +    \value SR_RadioButtonFocusRect  area for the focus indicator. + + +    \value SR_ComboBoxFocusRect  area for the focus indicator. + + +    \value SR_SliderFocusRect  area for the focus indicator. + + +    \value SR_DockWindowHandleRect  area for the tear-off handle. + + +    \value SR_ProgressBarGroove  area for the groove. +    \value SR_ProgressBarContents  area for the progress indicator. +    \value SR_ProgressBarLabel  area for the text label. + + +    \value SR_ToolButtonContents area for the tool button's label. + +    \value SR_DialogButtonAccept area for a dialog's accept button. +    \value SR_DialogButtonReject area for a dialog's reject button. +    \value SR_DialogButtonApply  area for a dialog's apply button. +    \value SR_DialogButtonHelp area for a dialog's help button. +    \value SR_DialogButtonAll area for a dialog's all button. +    \value SR_DialogButtonRetry area for a dialog's retry button. +    \value SR_DialogButtonAbort area for a dialog's abort button. +    \value SR_DialogButtonIgnore area for a dialog's ignore button. +    \value SR_DialogButtonCustom area for a dialog's custom widget area (in button row). + +    \value SR_ToolBoxTabContents area for a toolbox tab's icon and label + +    \value SR_CustomBase  base value for custom ControlElements. All values above +	    this are reserved for custom use. Therefore, custom values must be +	    greater than this value. + +    \sa subRect() +*/ + +/*! +    \fn TQRect TQStyle::subRect( SubRect subrect, const TQWidget *widget ) const; + +    Returns the sub-area \a subrect for the \a widget in logical +    coordinates. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a subrect. See the table below for the +    appropriate \a widget casts: + +    \table +    \header \i SubRect \i Widget Cast +    \row \i \l SR_PushButtonContents	\i (const \l TQPushButton *) +    \row \i \l SR_PushButtonFocusRect	\i (const \l TQPushButton *) +    \row \i \l SR_CheckBoxIndicator	\i (const \l TQCheckBox *) +    \row \i \l SR_CheckBoxContents	\i (const \l TQCheckBox *) +    \row \i \l SR_CheckBoxFocusRect	\i (const \l TQCheckBox *) +    \row \i \l SR_RadioButtonIndicator	\i (const \l TQRadioButton *) +    \row \i \l SR_RadioButtonContents	\i (const \l TQRadioButton *) +    \row \i \l SR_RadioButtonFocusRect	\i (const \l TQRadioButton *) +    \row \i \l SR_ComboBoxFocusRect	\i (const \l TQComboBox *) +    \row \i \l SR_DockWindowHandleRect	\i (const \l TQWidget *) +    \row \i \l SR_ProgressBarGroove	\i (const \l TQProgressBar *) +    \row \i \l SR_ProgressBarContents	\i (const \l TQProgressBar *) +    \row \i \l SR_ProgressBarLabel	\i (const \l TQProgressBar *) +    \endtable + +    The tear-off handle (SR_DockWindowHandleRect) for TQDockWindow +    is a private class. Use TQWidget::parentWidget() to access the +    TQDockWindow: + +    \code +	if ( !widget->parentWidget() ) +	    return; +	const TQDockWindow *dw = (const TQDockWindow *) widget->parentWidget(); +    \endcode + +    \sa SubRect +*/ + +/*! +    \enum TQStyle::ComplexControl + +    This enum represents a ComplexControl. ComplexControls have +    different behaviour depending upon where the user clicks on them +    or which keys are pressed. + +    \value CC_SpinWidget +    \value CC_ComboBox +    \value CC_ScrollBar +    \value CC_Slider +    \value CC_ToolButton +    \value CC_TitleBar +    \value CC_ListView + + +    \value CC_CustomBase  base value for custom ControlElements. All +	values above this are reserved for custom use. Therefore, +	custom values must be greater than this value. + +    \sa SubControl tqdrawComplexControl() +*/ + +/*! +    \enum TQStyle::SubControl + +    This enum represents a SubControl within a ComplexControl. + +    \value SC_None   special value that matches no other SubControl. + + +    \value SC_ScrollBarAddLine  scrollbar add line (i.e. down/right +	arrow); see also TQScrollbar. +    \value SC_ScrollBarSubLine  scrollbar sub line (i.e. up/left arrow). +    \value SC_ScrollBarAddPage  scrollbar add page (i.e. page down). +    \value SC_ScrollBarSubPage  scrollbar sub page (i.e. page up). +    \value SC_ScrollBarFirst	scrollbar first line (i.e. home). +    \value SC_ScrollBarLast	scrollbar last line (i.e. end). +    \value SC_ScrollBarSlider	scrollbar slider handle. +    \value SC_ScrollBarGroove	special subcontrol which tqcontains the +	area in which the slider handle may move. + + +    \value SC_SpinWidgetUp  spinwidget up/increase; see also TQSpinBox. +    \value SC_SpinWidgetDown  spinwidget down/decrease. +    \value SC_SpinWidgetFrame  spinwidget frame. +    \value SC_SpinWidgetEditField  spinwidget edit field. +    \value SC_SpinWidgetButtonField  spinwidget button field. + + +    \value SC_ComboBoxEditField  combobox edit field; see also TQComboBox. +    \value SC_ComboBoxArrow  combobox arrow +    \value SC_ComboBoxFrame combobox frame +    \value SC_ComboBoxListBoxPopup combobox list box + +    \value SC_SliderGroove  special subcontrol which tqcontains the area +	in which the slider handle may move. +    \value SC_SliderHandle  slider handle. +    \value SC_SliderTickmarks  slider tickmarks. + + +    \value SC_ToolButton  tool button; see also TQToolbutton. +    \value SC_ToolButtonMenu subcontrol for opening a popup menu in a +	tool button; see also TQPopupMenu. + + +    \value SC_TitleBarSysMenu	system menu button (i.e. restore, close, etc.). +    \value SC_TitleBarMinButton  minimize button. +    \value SC_TitleBarMaxButton  maximize button. +    \value SC_TitleBarCloseButton  close button. +    \value SC_TitleBarLabel  window title label. +    \value SC_TitleBarNormalButton  normal (restore) button. +    \value SC_TitleBarShadeButton  shade button. +    \value SC_TitleBarUnshadeButton  unshade button. + + +    \value SC_ListView  the list view area. +    \value SC_ListViewBranch  (internal) +    \value SC_ListViewExpand  expand item (i.e. show/hide child items). + + +    \value SC_All  special value that matches all SubControls. + + +    \sa ComplexControl +*/ + +/*! +    \fn void TQStyle::tqdrawComplexControl( ComplexControl control, TQPainter *p, const TQWidget *widget, const TQRect &r, const TQColorGroup &cg, SFlags how, SCFlags sub, SCFlags subActive, const TQStyleOption& opt ) const + +    Draws the ComplexControl \a control using the painter \a p in the +    area \a r. Colors are used from the color group \a cg. The \a sub +    argument specifies which SubControls to draw. Multiple SubControls +    can be OR'ed together. The \a subActive argument specifies which +    SubControl is active. + +    The rect \a r should be in logical coordinates. Reimplementations +    of this function should use tqvisualRect() to change the logical +    coordinates into screen coordinates when using drawPrimitive() and +    tqdrawControl(). + +    The \a how argument is used to control how the ComplexControl is +    drawn. Multiple flags can OR'ed together. See the table below for +    an explanation of which flags are used with the various +    ComplexControls. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a control. The \a opt argument can be used to +    pass extra information required when drawing the ComplexControl. +    Note that \a opt may be the default value even for ComplexControls +    that can make use of the extra options. See the table below for +    the appropriate \a widget and \a opt usage: + +    \table +    \header \i ComplexControl<br>\& Widget Cast +	    \i Style Flags +	    \i Notes +	    \i Options +	    \i Notes + +    \row \i12 \l{CC_SpinWidget}(const TQSpinWidget *) +	 \i \l Style_Enabled \i Set if the spinwidget is enabled. +	 \i12 Unused. +	 \i12   +    \row \i \l Style_HasFocus \i Set if the spinwidget has input focus. + +    \row \i12 \l{CC_ComboBox}(const \l TQComboBox *) +	 \i \l Style_Enabled \i Set if the combobox is enabled. +	 \i12 Unused. +	 \i12   +    \row \i \l Style_HasFocus \i Set if the combobox has input focus. + +    \row \i12 \l{CC_ScrollBar}(const \l TQScrollBar *) +	 \i \l Style_Enabled \i Set if the scrollbar is enabled. +	 \i12 Unused. +	 \i12   +    \row \i \l Style_HasFocus \i Set if the scrollbar has input focus. + +    \row \i12 \l{CC_Slider}(const \l TQSlider *) +	 \i \l Style_Enabled \i Set if the slider is enabled. +	 \i12 Unused. +	 \i12   + +    \row \i \l Style_HasFocus \i Set if the slider has input focus. + +    \row \i16 \l{CC_ToolButton}(const \l TQToolButton *) +	 \i \l Style_Enabled \i Set if the toolbutton is enabled. +	 \i16 \l TQStyleOption ( \l ArrowType t ) +		\list +		\i opt.\link TQStyleOption::arrowType() arrowType\endlink() +		\endlist +	 \i16 When the tool button only tqcontains an arrow, \e t is the +		arrow's type. +    \row \i \l Style_HasFocus \i Set if the toolbutton has input focus. +    \row \i \l Style_Down \i Set if the toolbutton is down (ie. mouse +	button or space pressed). +    \row \i \l Style_On \i Set if the toolbutton is a toggle button +	and is toggled on. +    \row \i \l Style_AutoRaise \i Set if the toolbutton has auto-raise enabled. +    \row \i \l Style_Raised \i Set if the button is not down, not on and doesn't +	contain the mouse when auto-raise is enabled. + +    \row \i \l{CC_TitleBar}(const \l TQWidget *) +	 \i \l Style_Enabled \i Set if the titlebar is enabled. +	 \i Unused. +	 \i   + +    \row \i \l{CC_ListView}(const \l TQListView *) +	 \i \l Style_Enabled \i Set if the titlebar is enabled. +	 \i \l TQStyleOption ( \l TQListViewItem *item ) +	    \list +	    \i opt.\link TQStyleOption::listViewItem() listViewItem\endlink() +	    \endlist +	 \i \e item is the item that needs branches drawn +    \endtable + +    \sa ComplexControl, SubControl +*/ + +/*! +    \fn void TQStyle::tqdrawComplexControlMask( ComplexControl control, TQPainter *p, const TQWidget *widget, const TQRect &r, const TQStyleOption& opt) const + +    Draw a bittqmask for the ComplexControl \a control using the painter +    \a p in the area \a r. See tqdrawComplexControl() for an explanation +    of the use of the \a widget and \a opt arguments. + +    The rect \a r should be in logical coordinates. Reimplementations +    of this function should use tqvisualRect() to change the logical +    corrdinates into screen coordinates when using drawPrimitive() and +    tqdrawControl(). + +    \sa tqdrawComplexControl() ComplexControl +*/ + +/*! +    \fn TQRect TQStyle::querySubControlMetrics( ComplexControl control, const TQWidget *widget, SubControl subcontrol, const TQStyleOption& opt = TQStyleOption::Default ) const; + +    Returns the rect for the SubControl \a subcontrol for \a widget in +    logical coordinates. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a control. The \a opt argument can be used to +    pass extra information required when drawing the ComplexControl. +    Note that \a opt may be the default value even for ComplexControls +    that can make use of the extra options. See tqdrawComplexControl() +    for an explanation of the \a widget and \a opt arguments. + +    \sa tqdrawComplexControl(), ComplexControl, SubControl +*/ + +/*! +    \fn SubControl TQStyle::querySubControl( ComplexControl control, const TQWidget *widget, const TQPoint &pos, const TQStyleOption& opt = TQStyleOption::Default ) const; + +    Returns the SubControl for \a widget at the point \a pos. The \a +    widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a control. The \a opt argument can be used to +    pass extra information required when drawing the ComplexControl. +    Note that \a opt may be the default value even for ComplexControls +    that can make use of the extra options. See tqdrawComplexControl() +    for an explanation of the \a widget and \a opt arguments. + +    Note that \a pos is passed in screen coordinates. When using +    querySubControlMetrics() to check for hits and misses, use +    tqvisualRect() to change the logical coordinates into screen +    coordinates. + +    \sa tqdrawComplexControl(), ComplexControl, SubControl, querySubControlMetrics() +*/ + +/*! +    \enum TQStyle::PixelMetric + +    This enum represents a PixelMetric. A PixelMetric is a style +    dependent size represented as a single pixel value. + +    \value PM_ButtonMargin  amount of whitespace between pushbutton +	labels and the frame. +    \value PM_ButtonDefaultIndicator  width of the default-button indicator frame. +    \value PM_MenuButtonIndicator  width of the menu button indicator +	proportional to the widget height. +    \value PM_ButtonShiftHorizontal  horizontal contents shift of a +	button when the button is down. +    \value PM_ButtonShiftVertical  vertical contents shift of a button when the +	button is down. + +    \value PM_DefaultFrameWidth  default frame width, usually 2. +    \value PM_SpinBoxFrameWidth  frame width of a spin box. +    \value PM_MDIFrameWidth frame width of an MDI window. +    \value PM_MDIMinimizedWidth width of a minimized MSI window. + +    \value PM_MaximumDragDistance  Some feels require the scrollbar or +	other sliders to jump back to the original position when the +	mouse pointer is too far away while dragging. A value of -1 +	disables this behavior. + +    \value PM_ScrollBarExtent  width of a vertical scrollbar and the +	height of a horizontal scrollbar. +    \value PM_ScrollBarSliderMin the minimum height of a vertical +	scrollbar's slider and the minimum width of a horiztonal +	scrollbar slider. + +    \value PM_SliderThickness  total slider thickness. +    \value PM_SliderControlThickness  thickness of the slider handle. +    \value PM_SliderLength length of the slider. +    \value PM_SliderTickmarkOffset the offset between the tickmarks +	and the slider. +    \value PM_SliderSpaceAvailable  the available space for the slider to move. + +    \value PM_DockWindowSeparatorExtent  width of a separator in a +	horiztonal dock window and the height of a separator in a +	vertical dock window. +    \value PM_DockWindowHandleExtent  width of the handle in a +	horizontal dock window and the height of the handle in a +	vertical dock window. +    \value PM_DockWindowFrameWidth  frame width of a dock window. + +    \value PM_MenuBarFrameWidth  frame width of a menubar. + +    \value PM_MenuBarItemSpacing  spacing between menubar items. +    \value PM_ToolBarItemSpacing  spacing between toolbar items. + +    \value PM_TabBarTabOverlap number of pixels the tabs should overlap. +    \value PM_TabBarTabHSpace extra space added to the tab width. +    \value PM_TabBarTabVSpace extra space added to the tab height. +    \value PM_TabBarBaseHeight height of the area between the tab bar +	and the tab pages. +    \value PM_TabBarBaseOverlap number of pixels the tab bar overlaps +	the tab bar base. +    \value PM_TabBarScrollButtonWidth +    \value PM_TabBarTabShiftHorizontal horizontal pixel shift when a +        tab is selected. +    \value PM_TabBarTabShiftVertical vertical pixel shift when a +        tab is selected. + +    \value PM_ProgressBarChunkWidth  width of a chunk in a progress bar indicator. + +    \value PM_SplitterWidth  width of a splitter. + +    \value PM_TitleBarHeight height of the title bar. +    \value PM_PopupMenuFrameHorizontalExtra additional border, e.g. for panels +    \value PM_PopupMenuFrameVerticalExtra additional border, e.g. for panels + +    \value PM_IndicatorWidth  width of a check box indicator. +    \value PM_IndicatorHeight  height of a checkbox indicator. +    \value PM_ExclusiveIndicatorWidth  width of a radio button indicator. +    \value PM_ExclusiveIndicatorHeight  height of a radio button indicator. + +    \value PM_PopupMenuScrollerHeight height of the scroller area in a popupmenu. +    \value PM_PopupMenuScrollerHeight height of the scroller area in a popupmenu. +    \value PM_CheckListButtonSize area (width/height) of the +	checkbox/radiobutton in a TQCheckListItem +    \value PM_CheckListControllerSize area (width/height) of the +	controller in a TQCheckListItem + +    \value PM_DialogButtonsSeparator distance between buttons in a dialog buttons widget. +    \value PM_DialogButtonsButtonWidth minimum width of a button in a dialog buttons widget. +    \value PM_DialogButtonsButtonHeight minimum height of a button in a dialog buttons widget. + +    \value PM_HeaderMarkSize +    \value PM_HeaderGripMargin +    \value PM_HeaderMargin + +    \value PM_CustomBase  base value for custom ControlElements. All +	values above this are reserved for custom use. Therefore, +	custom values must be greater than this value. + + +    \sa tqpixelMetric() +*/ + +/*! +    \fn int TQStyle::tqpixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const; + +    Returns the pixel metric for \a metric. The \a widget argument is +    a pointer to a TQWidget or one of its subclasses. The widget can be +    cast to the appropriate type based on the value of \a metric. Note +    that \a widget may be zero even for PixelMetrics that can make use +    of \a widget. See the table below for the appropriate \a widget +    casts: + +    \table +    \header \i PixelMetric \i Widget Cast +    \row \i \l PM_SliderControlThickness    \i (const \l TQSlider *) +    \row \i \l PM_SliderLength		    \i (const \l TQSlider *) +    \row \i \l PM_SliderTickmarkOffset	    \i (const \l TQSlider *) +    \row \i \l PM_SliderSpaceAvailable	    \i (const \l TQSlider *) +    \row \i \l PM_TabBarTabOverlap	    \i (const \l TQTabBar *) +    \row \i \l PM_TabBarTabHSpace	    \i (const \l TQTabBar *) +    \row \i \l PM_TabBarTabVSpace	    \i (const \l TQTabBar *) +    \row \i \l PM_TabBarBaseHeight	    \i (const \l TQTabBar *) +    \row \i \l PM_TabBarBaseOverlap	    \i (const \l TQTabBar *) +    \endtable +*/ + +/*! +    \enum TQStyle::ContentsType + +    This enum represents a ContentsType. It is used to calculate sizes +    for the contents of various widgets. + +    \value CT_PushButton +    \value CT_CheckBox +    \value CT_RadioButton +    \value CT_ToolButton +    \value CT_ComboBox +    \value CT_Splitter +    \value CT_DockWindow +    \value CT_ProgressBar +    \value CT_PopupMenuItem +    \value CT_TabBarTab +    \value CT_Slider +    \value CT_Header +    \value CT_LineEdit +    \value CT_MenuBar +    \value CT_SpinBox +    \value CT_SizeGrip +    \value CT_TabWidget +    \value CT_DialogButtons + +    \value CT_CustomBase  base value for custom ControlElements. All +	values above this are reserved for custom use. Custom values +	must be greater than this value. + +    \sa sizeFromContents() +*/ + +/*! +    \fn TQSize TQStyle::sizeFromContents( ContentsType contents, const TQWidget *widget, const TQSize &contentsSize, const TQStyleOption& opt = TQStyleOption::Default ) const; + +    Returns the size of \a widget based on the contents size \a +    contentsSize. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a contents. The \a opt argument can be used to +    pass extra information required when calculating the size. Note +    that \a opt may be the default value even for ContentsTypes that +    can make use of the extra options. See the table below for the +    appropriate \a widget and \a opt usage: + +    \table +    \header \i ContentsType \i Widget Cast \i Options \i Notes +    \row \i \l CT_PushButton \i (const \l TQPushButton *) \i Unused. \i   +    \row \i \l CT_CheckBox \i (const \l TQCheckBox *) \i Unused. \i   +    \row \i \l CT_RadioButton \i (const \l TQRadioButton *) \i Unused. \i   +    \row \i \l CT_ToolButton \i (const \l TQToolButton *) \i Unused. \i   +    \row \i \l CT_ComboBox \i (const \l TQComboBox *) \i Unused. \i   +    \row \i \l CT_Splitter \i (const \l TQSplitter *) \i Unused. \i   +    \row \i \l CT_DockWindow \i (const \l TQDockWindow *) \i Unused. \i   +    \row \i \l CT_ProgressBar \i (const \l TQProgressBar *) \i Unused. \i   +    \row \i \l CT_PopupMenuItem \i (const TQPopupMenu *) +	\i \l TQStyleOption ( TQMenuItem *mi ) +	    \list +	    \i opt.\link TQStyleOption::menuItem() menuItem\endlink() +	    \endlist +	\i \e mi is the menu item to use when calculating the size. +	    TQMenuItem is currently an internal class. +    \endtable +*/ + +/*! +    \enum TQStyle::StyleHint + +    This enum represents a StyleHint. A StyleHint is a general look +    and/or feel hint. + +    \value SH_EtchDisabledText disabled text is "etched" like Windows. + +    \value SH_GUIStyle the GUI style to use. + +    \value SH_ScrollBar_BackgroundMode  the background mode for a +	TQScrollBar. Possible values are any of those in the \link +	TQt::BackgroundMode BackgroundMode\endlink enum. + +    \value SH_ScrollBar_MiddleClickAbsolutePosition  a boolean value. +	If TRUE, middle clicking on a scrollbar causes the slider to +	jump to that position. If FALSE, the middle clicking is +	ignored. + +    \value SH_ScrollBar_LeftClickAbsolutePosition  a boolean value. +	If TRUE, left clicking on a scrollbar causes the slider to +	jump to that position. If FALSE, the left clicking will +	behave as appropriate for each control. + +    \value SH_ScrollBar_ScrollWhenPointerLeavesControl  a boolean +	value. If TRUE, when clicking a scrollbar SubControl, holding +	the mouse button down and moving the pointer outside the +	SubControl, the scrollbar continues to scroll. If FALSE, the +	scollbar stops scrolling when the pointer leaves the +	SubControl. + +    \value SH_TabBar_Alignment  the tqalignment for tabs in a +	TQTabWidget. Possible values are \c TQt::AlignLeft, \c +	TQt::AlignCenter and \c TQt::AlignRight. + +    \value SH_Header_ArrowAlignment the placement of the sorting +	indicator may appear in list or table headers. Possible values +	are \c TQt::Left or \c TQt::Right. + +    \value SH_Slider_SnapToValue  sliders snap to values while moving, +	like Windows + +    \value SH_Slider_SloppyKeyEvents  key presses handled in a sloppy +	manner, i.e. left on a vertical slider subtracts a line. + +    \value SH_ProgressDialog_CenterCancelButton  center button on +	progress dialogs, like Motif, otherwise right aligned. + +    \value SH_ProgressDialog_TextLabelAlignment TQt::AlignmentFlags -- +	text label tqalignment in progress dialogs; Center on windows, +	Auto|VCenter otherwise. + +    \value SH_PrintDialog_RightAlignButtons  right align buttons in +	the print dialog, like Windows. + +    \value SH_MainWindow_SpaceBelowMenuBar 1 or 2 pixel space between +	the menubar and the dockarea, like Windows. + +    \value SH_FontDialog_SelectAssociatedText select the text in the +	line edit, or when selecting an item from the listbox, or when +	the line edit receives focus, like Windows. + +    \value SH_PopupMenu_AllowActiveAndDisabled  allows disabled menu +	items to be active. + +    \value SH_PopupMenu_SpaceActivatesItem  pressing Space activates +	the item, like Motif. + +    \value SH_PopupMenu_SubMenuPopupDelay  the number of milliseconds +	to wait before opening a submenu; 256 on windows, 96 on Motif. + +    \value SH_PopupMenu_Scrollable whether popupmenu's must support +	scrolling. + +    \value SH_PopupMenu_SloppySubMenus whether popupmenu's must support +	sloppy submenu; as implemented on Mac OS. + +    \value SH_ScrollView_FrameOnlyAroundContents  whether scrollviews +	draw their frame only around contents (like Motif), or around +	contents, scrollbars and corner widgets (like Windows). + +    \value SH_MenuBar_AltKeyNavigation  menubars items are navigable +	by pressing Alt, followed by using the arrow keys to select +	the desired item. + +    \value SH_ComboBox_ListMouseTracking  mouse tracking in combobox +	dropdown lists. + +    \value SH_PopupMenu_MouseTracking  mouse tracking in popup menus. + +    \value SH_MenuBar_MouseTracking  mouse tracking in menubars. + +    \value SH_ItemView_ChangeHighlightOnFocus  gray out selected items +	when losing focus. + +    \value SH_Widget_ShareActivation turn on sharing activation with +	floating modeless dialogs. + +    \value SH_TabBar_SelectMouseType which type of mouse event should +	cause a tab to be selected. + +    \value SH_ListViewExpand_SelectMouseType which type of mouse event should +	cause a listview expansion to be selected. + +    \value SH_TabBar_PreferNoArrows whether a tabbar should suggest a size +        to prevent scoll arrows. + +    \value SH_ComboBox_Popup allows popups as a combobox dropdown +	menu. + +    \value SH_Workspace_FillSpaceOnMaximize the workspace should +	maximize the client area. + +    \value SH_TitleBar_NoBorder the titlebar has no border + +    \value SH_ScrollBar_StopMouseOverSlider stops autorepeat when +	slider reaches mouse + +    \value SH_BlinkCursorWhenTextSelected whether cursor should blink +	when text is selected + +    \value SH_RichText_FullWidthSelection whether richtext selections +	should extend the full width of the document. + +    \value SH_GroupBox_TextLabelVerticalAlignment how to vertically align a +        groupbox's text label. + +    \value SH_GroupBox_TextLabelColor how to paint a groupbox's text label. + +    \value SH_DialogButtons_DefaultButton which buttons gets the +        default status in a dialog's button widget. + +    \value SH_CustomBase  base value for custom ControlElements. All +	values above this are reserved for custom use. Therefore, +	custom values must be greater than this value. + +    \value SH_ToolButton_Uses3D indicates whether TQToolButtons should +    use a 3D frame when the mouse is over them + +    \value SH_ToolBox_SelectedPageTitleBold Boldness of the selected +    page title in a TQToolBox. + +    \value SH_LineEdit_PasswordCharacter The TQChar Unicode character +    to be used for passwords. + +    \value SH_Table_GridLineColor + +    \value SH_UnderlineAccelerator whether accelerators are underlined + +    \sa tqstyleHint() +*/ + +/*! +    \fn int TQStyle::tqstyleHint( StyleHint stylehint, const TQWidget *widget = 0, const TQStyleOption &opt = TQStyleOption::Default, TQStyleHintReturn *returnData = 0 ) const; + +    Returns the style hint \a stylehint for \a widget. Currently, \a +    widget, \a opt, and \a returnData are unused; they're included to +    allow for future enhancements. + +    For an explanation of the return value see \l StyleHint. +*/ + +/*! +    \enum TQStyle::StylePixmap + +    This enum represents a StylePixmap. A StylePixmap is a pixmap that +    can follow some existing GUI style or guideline. + + +    \value SP_TitleBarMinButton  minimize button on titlebars. For +	example, in a TQWorkspace. +    \value SP_TitleBarMaxButton  maximize button on titlebars. +    \value SP_TitleBarCloseButton  close button on titlebars. +    \value SP_TitleBarNormalButton  normal (restore) button on titlebars. +    \value SP_TitleBarShadeButton  shade button on titlebars. +    \value SP_TitleBarUnshadeButton  unshade button on titlebars. +    \value SP_MessageBoxInformation the 'information' icon. +    \value SP_MessageBoxWarning the 'warning' icon. +    \value SP_MessageBoxCritical the 'critical' icon. +    \value SP_MessageBoxQuestion the 'question' icon. + + +    \value SP_DockWindowCloseButton  close button on dock windows; +	see also TQDockWindow. + + +    \value SP_CustomBase  base value for custom ControlElements. All +	values above this are reserved for custom use. Therefore, +	custom values must be greater than this value. + +    \sa stylePixmap() +*/ + +/*! +    \fn TQPixmap TQStyle::stylePixmap( StylePixmap stylepixmap, const TQWidget *widget = 0, const TQStyleOption& opt = TQStyleOption::Default ) const; + +    Returns a pixmap for \a stylepixmap. + +    The \a opt argument can be used to pass extra information required +    when drawing the ControlElement. Note that \a opt may be the +    default value even for StylePixmaps that can make use of the extra +    options. Currently, the \a opt argument is unused. + +    The \a widget argument is a pointer to a TQWidget or one of its +    subclasses. The widget can be cast to the appropriate type based +    on the value of \a stylepixmap. See the table below for the +    appropriate \a widget casts: + +    \table +    \header \i StylePixmap \i Widget Cast +    \row \i \l SP_TitleBarMinButton	\i (const \l TQWidget *) +    \row \i \l SP_TitleBarMaxButton	\i (const \l TQWidget *) +    \row \i \l SP_TitleBarCloseButton	\i (const \l TQWidget *) +    \row \i \l SP_TitleBarNormalButton	\i (const \l TQWidget *) +    \row \i \l SP_TitleBarShadeButton	\i (const \l TQWidget *) +    \row \i \l SP_TitleBarUnshadeButton \i (const \l TQWidget *) +    \row \i \l SP_DockWindowCloseButton \i (const \l TQDockWindow *) +    \endtable + +    \sa StylePixmap +*/ + +/*! +    \fn TQRect TQStyle::tqvisualRect( const TQRect &logical, const TQWidget *w ); + +    Returns the rect \a logical in screen coordinates. The bounding +    rect for widget \a w is used to perform the translation. This +    function is provided to aid style implementors in supporting +    right-to-left mode. + +    \sa TQApplication::reverseLayout() +*/ +TQRect TQStyle::tqvisualRect( const TQRect &logical, const TQWidget *w ) +{ +    TQRect boundingRect = w->rect(); +    TQRect r = logical; +    if ( TQApplication::reverseLayout() ) +	r.moveBy( 2*(boundingRect.right() - logical.right()) + +		  logical.width() - boundingRect.width(), 0 ); +    return r; +} + +/*! +    \overload TQRect TQStyle::tqvisualRect( const TQRect &logical, const TQRect &bounding ); + +    Returns the rect \a logical in screen coordinates. The rect \a +    bounding is used to perform the translation. This function is +    provided to aid style implementors in supporting right-to-left +    mode. + +    \sa TQApplication::reverseLayout() +*/ +TQRect TQStyle::tqvisualRect( const TQRect &logical, const TQRect &boundingRect ) +{ +    TQRect r = logical; +    if ( TQApplication::reverseLayout() ) +	r.moveBy( 2*(boundingRect.right() - logical.right()) + +		  logical.width() - boundingRect.width(), 0 ); +    return r; +} + +/*! +  \fn int TQStyle::defaultFrameWidth() const +  \obsolete +*/ + +/*! +  \fn void TQStyle::tabbarMetrics( const TQWidget *, int &, int &, int & ) const +  \obsolete +*/ + +/*! +  \fn TQSize TQStyle::scrollBarExtent() const +  \obsolete +*/ + +#endif // USE_QT4 + +#endif // TQT_NO_STYLE | 
