diff options
Diffstat (limited to 'scheck/scheck.h')
-rw-r--r-- | scheck/scheck.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/scheck/scheck.h b/scheck/scheck.h new file mode 100644 index 00000000..ba91ca01 --- /dev/null +++ b/scheck/scheck.h @@ -0,0 +1,173 @@ +/* + * $Id$ + * + * KDE3 Style Guide compliance check "Style", v0.0.1 + * Copyright (C) 2002 Maksim Orlovich <orlovich@cs.rochester.edu> + * (C) 2002 Ryan Cumming <bodnar42@phalynx.dhs.org> + * + * + * Based on the KDE3 HighColor Style (version 1.0): + * Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org> + * (C) 2001-2002 Fredrik Höglund <fredrik@kde.org> + * + * 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> + * + * Portions of code are from the Qt GUI Toolkit, Copyright (C) 1992-2000 Trolltech AS. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * + */ + +#ifndef STYLE_CHECK_H +#define STYLE_CHECK_H + +#include <qbitmap.h> +#include <qheader.h> +#include <qintdict.h> +#include <qvaluevector.h> +#include <qguardedptr.h> + +#include <kdrawutil.h> +#include <kpixmap.h> +#include <kstyle.h> + + +class QPopupMenu; + +class StyleCheckTitleWatcher: public QObject +{ + Q_OBJECT + + public: + StyleCheckTitleWatcher(); + void addWatched(QWidget* w); + public slots: + void slotCheck(); + private: + QString cleanErrorMarkers(QString in); + QValueVector<QGuardedPtr<QWidget> > watched; + QValueVector<QString> watchedTitles; +}; + +class StyleCheckStyle : public KStyle +{ + Q_OBJECT + + public: + StyleCheckStyle( ); + virtual ~StyleCheckStyle(); + + 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; + + int pixelMetric( PixelMetric m, + const QWidget *widget = 0 ) const; + + QSize sizeFromContents( ContentsType contents, + const QWidget *widget, + const QSize &contentSize, + const QStyleOption& opt ) const; + + QRect subRect( SubRect r, + const QWidget *widget ) const; + + // Fix Qt3's wacky image positions + QPixmap stylePixmap( StylePixmap stylepixmap, + const QWidget *widget = 0, + const QStyleOption& = QStyleOption::Default ) const; + + protected: + bool eventFilter( QObject *object, QEvent *event ); + + void renderGradient( QPainter* p, + const QRect& r, + QColor clr, + bool horizontal, + int px=0, + int py=0, + int pwidth=-1, + int pheight=-1 ) const; + + QTimer *topLevelAccelManageTimer; + QWidget *hoverWidget; + + private slots: + void slotAccelManage(); + + private: + void accelManageRecursive(QWidget* widget); + + StyleCheckTitleWatcher* watcher; + + // Disable copy constructor and = operator + StyleCheckStyle( const StyleCheckStyle & ); + StyleCheckStyle& operator=( const StyleCheckStyle & ); +}; + +// vim: set noet ts=4 sw=4: +// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off; + +#endif |