src/gui/styles/qwindowsmobilestyle.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
  4119 #endif //Q_WS_WINCE_WM
  4119 #endif //Q_WS_WINCE_WM
  4120 }
  4120 }
  4121 
  4121 
  4122 void QWindowsMobileStylePrivate::drawTabBarTab(QPainter *painter, const QStyleOptionTab *tab)
  4122 void QWindowsMobileStylePrivate::drawTabBarTab(QPainter *painter, const QStyleOptionTab *tab)
  4123 {
  4123 {
       
  4124 #ifndef QT_NO_TABBAR
  4124 #ifdef Q_WS_WINCE_WM
  4125 #ifdef Q_WS_WINCE_WM
  4125     if (wm65) {
  4126     if (wm65) {
  4126         tintImagesButton(tab->palette.button().color());
  4127         tintImagesButton(tab->palette.button().color());
  4127         QRect r;
  4128         QRect r;
  4128         r.setTopLeft(tab->rect.topRight() - QPoint(imageTabMiddle.width(), 0));
  4129         r.setTopLeft(tab->rect.topRight() - QPoint(imageTabMiddle.width(), 0));
  4205             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
  4206             painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
  4206             painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
  4207             painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
  4207         }
  4208         }
  4208     }
  4209     }
  4209     painter->restore();
  4210     painter->restore();
       
  4211 #endif //QT_NO_TABBAR
  4210 }
  4212 }
  4211 
  4213 
  4212 void QWindowsMobileStylePrivate::drawPanelItemViewSelected(QPainter *painter, const QStyleOptionViewItemV4 *option, QRect rect)
  4214 void QWindowsMobileStylePrivate::drawPanelItemViewSelected(QPainter *painter, const QStyleOptionViewItemV4 *option, QRect rect)
  4213 {
  4215 {
  4214 #ifdef Q_WS_WINCE_WM
  4216 #ifdef Q_WS_WINCE_WM
  4410     }
  4412     }
  4411 }
  4413 }
  4412 
  4414 
  4413 void QWindowsMobileStylePrivate::drawScrollbarHandleDown(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool secondScrollBar)
  4415 void QWindowsMobileStylePrivate::drawScrollbarHandleDown(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool secondScrollBar)
  4414 {
  4416 {
  4415 
  4417 #ifndef QT_NO_SCROLLBAR
  4416 #ifdef Q_WS_WINCE_WM
  4418 #ifdef Q_WS_WINCE_WM
  4417     if (wm65) {
  4419     if (wm65) {
  4418         tintImagesHigh(opt->palette.highlight().color());
  4420         tintImagesHigh(opt->palette.highlight().color());
  4419         QRect r = opt->rect;
  4421         QRect r = opt->rect;
  4420         if (opt->orientation == Qt::Horizontal) {
  4422         if (opt->orientation == Qt::Horizontal) {
  4467             arrowOpt.rect.adjust(1, 0, 1, 0 );
  4469             arrowOpt.rect.adjust(1, 0, 1, 0 );
  4468         if (completeFrame && doubleControls)
  4470         if (completeFrame && doubleControls)
  4469             arrowOpt.rect.adjust(1, 0, 1, 0);
  4471             arrowOpt.rect.adjust(1, 0, 1, 0);
  4470         q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &arrowOpt, p, 0);
  4472         q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &arrowOpt, p, 0);
  4471     }
  4473     }
       
  4474 #endif //QT_NO_SCROLLBAR
  4472 }
  4475 }
  4473 
  4476 
  4474 void QWindowsMobileStylePrivate::drawScrollbarGroove(QPainter *p,const QStyleOptionSlider *opt)
  4477 void QWindowsMobileStylePrivate::drawScrollbarGroove(QPainter *p,const QStyleOptionSlider *opt)
  4475 {
  4478 {
       
  4479 #ifndef QT_NO_SCROLLBAR
  4476 #ifdef Q_OS_WINCE_WM
  4480 #ifdef Q_OS_WINCE_WM
  4477     if (wm65) {
  4481     if (wm65) {
  4478         p->fillRect(opt->rect, QColor(231, 231, 231));
  4482         p->fillRect(opt->rect, QColor(231, 231, 231));
  4479         return ;
  4483         return ;
  4480     }
  4484     }
  4496             }
  4500             }
  4497             else {
  4501             else {
  4498               fill = opt->palette.light();
  4502               fill = opt->palette.light();
  4499             }
  4503             }
  4500             p->fillRect(opt->rect, fill);
  4504             p->fillRect(opt->rect, fill);
       
  4505 #endif //QT_NO_SCROLLBAR
  4501 }
  4506 }
  4502 
  4507 
  4503 QWindowsMobileStyle::QWindowsMobileStyle(QWindowsMobileStylePrivate &dd) : QWindowsStyle(dd) {
  4508 QWindowsMobileStyle::QWindowsMobileStyle(QWindowsMobileStylePrivate &dd) : QWindowsStyle(dd) {
  4504     qApp->setEffectEnabled(Qt::UI_FadeMenu, false);
  4509     qApp->setEffectEnabled(Qt::UI_FadeMenu, false);
  4505     qApp->setEffectEnabled(Qt::UI_AnimateMenu, false);
  4510     qApp->setEffectEnabled(Qt::UI_AnimateMenu, false);
  5345         }
  5350         }
  5346         painter->setPen(option->palette.text().color());
  5351         painter->setPen(option->palette.text().color());
  5347         painter->drawLines(a);
  5352         painter->drawLines(a);
  5348         break; }
  5353         break; }
  5349     case PE_Frame:
  5354     case PE_Frame:
  5350        if (d->doubleControls)
  5355         qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),
  5351             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2,&option->palette.light());
  5356                        d->doubleControls ? 2 : 1, &option->palette.background());
  5352         else
       
  5353             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),1,&option->palette.light());
       
  5354         break;
  5357         break;
  5355     case PE_FrameLineEdit:
  5358     case PE_FrameLineEdit:
  5356     case PE_FrameMenu:
  5359     case PE_FrameMenu:
  5357         if (d->doubleControls)
  5360         if (d->doubleControls)
  5358             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2);
  5361             qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2);
  6325 
  6328 
  6326     QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
  6329     QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
  6327     switch (type) {
  6330     switch (type) {
  6328     case CT_PushButton:
  6331     case CT_PushButton:
  6329        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
  6332        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
  6330             newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
  6333             newSize = QCommonStyle::sizeFromContents(type, option, size, widget);
  6331             int w = newSize.width(),
  6334             int w = newSize.width(),
  6332                 h = newSize.height();
  6335                 h = newSize.height();
  6333             int defwidth = 0;
  6336             int defwidth = 0;
  6334             if (button->features & QStyleOptionButton::AutoDefaultButton)
  6337             if (button->features & QStyleOptionButton::AutoDefaultButton)
  6335                 defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
  6338                 defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
  6336             if (w < 75 + defwidth && button->icon.isNull())
  6339 
  6337                 w = 75 + defwidth;
  6340             int minwidth = int(QStyleHelper::dpiScaled(55.0f));
  6338             if (h < 23 + defwidth)
  6341             int minheight = int(QStyleHelper::dpiScaled(19.0f));
  6339                 h = 23 + defwidth;
  6342 
       
  6343             if (w < minwidth + defwidth && button->icon.isNull())
       
  6344                 w = minwidth + defwidth;
       
  6345             if (h < minheight + defwidth)
       
  6346                 h = minheight + defwidth;
  6340             newSize = QSize(w + 4, h + 4);
  6347             newSize = QSize(w + 4, h + 4);
  6341         }
  6348         }
  6342         break;
  6349         break;
  6343 
  6350 
  6344 #ifndef QT_NO_GROUPBOX
  6351 #ifndef QT_NO_GROUPBOX
  6838         toolBar->setPalette(pal);
  6845         toolBar->setPalette(pal);
  6839     }
  6846     }
  6840     else
  6847     else
  6841 #endif //QT_NO_TOOLBAR
  6848 #endif //QT_NO_TOOLBAR
  6842 
  6849 
  6843 #ifndef QT_NO_PROPERTIES
  6850     QWindowsStyle::polish(widget);
  6844         if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
       
  6845             QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
       
  6846             if (!oldFont.isValid()) {
       
  6847                 QFont f = pushButton->font();
       
  6848                 widget->setProperty("_q_styleWindowsMobileFont", f);
       
  6849                 f.setBold(true);
       
  6850                 int p = f.pointSize();
       
  6851                 if (p > 2)
       
  6852                     f.setPointSize(p-1);
       
  6853                 pushButton->setFont(f);
       
  6854             }
       
  6855         }
       
  6856 #endif
       
  6857         QWindowsStyle::polish(widget);
       
  6858 }
  6851 }
  6859 
  6852 
  6860 void QWindowsMobileStyle::unpolish(QWidget *widget)
  6853 void QWindowsMobileStyle::unpolish(QWidget *widget)
  6861 {
  6854 {
  6862 #ifndef QT_NO_PROPERTIES
       
  6863     if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
       
  6864         QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
       
  6865         if (oldFont.isValid()) {
       
  6866             widget->setFont(qVariantValue<QFont>(oldFont));
       
  6867         widget->setProperty("_q_styleWindowsMobileFont", QVariant());
       
  6868         }
       
  6869     }
       
  6870 #endif
       
  6871     QWindowsStyle::unpolish(widget);
  6855     QWindowsStyle::unpolish(widget);
  6872 }
  6856 }
  6873 
  6857 
  6874 void QWindowsMobileStyle::unpolish(QApplication *app)
  6858 void QWindowsMobileStyle::unpolish(QApplication *app)
  6875 {
  6859 {