diff options
author | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2020-09-24 14:22:32 +0200 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2020-09-29 10:30:58 +0200 |
commit | 0ea96f1896a13c8e01b4ee9d45439565e19eb18a (patch) | |
tree | 84f8f19eb6d608a7a40ced17b15f977b5165b221 /src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm | |
parent | 5e4f4ed2410a29914a70b7c7d0b7b4f3a136f289 (diff) |
NativeStyle: add focusFrameRadius to QStyle
To be able to show a focus frame around a control
from QML, we need to know the control's geometry and radius.
For the geometry we can use the already existing layout rect.
But for the latter we need to add focusFrameRadius enums to
QStyle using the already existing pixel metric function.
Change-Id: I45619194766cccbf824d93073a4dcea3a0893fbe
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm')
-rw-r--r-- | src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm b/src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm index e1aba599..2673e706 100644 --- a/src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm +++ b/src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm @@ -2223,6 +2223,28 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt) const ret = [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay ? pixelMetric(PM_ScrollBarExtent, opt) : 0; break; + case PM_PushButtonFocusFrameRadius: + ret = LargeSmallMini(opt, 8, 7, 5); + break; + case PM_CheckBoxFocusFrameRadius: + ret = LargeSmallMini(opt, 6, 5, 4); + break; + case PM_ComboBoxFocusFrameRadius: + ret = LargeSmallMini(opt, 8, 7, 4); + break; + case PM_RadioButtonFocusFrameRadius: + ret = 10; + break; + case PM_SliderFocusFrameRadius: + if (const QStyleOptionSlider *sliderOpt = qstyleoption_cast<const QStyleOptionSlider *>(opt)) + ret = sliderOpt->tickPosition == QStyleOptionSlider::NoTicks ? 10 : 3; + break; + case PM_DialFocusFrameRadius: + case PM_SpinBoxFocusFrameRadius: + case PM_TextAreaFocusFrameRadius: + case PM_TextFieldFocusFrameRadius: + ret = 3; + break; default: ret = QCommonStyle::pixelMetric(metric, opt); break; |