itom 2.2.1
|
00001 /*========================================================================= 00002 00003 Library: CTK 00004 00005 Copyright (c) Kitware Inc. 00006 00007 Licensed under the Apache License, Version 2.0 (the "License"); 00008 you may not use this file except in compliance with the License. 00009 You may obtain a copy of the License at 00010 00011 http://www.apache.org/licenses/LICENSE-2.0.txt 00012 00013 Unless required by applicable law or agreed to in writing, software 00014 distributed under the License is distributed on an "AS IS" BASIS, 00015 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00016 See the License for the specific language governing permissions and 00017 limitations under the License. 00018 00019 =========================================================================*/ 00020 00021 #ifndef PROXYSTYLE_H 00022 #define PROXYSTYLE_H 00023 00024 // QT includes 00025 #include <QProxyStyle> 00026 00027 // CTK includes 00028 #include "commonWidgets.h" 00029 00030 class ProxyStylePrivate; 00031 00034 00035 class ITOMWIDGETS_EXPORT ProxyStyle : public QProxyStyle 00036 { 00037 Q_OBJECT 00038 public: 00039 ProxyStyle(QStyle *baseStyle = 0, QObject* parent = 0); 00040 virtual ~ProxyStyle(); 00041 00042 void ensureBaseStyle()const; 00043 00044 virtual void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; 00045 virtual void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; 00046 virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const; 00047 virtual void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, 00048 const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; 00049 virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const; 00050 00051 virtual QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const; 00052 00053 virtual QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const; 00054 virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const; 00055 virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const; 00056 virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; 00057 00058 virtual SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = 0) const; 00059 virtual int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const; 00060 virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; 00061 00062 virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = 0) const; 00063 virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const; 00064 virtual QPalette standardPalette() const; 00065 00066 virtual void polish(QWidget *widget); 00067 virtual void polish(QPalette &pal); 00068 virtual void polish(QApplication *app); 00069 00070 virtual void unpolish(QWidget *widget); 00071 virtual void unpolish(QApplication *app); 00072 00073 protected: 00074 QScopedPointer<ProxyStylePrivate> d_ptr; 00075 virtual bool event(QEvent *e); 00076 00077 protected Q_SLOTS: 00078 virtual QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const; 00079 virtual int layoutSpacingImplementation(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, 00080 Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const; 00081 private: 00082 Q_DISABLE_COPY(ProxyStyle) 00083 Q_DECLARE_PRIVATE(ProxyStyle) 00084 }; 00085 00086 #endif