diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-08-29 17:41:50 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-05 12:14:34 +0200 |
commit | 585cef5f901c5860d8f6dce3cd49dcddb7a8481a (patch) | |
tree | c1d18c67991900c2e4da61adf54f4ddd946a7e6c /src/widgets/styles/qwindowsvistastyle.cpp | |
parent | 176bd1edfadcb68b914a27de75502edeb1081253 (diff) |
Windows styles: Scale hardcoded-values according to DPI.
Factor out functions to return the fixed values and scale those.
Task-number: QTBUG-38993
Task-number: QTBUG-38858
Change-Id: I59c70a206eae76bf08bc2aeb5cda5a740cd3d6dc
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
Diffstat (limited to 'src/widgets/styles/qwindowsvistastyle.cpp')
-rw-r--r-- | src/widgets/styles/qwindowsvistastyle.cpp | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/src/widgets/styles/qwindowsvistastyle.cpp b/src/widgets/styles/qwindowsvistastyle.cpp index 69e21d0f56..e5acd22f16 100644 --- a/src/widgets/styles/qwindowsvistastyle.cpp +++ b/src/widgets/styles/qwindowsvistastyle.cpp @@ -2192,7 +2192,7 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt const int height = tb->rect.height(); const int width = tb->rect.width(); int buttonWidth = GetSystemMetrics(SM_CXSIZE) / QWindowsStylePrivate::devicePixelRatio(widget) - - 4; + - int(QStyleHelper::dpiScaled(4)); const int frameWidth = proxy()->pixelMetric(PM_MdiSubWindowFrameWidth, option, widget); const bool sysmenuHint = (tb->titleBarFlags & Qt::WindowSystemMenuHint) != 0; @@ -2265,28 +2265,36 @@ QStyle::SubControl QWindowsVistaStyle::hitTestComplexControl(ComplexControl cont return QWindowsXPStyle::hitTestComplexControl(control, option, pos, widget); } -/*! - \internal - */ -int QWindowsVistaStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const +int QWindowsVistaStylePrivate::fixedPixelMetric(QStyle::PixelMetric pm) { - if (!QWindowsVistaStylePrivate::useVista()) { - return QWindowsStyle::pixelMetric(metric, option, widget); - } - switch (metric) { - - case PM_DockWidgetTitleBarButtonMargin: - return int(QStyleHelper::dpiScaled(5.)); - case PM_ScrollBarSliderMin: - return int(QStyleHelper::dpiScaled(18.)); - case PM_MenuHMargin: - case PM_MenuVMargin: + switch (pm) { + case QStyle::PM_DockWidgetTitleBarButtonMargin: + return 5; + case QStyle::PM_ScrollBarSliderMin: + return 18; + case QStyle::PM_MenuHMargin: + case QStyle::PM_MenuVMargin: return 0; - case PM_MenuPanelWidth: + case QStyle::PM_MenuPanelWidth: return 3; default: break; } + return QWindowsVistaStylePrivate::InvalidMetric; +} + +/*! + \internal + */ +int QWindowsVistaStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const +{ + if (!QWindowsVistaStylePrivate::useVista()) + return QWindowsStyle::pixelMetric(metric, option, widget); + + int ret = QWindowsStylePrivate::fixedPixelMetric(metric); + if (ret != QWindowsStylePrivate::InvalidMetric) + return int(QStyleHelper::dpiScaled(ret)); + return QWindowsXPStyle::pixelMetric(metric, option, widget); } |