summaryrefslogtreecommitdiffstats
path: root/kstyles/highcontrast/highcontrast.h
diff options
context:
space:
mode:
Diffstat (limited to 'kstyles/highcontrast/highcontrast.h')
-rw-r--r--kstyles/highcontrast/highcontrast.h162
1 files changed, 162 insertions, 0 deletions
diff --git a/kstyles/highcontrast/highcontrast.h b/kstyles/highcontrast/highcontrast.h
new file mode 100644
index 000000000..0758b806c
--- /dev/null
+++ b/kstyles/highcontrast/highcontrast.h
@@ -0,0 +1,162 @@
+/*
+ * High Contrast Style (version 1.0)
+ * Copyright (C) 2004 Olaf Schmidt <ojschmidt@kde.org>
+ *
+ * Derived from Axes Style
+ * Copyright (C) 2003 Maksim Orlovich <orlovich@cs.rochester.edu>
+ *
+ * Axes Style based on KDE 3 HighColor Style,
+ * Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org>
+ * (C) 2001-2002 Fredrik Höglund <fredrik@kde.org>
+ *
+ * KDE 3 HighColor Style drawing routines adapted from the KDE2 HCStyle,
+ * Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org>
+ * (C) 2000 Dirk Mueller <mueller@kde.org>
+ * (C) 2001 Martijn Klingens <klingens@kde.org>
+ *
+ * Includes portions from KStyle,
+ * Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org>
+ *
+ * Many thanks to Bradley T. Hughes for the 3 button scrollbar code.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __HIGHCONTRAST_H
+#define __HIGHCONTRAST_H
+
+#include <qbitmap.h>
+#include <qintdict.h>
+#include <kdrawutil.h>
+#include <kpixmap.h>
+#include <kstyle.h>
+
+
+class QPopupMenu;
+
+class HighContrastStyle : public KStyle
+{
+ Q_OBJECT
+
+ public:
+ HighContrastStyle();
+ virtual ~HighContrastStyle();
+
+ void polish( QPalette& pal );
+
+ void polish( QWidget* widget );
+ void unPolish( QWidget* widget );
+
+ void drawKStylePrimitive( KStylePrimitive kpe,
+ QPainter* p,
+ const QWidget* widget,
+ const QRect &r,
+ const QColorGroup &cg,
+ SFlags flags = Style_Default,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ void drawPrimitive( PrimitiveElement pe,
+ QPainter* p,
+ const QRect &r,
+ const QColorGroup &cg,
+ SFlags flags = Style_Default,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ void drawControl( ControlElement element,
+ QPainter *p,
+ const QWidget *widget,
+ const QRect &r,
+ const QColorGroup &cg,
+ SFlags flags = Style_Default,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ void drawControlMask( ControlElement element,
+ QPainter *p,
+ const QWidget *widget,
+ const QRect &r,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ void drawComplexControl( ComplexControl control,
+ QPainter *p,
+ const QWidget *widget,
+ const QRect &r,
+ const QColorGroup &cg,
+ SFlags flags = Style_Default,
+ SCFlags controls = SC_All,
+ SCFlags active = SC_None,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ void drawComplexControlMask( ComplexControl control,
+ QPainter *p,
+ const QWidget *widget,
+ const QRect &r,
+ const QStyleOption& = QStyleOption::Default ) const;
+
+ QRect querySubControlMetrics( ComplexControl control,
+ const QWidget* widget,
+ SubControl subcontrol,
+ const QStyleOption& opt = QStyleOption::Default ) const;
+
+
+ void drawItem( QPainter *p,
+ const QRect &r,
+ int flags,
+ const QColorGroup &cg,
+ bool enabled,
+ const QPixmap *pixmap,
+ const QString &text,
+ int len = -1,
+ const QColor *penColor = 0 ) const;
+
+ int pixelMetric( PixelMetric m,
+ const QWidget *widget = 0 ) const;
+
+ int kPixelMetric( KStylePixelMetric m,
+ const QWidget *widget = 0 ) const;
+
+ QSize sizeFromContents( ContentsType contents,
+ const QWidget *widget,
+ const QSize &contentSize,
+ const QStyleOption& opt ) const;
+
+ QRect subRect (SubRect subrect, const QWidget * widget) const;
+
+ protected:
+ bool eventFilter( QObject *object, QEvent *event );
+
+ QWidget *hoverWidget;
+
+ private:
+ void setColorsNormal (QPainter* p, const QColorGroup& cg, int flags = Style_Enabled, int highlight = Style_Down|Style_MouseOver) const;
+ void setColorsButton (QPainter* p, const QColorGroup& cg, int flags = Style_Enabled, int highlight = Style_Down|Style_MouseOver) const;
+ void setColorsText (QPainter* p, const QColorGroup& cg, int flags = Style_Enabled, int highlight = Style_Down|Style_MouseOver) const;
+ void setColorsHighlight (QPainter* p, const QColorGroup& cg, int flags = Style_Enabled) const;
+ void setColorsByState (QPainter* p, const QColorGroup& cg, const QColor& fg, const QColor& bg, int flags, int highlight) const;
+
+ void drawRect (QPainter* p, QRect r, int offset = 0, bool filled = true) const;
+ void drawRoundRect (QPainter* p, QRect r, int offset = 0, bool filled = true) const;
+ void drawEllipse (QPainter* p, QRect r, int offset = 0, bool filled = true) const;
+ void drawArrow (QPainter* p, QRect r, PrimitiveElement arrow, int offset = 0) const;
+
+ int basicLineWidth;
+ // Disable copy constructor and = operator
+ HighContrastStyle( const HighContrastStyle & );
+ HighContrastStyle& operator=( const HighContrastStyle & );
+};
+
+// vim: set noet ts=4 sw=4:
+// kate: indent-width 4; replace-tabs off; smart-indent on; tab-width 4;
+
+#endif