diff options
Diffstat (limited to 'experimental/tqtinterface/qt4/src/kernel/tqpalette.h')
-rw-r--r-- | experimental/tqtinterface/qt4/src/kernel/tqpalette.h | 295 |
1 files changed, 295 insertions, 0 deletions
diff --git a/experimental/tqtinterface/qt4/src/kernel/tqpalette.h b/experimental/tqtinterface/qt4/src/kernel/tqpalette.h new file mode 100644 index 000000000..19bf08ae2 --- /dev/null +++ b/experimental/tqtinterface/qt4/src/kernel/tqpalette.h @@ -0,0 +1,295 @@ +/**************************************************************************** +** +** Definition of TQColorGroup and TQPalette classes +** +** Created : 950323 +** +** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. +** +** 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. +** +**********************************************************************/ + +#ifndef TQPALETTE_H +#define TQPALETTE_H + +#include "tqtglobaldefines.h" + +#ifndef TQT_H +#include "tqwindowdefs.h" +#include "tqcolor.h" +#include "tqshared.h" +#include "tqbrush.h" // TQColor->TQBrush conversion +#endif // TQT_H + +#ifdef USE_QT4 + +#include <Qt/qpalette.h> + +#endif // USE_QT4 + +#ifndef TQT_NO_PALETTE + +#ifdef USE_QT4 + +class Q_GUI_EXPORT TQPalette : public QPalette, virtual public TQt +{ +public: + TQPalette() : QPalette() {} + TQPalette( const QColor &button ) : QPalette( button ) {} + TQPalette( const QColor &button, const QColor &background ) : QPalette( button, background ) {} + TQPalette( const TQColorGroup &active, const TQColorGroup &disabled, const TQColorGroup &inactive ); + TQPalette( const QPalette &pa ) : QPalette( pa ) {} + TQPalette(const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window) : QPalette( windowText, button, light, dark, mid, text, bright_text, base, window ) {} + TQPalette(const QColor &windowText, const QColor &window, const QColor &light, const QColor &dark, const QColor &mid, const QColor &text, const QColor &base) : QPalette( windowText, window, light, dark, mid, text, base ) {} + + TQColorGroup normal() const; + inline void setNormal(const TQColorGroup &cg) { tqsetColorGroup(Active, cg); } + + TQColorGroup active() const; + TQColorGroup disabled() const; + TQColorGroup inactive() const; +// inline void setActive(const TQColorGroup &cg) { tqsetColorGroup(Active, cg); } +// inline void setDisabled(const TQColorGroup &cg) { tqsetColorGroup(Disabled, cg); } +// inline void setInactive(const TQColorGroup &cg) { tqsetColorGroup(Inactive, cg); } + + static ColorRole foregroundRoleFromMode( TQt::BackgroundMode mode ); + static ColorRole backgroundRoleFromMode( TQt::BackgroundMode mode ); + +// inline QPalette copy() const { QPalette p = *this; p.detach(); return p; } + + inline void setActive(const TQColorGroup &cg) { tqsetColorGroup(Active, cg); } + inline void setDisabled(const TQColorGroup &cg) { tqsetColorGroup(Disabled, cg); } + inline void setInactive(const TQColorGroup &cg) { tqsetColorGroup(Inactive, cg); } + +private: + friend class TQColorGroup; + void tqsetColorGroup(ColorGroup, const TQColorGroup &); + TQColorGroup createColorGroup(ColorGroup) const; + +public: + // Interoperability + static const TQPalette& convertFromQPaletteh( QPalette& qp ); +}; + +// Interoperability +inline static const TQPalette& convertFromQPalette( const QPalette& qp ) { + return (*static_cast<const TQPalette*>(&qp)); +} + +class Q_GUI_EXPORT TQColorGroup : public TQPalette +{ +public: + inline TQColorGroup() : TQPalette() {} + inline TQColorGroup(const QBrush &foreground, const QBrush &button, const QBrush &light, + const QBrush &dark, const QBrush &mid, const QBrush &text, + const QBrush &bright_text, const QBrush &base, const QBrush &background) + : TQPalette(foreground, button, light, dark, mid, text, bright_text, base, background) + {} + inline TQColorGroup(const QColor &foreground, const QColor &background, const QColor &light, + const QColor &dark, const QColor &mid, const QColor &text, const QColor &base) + : TQPalette(foreground, background, light, dark, mid, text, base) {} + inline TQColorGroup(const TQColorGroup &cg) : TQPalette(cg) {} + inline TQColorGroup(const QPalette &pal) : TQPalette(pal) {} + bool operator==(const TQColorGroup &other) const; + inline bool operator!=(const TQColorGroup &other) const { return !(operator==(other)); } +// operator QVariant() const; + + inline const TQColor &foreground() const { return TQT_TQCOLOR_OBJECT(color(WindowText)); } + inline const TQColor &button() const { return TQT_TQCOLOR_OBJECT(color(Button)); } + inline const TQColor &light() const { return TQT_TQCOLOR_OBJECT(color(Light)); } + inline const TQColor &dark() const { return TQT_TQCOLOR_OBJECT(color(Dark)); } + inline const TQColor &mid() const { return TQT_TQCOLOR_OBJECT(color(Mid)); } + inline const TQColor &text() const { return TQT_TQCOLOR_OBJECT(color(Text)); } + inline const TQColor &base() const { return TQT_TQCOLOR_OBJECT(color(Base)); } + inline const TQColor &background() const { return TQT_TQCOLOR_OBJECT(color(Window)); } + inline const TQColor &midlight() const { return TQT_TQCOLOR_OBJECT(color(Midlight)); } + inline const TQColor &brightText() const { return TQT_TQCOLOR_OBJECT(color(BrightText)); } + inline const TQColor &buttonText() const { return TQT_TQCOLOR_OBJECT(color(ButtonText)); } + inline const TQColor &shadow() const { return TQT_TQCOLOR_OBJECT(color(Shadow)); } + inline const TQColor &highlight() const { return TQT_TQCOLOR_OBJECT(color(Highlight)); } + inline const TQColor &highlightedText() const { return TQT_TQCOLOR_OBJECT(color(HighlightedText)); } + inline const TQColor &link() const { return TQT_TQCOLOR_OBJECT(color(Link)); } + inline const TQColor &linkVisited() const { return TQT_TQCOLOR_OBJECT(color(LinkVisited)); } + + inline const TQBrush &tqbrush( ColorRole cr ) const { return TQT_TQBRUSH_OBJECT(TQPalette::brush(cr)); } +}; + +// #ifndef QT_NO_DATASTREAM +// QDataStream &operator<<(QDataStream &ds, const TQColorGroup &cg); +// QDataStream &operator>>(QDataStream &ds, TQColorGroup &cg); +// #endif + +inline TQColorGroup TQPalette::inactive() const { return createColorGroup(Inactive); } +inline TQColorGroup TQPalette::disabled() const { return createColorGroup(Disabled); } +inline TQColorGroup TQPalette::active() const { return createColorGroup(Active); } +inline TQColorGroup TQPalette::normal() const { return createColorGroup(Active); } + +#else // USE_QT4 + +class TQColorGroupPrivate; + +class TQ_EXPORT TQColorGroup +{ +public: + TQColorGroup(); + TQColorGroup( const TQColor &foreground, const TQColor &button, + const TQColor &light, const TQColor &dark, const TQColor &mid, + const TQColor &text, const TQColor &base ); + TQColorGroup( const TQBrush &foreground, const TQBrush &button, + const TQBrush &light, const TQBrush &dark, const TQBrush &mid, + const TQBrush &text, const TQBrush &bright_text, + const TQBrush &base, const TQBrush &background); + TQColorGroup( const TQColorGroup & ); + + ~TQColorGroup(); + + TQColorGroup& operator =(const TQColorGroup&); + + // Do not change the order, the serialization format depends on it + enum ColorRole { Foreground, Button, Light, Midlight, Dark, Mid, + Text, BrightText, ButtonText, Base, Background, Shadow, + Highlight, HighlightedText, Link, LinkVisited, + NColorRoles }; + + const TQColor &color( ColorRole ) const; + const TQBrush &brush( ColorRole ) const; + void setColor( ColorRole, const TQColor & ); + void setBrush( ColorRole, const TQBrush & ); + + const TQColor &foreground() const { return br[Foreground].color(); } + const TQColor &button() const { return br[Button].color(); } + const TQColor &light() const { return br[Light].color(); } + const TQColor &dark() const { return br[Dark].color(); } + const TQColor &mid() const { return br[Mid].color(); } + const TQColor &text() const { return br[Text].color(); } + const TQColor &base() const { return br[Base].color(); } + const TQColor &background() const { return br[Background].color(); } + + const TQColor &midlight() const { return br[Midlight].color(); } + const TQColor &brightText() const { return br[BrightText].color(); } + const TQColor &buttonText() const { return br[ButtonText].color(); } + const TQColor &shadow() const { return br[Shadow].color(); } + const TQColor &highlight() const { return br[Highlight].color(); } + const TQColor &highlightedText() const{return br[HighlightedText].color(); } + const TQColor &link() const { return br[Link].color(); } + const TQColor &linkVisited() const { return br[LinkVisited].color(); } + + bool operator==( const TQColorGroup &g ) const; + bool operator!=( const TQColorGroup &g ) const + { return !(operator==(g)); } + +private: + TQBrush *br; + TQColorGroupPrivate * d; + + friend class TQPalette; +}; + + +class TQ_EXPORT TQPalette +{ +public: + TQPalette(); + TQPalette( const TQColor &button ); + TQPalette( const TQColor &button, const TQColor &background ); + TQPalette( const TQColorGroup &active, const TQColorGroup &disabled, + const TQColorGroup &inactive ); + TQPalette( const TQPalette & ); + ~TQPalette(); + TQPalette &operator=( const TQPalette & ); + + enum ColorGroup { Disabled, Active, Inactive, NColorGroups, Normal=Active }; + + const TQColor &color( ColorGroup, TQColorGroup::ColorRole ) const; + const TQBrush &brush( ColorGroup, TQColorGroup::ColorRole ) const; + void setColor( ColorGroup, TQColorGroup::ColorRole, const TQColor & ); + void setBrush( ColorGroup, TQColorGroup::ColorRole, const TQBrush & ); + + void setColor( TQColorGroup::ColorRole, const TQColor & ); + void setBrush( TQColorGroup::ColorRole, const TQBrush & ); + + TQPalette copy() const; + + const TQColorGroup &active() const { return data->active; } + const TQColorGroup &disabled() const { return data->disabled; } + const TQColorGroup &inactive() const { return data->inactive; } +#ifndef TQT_NO_COMPAT + const TQColorGroup &normal() const { return active(); } +#endif + + void setActive( const TQColorGroup & ); + void setDisabled( const TQColorGroup & ); + void setInactive( const TQColorGroup & ); +#ifndef TQT_NO_COMPAT + void setNormal( const TQColorGroup & cg ) { setActive(cg); } +#endif + + bool operator==( const TQPalette &p ) const; + bool operator!=( const TQPalette &p ) const + { return !(operator==(p)); } + bool isCopyOf( const TQPalette & ); + + int serialNumber() const { return data->ser_no; } + + + static TQColorGroup::ColorRole foregroundRoleFromMode( TQt::BackgroundMode mode ); + static TQColorGroup::ColorRole backgroundRoleFromMode( TQt::BackgroundMode mode); + +private: + void detach(); + const TQBrush &directBrush( ColorGroup, TQColorGroup::ColorRole ) const; + void directSetBrush( ColorGroup, TQColorGroup::ColorRole, const TQBrush& ); + + struct TQPalData : public TQShared { + TQColorGroup disabled; + TQColorGroup active; + int ser_no; + TQColorGroup inactive; + } *data; +}; + + +/***************************************************************************** + TQColorGroup/TQPalette stream functions + *****************************************************************************/ + +#ifndef TQT_NO_DATASTREAM +TQ_EXPORT TQDataStream &operator<<( TQDataStream &, const TQColorGroup & ); +TQ_EXPORT TQDataStream &operator>>( TQDataStream &, TQColorGroup & ); + +TQ_EXPORT TQDataStream &operator<<( TQDataStream &, const TQPalette & ); +TQ_EXPORT TQDataStream &operator>>( TQDataStream &, TQPalette & ); +#endif // TQT_NO_DATASTREAM + +#endif // TQT_NO_PALETTE +#endif // USE_QT4 +#endif // TQPALETTE_H |