00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "kdeuiwidgetsproxystyle_p.h"
00023
00024 #include <QtGui/QApplication>
00025 #include <QtGui/QWidget>
00026 #include <QtGui/QWindowsStyle>
00027
00028 KdeUiProxyStyle::KdeUiProxyStyle(QWidget *parent)
00029 : QStyle(), parent(parent), lastResortStyle(0)
00030 {
00031 }
00032
00033 KdeUiProxyStyle::~KdeUiProxyStyle()
00034 {
00035 delete lastResortStyle;
00036 }
00037
00038 QStyle *KdeUiProxyStyle::style() const
00039 {
00040 QStyle* baseStyle;
00041 if (parent && parent->parentWidget()) {
00042
00043
00044 baseStyle = parent->parentWidget()->style();
00045 if (baseStyle->inherits("QStyleSheetStyle")) {
00046 baseStyle = QApplication::style();
00047 }
00048 } else {
00049 baseStyle = QApplication::style();
00050 }
00051
00052 if (baseStyle->inherits("QStyleSheetStyle")) {
00053
00054
00055
00056
00057 if (!lastResortStyle) {
00058 lastResortStyle = new QWindowsStyle;
00059 }
00060 baseStyle = lastResortStyle;
00061 }
00062
00063 return baseStyle;
00064 }
00065
00066 void KdeUiProxyStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
00067 QPainter *painter, const QWidget *widget) const
00068 {
00069 style()->drawComplexControl(control, option, painter, widget);
00070 }
00071
00072 void KdeUiProxyStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter,
00073 const QWidget *widget) const
00074 {
00075 style()->drawControl(element, option, painter, widget);
00076 }
00077
00078 void KdeUiProxyStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment,
00079 const QPixmap &pixmap) const
00080 {
00081 style()->drawItemPixmap(painter, rectangle, alignment, pixmap);
00082 }
00083
00084 void KdeUiProxyStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette,
00085 bool enabled, const QString &text, QPalette::ColorRole textRole) const
00086 {
00087 style()->drawItemText(painter, rectangle, alignment, palette, enabled, text, textRole);
00088 }
00089
00090 void KdeUiProxyStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter,
00091 const QWidget *widget) const
00092 {
00093 style()->drawPrimitive(element, option, painter, widget);
00094 }
00095
00096 QPixmap KdeUiProxyStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
00097 const QStyleOption *option) const
00098 {
00099 return style()->generatedIconPixmap(iconMode, pixmap, option);
00100 }
00101
00102 QStyle::SubControl KdeUiProxyStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
00103 const QPoint &position, const QWidget *widget) const
00104 {
00105 return style()->hitTestComplexControl(control, option, position, widget);
00106 }
00107
00108 QRect KdeUiProxyStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
00109 {
00110 return style()->itemPixmapRect(rectangle, alignment, pixmap);
00111 }
00112
00113 QRect KdeUiProxyStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment,
00114 bool enabled, const QString &text) const
00115 {
00116 return style()->itemTextRect(metrics, rectangle, alignment, enabled, text);
00117 }
00118
00119 int KdeUiProxyStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
00120 {
00121 return style()->pixelMetric(metric, option, widget);
00122 }
00123
00124 void KdeUiProxyStyle::polish(QWidget *widget)
00125 {
00126 style()->polish(widget);
00127 }
00128
00129 void KdeUiProxyStyle::polish(QApplication *application)
00130 {
00131 style()->polish(application);
00132 }
00133
00134 void KdeUiProxyStyle::polish(QPalette &palette)
00135 {
00136 style()->polish(palette);
00137 }
00138
00139 QSize KdeUiProxyStyle::sizeFromContents(ContentsType type, const QStyleOption *option,
00140 const QSize &contentsSize, const QWidget *widget) const
00141 {
00142 return style()->sizeFromContents(type, option, contentsSize, widget);
00143 }
00144
00145 QIcon KdeUiProxyStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option,
00146 const QWidget *widget) const
00147 {
00148 return style()->standardIcon(standardIcon, option, widget);
00149 }
00150
00151 QPixmap KdeUiProxyStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option,
00152 const QWidget *widget) const
00153 {
00154 return style()->standardPixmap(standardPixmap, option, widget);
00155 }
00156
00157 QPalette KdeUiProxyStyle::standardPalette() const
00158 {
00159 return style()->standardPalette();
00160 }
00161
00162 int KdeUiProxyStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget,
00163 QStyleHintReturn *returnData) const
00164 {
00165 return style()->styleHint(hint, option, widget, returnData);
00166 }
00167
00168 QRect KdeUiProxyStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option,
00169 SubControl subControl, const QWidget *widget) const
00170 {
00171 return style()->subControlRect(control, option, subControl, widget);
00172 }
00173
00174 QRect KdeUiProxyStyle::subElementRect(SubElement element, const QStyleOption *option,
00175 const QWidget *widget) const
00176 {
00177 return style()->subElementRect(element, option, widget);
00178 }
00179
00180 void KdeUiProxyStyle::unpolish(QWidget *widget)
00181 {
00182 style()->unpolish(widget);
00183 }
00184
00185 void KdeUiProxyStyle::unpolish(QApplication *application)
00186 {
00187 style()->unpolish(application);
00188 }
00189