You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.3 KiB
163 lines
5.3 KiB
15 years ago
|
/*
|
||
|
* 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
|