summaryrefslogtreecommitdiffstats
path: root/src/kernel/qpalette.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/qpalette.h')
-rw-r--r--src/kernel/qpalette.h189
1 files changed, 189 insertions, 0 deletions
diff --git a/src/kernel/qpalette.h b/src/kernel/qpalette.h
new file mode 100644
index 0000000..90399cd
--- /dev/null
+++ b/src/kernel/qpalette.h
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Definition of QColorGroup and QPalette classes
+**
+** Created : 950323
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the kernel module of the Qt 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 Qt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at [email protected].
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.QPL
+** included in the packaging of this file. Licensees holding valid Qt
+** Commercial licenses may use this file in accordance with the Qt
+** 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 QPALETTE_H
+#define QPALETTE_H
+
+#ifndef QT_H
+#include "qwindowdefs.h"
+#include "qcolor.h"
+#include "qshared.h"
+#include "qbrush.h" // QColor->QBrush conversion
+#endif // QT_H
+
+#ifndef QT_NO_PALETTE
+
+class QColorGroupPrivate;
+
+class Q_EXPORT QColorGroup
+{
+public:
+ QColorGroup();
+ QColorGroup( const QColor &foreground, const QColor &button,
+ const QColor &light, const QColor &dark, const QColor &mid,
+ const QColor &text, const QColor &base );
+ QColorGroup( 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);
+ QColorGroup( const QColorGroup & );
+
+ ~QColorGroup();
+
+ QColorGroup& operator =(const QColorGroup&);
+
+ // 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 QColor &color( ColorRole ) const;
+ const QBrush &brush( ColorRole ) const;
+ void setColor( ColorRole, const QColor & );
+ void setBrush( ColorRole, const QBrush & );
+
+ const QColor &foreground() const { return br[Foreground].color(); }
+ const QColor &button() const { return br[Button].color(); }
+ const QColor &light() const { return br[Light].color(); }
+ const QColor &dark() const { return br[Dark].color(); }
+ const QColor &mid() const { return br[Mid].color(); }
+ const QColor &text() const { return br[Text].color(); }
+ const QColor &base() const { return br[Base].color(); }
+ const QColor &background() const { return br[Background].color(); }
+
+ const QColor &midlight() const { return br[Midlight].color(); }
+ const QColor &brightText() const { return br[BrightText].color(); }
+ const QColor &buttonText() const { return br[ButtonText].color(); }
+ const QColor &shadow() const { return br[Shadow].color(); }
+ const QColor &highlight() const { return br[Highlight].color(); }
+ const QColor &highlightedText() const{return br[HighlightedText].color(); }
+ const QColor &link() const { return br[Link].color(); }
+ const QColor &linkVisited() const { return br[LinkVisited].color(); }
+
+ bool operator==( const QColorGroup &g ) const;
+ bool operator!=( const QColorGroup &g ) const
+ { return !(operator==(g)); }
+
+private:
+ QBrush *br;
+ QColorGroupPrivate * d;
+
+ friend class QPalette;
+};
+
+
+class Q_EXPORT QPalette
+{
+public:
+ QPalette();
+ QPalette( const QColor &button );
+ QPalette( const QColor &button, const QColor &background );
+ QPalette( const QColorGroup &active, const QColorGroup &disabled,
+ const QColorGroup &inactive );
+ QPalette( const QPalette & );
+ ~QPalette();
+ QPalette &operator=( const QPalette & );
+
+ enum ColorGroup { Disabled, Active, Inactive, NColorGroups, Normal=Active };
+
+ const QColor &color( ColorGroup, QColorGroup::ColorRole ) const;
+ const QBrush &brush( ColorGroup, QColorGroup::ColorRole ) const;
+ void setColor( ColorGroup, QColorGroup::ColorRole, const QColor & );
+ void setBrush( ColorGroup, QColorGroup::ColorRole, const QBrush & );
+
+ void setColor( QColorGroup::ColorRole, const QColor & );
+ void setBrush( QColorGroup::ColorRole, const QBrush & );
+
+ QPalette copy() const;
+
+ const QColorGroup &active() const { return data->active; }
+ const QColorGroup &disabled() const { return data->disabled; }
+ const QColorGroup &inactive() const { return data->inactive; }
+#ifndef QT_NO_COMPAT
+ const QColorGroup &normal() const { return active(); }
+#endif
+
+ void setActive( const QColorGroup & );
+ void setDisabled( const QColorGroup & );
+ void setInactive( const QColorGroup & );
+#ifndef QT_NO_COMPAT
+ void setNormal( const QColorGroup & cg ) { setActive(cg); }
+#endif
+
+ bool operator==( const QPalette &p ) const;
+ bool operator!=( const QPalette &p ) const
+ { return !(operator==(p)); }
+ bool isCopyOf( const QPalette & );
+
+ int serialNumber() const { return data->ser_no; }
+
+
+ static QColorGroup::ColorRole foregroundRoleFromMode( Qt::BackgroundMode mode );
+ static QColorGroup::ColorRole backgroundRoleFromMode( Qt::BackgroundMode mode);
+
+private:
+ void detach();
+ const QBrush &directBrush( ColorGroup, QColorGroup::ColorRole ) const;
+ void directSetBrush( ColorGroup, QColorGroup::ColorRole, const QBrush& );
+
+ struct QPalData : public QShared {
+ QColorGroup disabled;
+ QColorGroup active;
+ int ser_no;
+ QColorGroup inactive;
+ } *data;
+};
+
+
+/*****************************************************************************
+ QColorGroup/QPalette stream functions
+ *****************************************************************************/
+
+#ifndef QT_NO_DATASTREAM
+Q_EXPORT QDataStream &operator<<( QDataStream &, const QColorGroup & );
+Q_EXPORT QDataStream &operator>>( QDataStream &, QColorGroup & );
+
+Q_EXPORT QDataStream &operator<<( QDataStream &, const QPalette & );
+Q_EXPORT QDataStream &operator>>( QDataStream &, QPalette & );
+#endif // QT_NO_DATASTREAM
+
+#endif // QT_NO_PALETTE
+#endif // QPALETTE_H