aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2020-09-24 14:22:32 +0200
committerRichard Moe Gustavsen <richard.gustavsen@qt.io>2020-09-29 10:30:58 +0200
commit0ea96f1896a13c8e01b4ee9d45439565e19eb18a (patch)
tree84f8f19eb6d608a7a40ced17b15f977b5165b221 /src/imports/nativestyle/qstyle/mac/qquickmacstyle_mac.mm
parent5e4f4ed2410a29914a70b7c7d0b7b4f3a136f289 (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.mm22
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;