Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qmacstyle_mac.mm File Reference

(acb8252d0abf5cf0c7166312f180d5d325f6ccd6)

#include <AppKit/AppKit.h>
#include "qmacstyle_mac_p.h"
#include "qmacstyle_mac_p_p.h"
#include <QtCore/qoperatingsystemversion.h>
#include <QtCore/qvariant.h>
#include <QtCore/qvarlengtharray.h>
#include <QtCore/private/qcore_mac_p.h>
#include <QtGui/qpainterpath.h>
#include <QtGui/qstylehints.h>
#include <QtGui/private/qcoregraphics_p.h>
#include <QtGui/qpa/qplatformfontdatabase.h>
#include <QtGui/qpa/qplatformtheme.h>
#include <QtWidgets/private/qstyleanimation_p.h>
#include <cmath>
+ Include dependency graph for qmacstyle_mac.mm:

Go to the source code of this file.

Classes

category  QT_MANGLE_NAMESPACE(QIndeterminateProgressIndicator)
 
category  QT_MANGLE_NAMESPACE(QVerticalSplitView)
 
category  QT_MANGLE_NAMESPACE(QDarkNSBox)
 
class  AppearanceSync
 

Macros

#define QMAC_QAQUASTYLE_SIZE_CONSTRAIN
 

Enumerations

enum  QAquaMetric {
  CheckBoxHeight = 0 , CheckBoxWidth , EditTextFrameOutset , FocusRectOutset ,
  HSliderHeight , HSliderTickHeight , LargeProgressBarThickness , ListHeaderHeight ,
  MenuSeparatorHeight , MiniCheckBoxHeight , MiniCheckBoxWidth , MiniHSliderHeight ,
  MiniHSliderTickHeight , MiniPopupButtonHeight , MiniPushButtonHeight , MiniRadioButtonHeight ,
  MiniRadioButtonWidth , MiniVSliderTickWidth , MiniVSliderWidth , NormalProgressBarThickness ,
  PopupButtonHeight , ProgressBarShadowOutset , PushButtonHeight , RadioButtonHeight ,
  RadioButtonWidth , SeparatorSize , SmallCheckBoxHeight , SmallCheckBoxWidth ,
  SmallHSliderHeight , SmallHSliderTickHeight , SmallPopupButtonHeight , SmallProgressBarShadowOutset ,
  SmallPushButtonHeight , SmallRadioButtonHeight , SmallRadioButtonWidth , SmallVSliderTickWidth ,
  SmallVSliderWidth , VSliderTickWidth , VSliderWidth , CheckBoxHeight = 0 ,
  CheckBoxWidth , EditTextFrameOutset , FocusRectOutset , HSliderHeight ,
  HSliderTickHeight , LargeProgressBarThickness , ListHeaderHeight , MenuSeparatorHeight ,
  MiniCheckBoxHeight , MiniCheckBoxWidth , MiniHSliderHeight , MiniHSliderTickHeight ,
  MiniPopupButtonHeight , MiniPushButtonHeight , MiniRadioButtonHeight , MiniRadioButtonWidth ,
  MiniVSliderTickWidth , MiniVSliderWidth , NormalProgressBarThickness , PopupButtonHeight ,
  ProgressBarShadowOutset , PushButtonHeight , RadioButtonHeight , RadioButtonWidth ,
  SeparatorSize , SmallCheckBoxHeight , SmallCheckBoxWidth , SmallHSliderHeight ,
  SmallHSliderTickHeight , SmallPopupButtonHeight , SmallProgressBarShadowOutset , SmallPushButtonHeight ,
  SmallRadioButtonHeight , SmallRadioButtonWidth , SmallVSliderTickWidth , SmallVSliderWidth ,
  VSliderTickWidth , VSliderWidth
}
 
enum  QAquaMetric {
  CheckBoxHeight = 0 , CheckBoxWidth , EditTextFrameOutset , FocusRectOutset ,
  HSliderHeight , HSliderTickHeight , LargeProgressBarThickness , ListHeaderHeight ,
  MenuSeparatorHeight , MiniCheckBoxHeight , MiniCheckBoxWidth , MiniHSliderHeight ,
  MiniHSliderTickHeight , MiniPopupButtonHeight , MiniPushButtonHeight , MiniRadioButtonHeight ,
  MiniRadioButtonWidth , MiniVSliderTickWidth , MiniVSliderWidth , NormalProgressBarThickness ,
  PopupButtonHeight , ProgressBarShadowOutset , PushButtonHeight , RadioButtonHeight ,
  RadioButtonWidth , SeparatorSize , SmallCheckBoxHeight , SmallCheckBoxWidth ,
  SmallHSliderHeight , SmallHSliderTickHeight , SmallPopupButtonHeight , SmallProgressBarShadowOutset ,
  SmallPushButtonHeight , SmallRadioButtonHeight , SmallRadioButtonWidth , SmallVSliderTickWidth ,
  SmallVSliderWidth , VSliderTickWidth , VSliderWidth , CheckBoxHeight = 0 ,
  CheckBoxWidth , EditTextFrameOutset , FocusRectOutset , HSliderHeight ,
  HSliderTickHeight , LargeProgressBarThickness , ListHeaderHeight , MenuSeparatorHeight ,
  MiniCheckBoxHeight , MiniCheckBoxWidth , MiniHSliderHeight , MiniHSliderTickHeight ,
  MiniPopupButtonHeight , MiniPushButtonHeight , MiniRadioButtonHeight , MiniRadioButtonWidth ,
  MiniVSliderTickWidth , MiniVSliderWidth , NormalProgressBarThickness , PopupButtonHeight ,
  ProgressBarShadowOutset , PushButtonHeight , RadioButtonHeight , RadioButtonWidth ,
  SeparatorSize , SmallCheckBoxHeight , SmallCheckBoxWidth , SmallHSliderHeight ,
  SmallHSliderTickHeight , SmallPopupButtonHeight , SmallProgressBarShadowOutset , SmallPushButtonHeight ,
  SmallRadioButtonHeight , SmallRadioButtonWidth , SmallVSliderTickWidth , SmallVSliderWidth ,
  VSliderTickWidth , VSliderWidth
}
 

Functions

 QT_NAMESPACE_ALIAS_OBJC_CLASS (QIndeterminateProgressIndicator)
 
 QT_NAMESPACE_ALIAS_OBJC_CLASS (QVerticalSplitView)
 
 QT_NAMESPACE_ALIAS_OBJC_CLASS (QDarkNSBox)
 
static bool isDarkMode ()
 
static bool setupScroller (NSScroller *scroller, const QStyleOptionSlider *sb)
 
static bool setupSlider (NSSlider *slider, const QStyleOptionSlider *sl)
 
static bool isInMacUnifiedToolbarArea (QWindow *window, int windowY)
 
static QStyleHelper::WidgetSizePolicy getControlSize (const QStyleOption *option, const QWidget *widget)
 
static QString qt_mac_removeMnemonics (const QString &original)
 
static bool qt_macWindowMainWindow (const QWidget *window)
 
static int qt_mac_aqua_get_metric (QAquaMetric m)
 
static QSize qt_aqua_get_known_size (QStyle::ContentsType ct, const QStyleOption *opt, const QWidget *widg, QSize szHint, QStyleHelper::WidgetSizePolicy sz)
 
static QStyleHelper::WidgetSizePolicy qt_aqua_guess_size (const QWidget *widg, QSize large, QSize small, QSize mini)
 
size_t qHash (const QMacStylePrivate::CocoaControl &cw, size_t seed=0)
 
QMacStylePrivate::CocoaControlType cocoaControlType (const QStyleOption *opt, const QWidget *w)
 
static QPixmap darkenPixmap (const QPixmap &pixmap)
 
static void setLayoutItemMargins (int left, int top, int right, int bottom, QRect *rect, Qt::LayoutDirection dir)
 

Variables

const int pushButtonBevelRectOffsets [3]
 
static const QColor titlebarSeparatorLineActive (111, 111, 111)
 
static const QColor titlebarSeparatorLineInactive (131, 131, 131)
 
static const QColor darkModeSeparatorLine (88, 88, 88)
 
static const QColor lightMainWindowGradientBegin (240, 240, 240)
 
static const QColor lightMainWindowGradientEnd (200, 200, 200)
 
static const QColor darkMainWindowGradientBegin (47, 47, 47)
 
static const QColor darkMainWindowGradientEnd (47, 47, 47)
 
static const int DisclosureOffset = 4
 
static const qreal titleBarIconTitleSpacing = 5
 
static const qreal titleBarTitleRightMargin = 12
 
static const qreal titleBarButtonSpacing = 8
 
static const int headerSectionArrowHeight = 6
 
static const int headerSectionSeparatorInset = 2
 
static const QMarginsF comboBoxFocusRingMargins [3]
 
static const QMarginsF pullDownButtonShadowMargins [3]
 
static const QMarginsF pushButtonShadowMargins [3]
 
static const qreal comboBoxDefaultHeight [3]
 
static const qreal pushButtonDefaultHeight [3]
 
static const qreal popupButtonDefaultHeight [3]
 
static const int toolButtonArrowSize = 7
 
static const int toolButtonArrowMargin = 2
 
static const qreal focusRingWidth = 3.5
 
const int macItemFrame = 2
 
const int macItemHMargin = 3
 
const int macRightBorder = 12
 
static const int qt_mac_aqua_metrics []
 
return ret = msgBox.exec()
 [0]
 

Macro Definition Documentation

◆ QMAC_QAQUASTYLE_SIZE_CONSTRAIN

#define QMAC_QAQUASTYLE_SIZE_CONSTRAIN

Definition at line 14 of file qmacstyle_mac.mm.

Enumeration Type Documentation

◆ QAquaMetric [1/2]

Enumerator
CheckBoxHeight 
CheckBoxWidth 
EditTextFrameOutset 
FocusRectOutset 
HSliderHeight 
HSliderTickHeight 
LargeProgressBarThickness 
ListHeaderHeight 
MenuSeparatorHeight 
MiniCheckBoxHeight 
MiniCheckBoxWidth 
MiniHSliderHeight 
MiniHSliderTickHeight 
MiniPopupButtonHeight 
MiniPushButtonHeight 
MiniRadioButtonHeight 
MiniRadioButtonWidth 
MiniVSliderTickWidth 
MiniVSliderWidth 
NormalProgressBarThickness 
PopupButtonHeight 
ProgressBarShadowOutset 
PushButtonHeight 
RadioButtonHeight 
RadioButtonWidth 
SeparatorSize 
SmallCheckBoxHeight 
SmallCheckBoxWidth 
SmallHSliderHeight 
SmallHSliderTickHeight 
SmallPopupButtonHeight 
SmallProgressBarShadowOutset 
SmallPushButtonHeight 
SmallRadioButtonHeight 
SmallRadioButtonWidth 
SmallVSliderTickWidth 
SmallVSliderWidth 
VSliderTickWidth 
VSliderWidth 
CheckBoxHeight 
CheckBoxWidth 
EditTextFrameOutset 
FocusRectOutset 
HSliderHeight 
HSliderTickHeight 
LargeProgressBarThickness 
ListHeaderHeight 
MenuSeparatorHeight 
MiniCheckBoxHeight 
MiniCheckBoxWidth 
MiniHSliderHeight 
MiniHSliderTickHeight 
MiniPopupButtonHeight 
MiniPushButtonHeight 
MiniRadioButtonHeight 
MiniRadioButtonWidth 
MiniVSliderTickWidth 
MiniVSliderWidth 
NormalProgressBarThickness 
PopupButtonHeight 
ProgressBarShadowOutset 
PushButtonHeight 
RadioButtonHeight 
RadioButtonWidth 
SeparatorSize 
SmallCheckBoxHeight 
SmallCheckBoxWidth 
SmallHSliderHeight 
SmallHSliderTickHeight 
SmallPopupButtonHeight 
SmallProgressBarShadowOutset 
SmallPushButtonHeight 
SmallRadioButtonHeight 
SmallRadioButtonWidth 
SmallVSliderTickWidth 
SmallVSliderWidth 
VSliderTickWidth 
VSliderWidth 

Definition at line 666 of file qmacstyle_mac.mm.

◆ QAquaMetric [2/2]

Enumerator
CheckBoxHeight 
CheckBoxWidth 
EditTextFrameOutset 
FocusRectOutset 
HSliderHeight 
HSliderTickHeight 
LargeProgressBarThickness 
ListHeaderHeight 
MenuSeparatorHeight 
MiniCheckBoxHeight 
MiniCheckBoxWidth 
MiniHSliderHeight 
MiniHSliderTickHeight 
MiniPopupButtonHeight 
MiniPushButtonHeight 
MiniRadioButtonHeight 
MiniRadioButtonWidth 
MiniVSliderTickWidth 
MiniVSliderWidth 
NormalProgressBarThickness 
PopupButtonHeight 
ProgressBarShadowOutset 
PushButtonHeight 
RadioButtonHeight 
RadioButtonWidth 
SeparatorSize 
SmallCheckBoxHeight 
SmallCheckBoxWidth 
SmallHSliderHeight 
SmallHSliderTickHeight 
SmallPopupButtonHeight 
SmallProgressBarShadowOutset 
SmallPushButtonHeight 
SmallRadioButtonHeight 
SmallRadioButtonWidth 
SmallVSliderTickWidth 
SmallVSliderWidth 
VSliderTickWidth 
VSliderWidth 
CheckBoxHeight 
CheckBoxWidth 
EditTextFrameOutset 
FocusRectOutset 
HSliderHeight 
HSliderTickHeight 
LargeProgressBarThickness 
ListHeaderHeight 
MenuSeparatorHeight 
MiniCheckBoxHeight 
MiniCheckBoxWidth 
MiniHSliderHeight 
MiniHSliderTickHeight 
MiniPopupButtonHeight 
MiniPushButtonHeight 
MiniRadioButtonHeight 
MiniRadioButtonWidth 
MiniVSliderTickWidth 
MiniVSliderWidth 
NormalProgressBarThickness 
PopupButtonHeight 
ProgressBarShadowOutset 
PushButtonHeight 
RadioButtonHeight 
RadioButtonWidth 
SeparatorSize 
SmallCheckBoxHeight 
SmallCheckBoxWidth 
SmallHSliderHeight 
SmallHSliderTickHeight 
SmallPopupButtonHeight 
SmallProgressBarShadowOutset 
SmallPushButtonHeight 
SmallRadioButtonHeight 
SmallRadioButtonWidth 
SmallVSliderTickWidth 
SmallVSliderWidth 
VSliderTickWidth 
VSliderWidth 

Definition at line 666 of file qmacstyle_mac.mm.

Function Documentation

◆ cocoaControlType()

QMacStylePrivate::CocoaControlType cocoaControlType ( const QStyleOption * opt,
const QWidget * w )

Definition at line 1618 of file qmacstyle_mac.mm.

◆ darkenPixmap()

static QPixmap darkenPixmap ( const QPixmap & pixmap)
static

Definition at line 3378 of file qmacstyle_mac.mm.

◆ getControlSize()

static QStyleHelper::WidgetSizePolicy getControlSize ( const QStyleOption * option,
const QWidget * widget )
static

Definition at line 592 of file qmacstyle_mac.mm.

◆ isDarkMode()

static bool isDarkMode ( )
inlinestatic

Definition at line 164 of file qmacstyle_mac.mm.

Referenced by QMacStylePrivate::drawFocusRing().

+ Here is the caller graph for this function:

◆ isInMacUnifiedToolbarArea()

static bool isInMacUnifiedToolbarArea ( QWindow * window,
int windowY )
static

Definition at line 431 of file qmacstyle_mac.mm.

◆ qHash()

size_t qHash ( const QMacStylePrivate::CocoaControl & cw,
size_t seed = 0 )

Definition at line 1481 of file qmacstyle_mac.mm.

◆ qt_aqua_get_known_size()

static QSize qt_aqua_get_known_size ( QStyle::ContentsType ct,
const QStyleOption * opt,
const QWidget * widg,
QSize szHint,
QStyleHelper::WidgetSizePolicy sz )
static

Definition at line 758 of file qmacstyle_mac.mm.

References HSliderHeight, HSliderTickHeight, MiniHSliderHeight, MiniHSliderTickHeight, MiniPopupButtonHeight, MiniVSliderTickWidth, MiniVSliderWidth, PopupButtonHeight, qt_mac_aqua_get_metric(), SmallHSliderHeight, SmallHSliderTickHeight, SmallPopupButtonHeight, SmallVSliderTickWidth, SmallVSliderWidth, VSliderTickWidth, and VSliderWidth.

+ Here is the call graph for this function:

◆ qt_aqua_guess_size()

static QStyleHelper::WidgetSizePolicy qt_aqua_guess_size ( const QWidget * widg,
QSize large,
QSize small,
QSize mini )
static

Definition at line 1055 of file qmacstyle_mac.mm.

◆ qt_mac_aqua_get_metric()

static int qt_mac_aqua_get_metric ( QAquaMetric m)
inlinestatic

Definition at line 753 of file qmacstyle_mac.mm.

References qt_mac_aqua_metrics.

Referenced by qt_aqua_get_known_size().

+ Here is the caller graph for this function:

◆ qt_mac_removeMnemonics()

static QString qt_mac_removeMnemonics ( const QString & original)
static

Definition at line 609 of file qmacstyle_mac.mm.

◆ qt_macWindowMainWindow()

static bool qt_macWindowMainWindow ( const QWidget * window)
static

Definition at line 643 of file qmacstyle_mac.mm.

◆ QT_NAMESPACE_ALIAS_OBJC_CLASS() [1/3]

QT_NAMESPACE_ALIAS_OBJC_CLASS ( QDarkNSBox )

◆ QT_NAMESPACE_ALIAS_OBJC_CLASS() [2/3]

QT_NAMESPACE_ALIAS_OBJC_CLASS ( QIndeterminateProgressIndicator )

◆ QT_NAMESPACE_ALIAS_OBJC_CLASS() [3/3]

QT_NAMESPACE_ALIAS_OBJC_CLASS ( QVerticalSplitView )

◆ setLayoutItemMargins()

static void setLayoutItemMargins ( int left,
int top,
int right,
int bottom,
QRect * rect,
Qt::LayoutDirection dir )
static

Definition at line 4545 of file qmacstyle_mac.mm.

◆ setupScroller()

static bool setupScroller ( NSScroller * scroller,
const QStyleOptionSlider * sb )
static

Definition at line 375 of file qmacstyle_mac.mm.

◆ setupSlider()

static bool setupSlider ( NSSlider * slider,
const QStyleOptionSlider * sl )
static

Definition at line 392 of file qmacstyle_mac.mm.

Variable Documentation

◆ comboBoxDefaultHeight

static const qreal comboBoxDefaultHeight
static
Initial value:
= {
26, 22, 19
}

Definition at line 324 of file qmacstyle_mac.mm.

◆ comboBoxFocusRingMargins

static const QMarginsF comboBoxFocusRingMargins
static
Initial value:
= {
{ 0.5, 2, 3.5, 4 },
{ 0.5, 1, 2.5, 4 },
{ 0.5, 1.5, 2.5, 3.5 }
}

Definition at line 303 of file qmacstyle_mac.mm.

◆ darkMainWindowGradientBegin

static const QColor darkMainWindowGradientBegin ( 47 ,
47 ,
47  )
static

◆ darkMainWindowGradientEnd

static const QColor darkMainWindowGradientEnd ( 47 ,
47 ,
47  )
static

◆ darkModeSeparatorLine

static const QColor darkModeSeparatorLine ( 88 ,
88 ,
88  )
static

◆ DisclosureOffset

static const int DisclosureOffset = 4
static

Definition at line 226 of file qmacstyle_mac.mm.

◆ focusRingWidth

static const qreal focusRingWidth = 3.5
static

Definition at line 339 of file qmacstyle_mac.mm.

◆ headerSectionArrowHeight

static const int headerSectionArrowHeight = 6
static

Definition at line 299 of file qmacstyle_mac.mm.

◆ headerSectionSeparatorInset

static const int headerSectionSeparatorInset = 2
static

Definition at line 300 of file qmacstyle_mac.mm.

◆ lightMainWindowGradientBegin

static const QColor lightMainWindowGradientBegin ( 240 ,
240 ,
240  )
static

◆ lightMainWindowGradientEnd

static const QColor lightMainWindowGradientEnd ( 200 ,
200 ,
200  )
static

◆ macItemFrame

const int macItemFrame = 2

Definition at line 658 of file qmacstyle_mac.mm.

◆ macItemHMargin

const int macItemHMargin = 3

Definition at line 659 of file qmacstyle_mac.mm.

◆ macRightBorder

const int macRightBorder = 12

Definition at line 660 of file qmacstyle_mac.mm.

◆ popupButtonDefaultHeight

static const qreal popupButtonDefaultHeight
static
Initial value:
= {
26, 22, 15
}

Definition at line 332 of file qmacstyle_mac.mm.

◆ pullDownButtonShadowMargins

static const QMarginsF pullDownButtonShadowMargins
static
Initial value:
= {
{ 0.5, -1, 0.5, 2 },
{ 0.5, -1.5, 0.5, 2.5 },
{ 0.5, 0, 0.5, 1 }
}

Definition at line 309 of file qmacstyle_mac.mm.

◆ pushButtonBevelRectOffsets

const int pushButtonBevelRectOffsets
Initial value:

Definition at line 158 of file qmacstyle_mac.mm.

◆ pushButtonDefaultHeight

static const qreal pushButtonDefaultHeight
static
Initial value:
= {
32, 28, 24
}

Definition at line 328 of file qmacstyle_mac.mm.

◆ pushButtonShadowMargins

static const QMarginsF pushButtonShadowMargins
static
Initial value:
= {
{ 1.5, -1.5, 1.5, 4.5 },
{ 1.5, -1, 1.5, 4 },
{ 1.5, 0.5, 1.5, 2.5 }
}

Definition at line 315 of file qmacstyle_mac.mm.

◆ qt_mac_aqua_metrics

static const int qt_mac_aqua_metrics
static

Definition at line 710 of file qmacstyle_mac.mm.

Referenced by qt_mac_aqua_get_metric().

◆ ret

int ret = msgBox.exec()

[0]

Definition at line 1050 of file qmacstyle_mac.mm.

◆ titleBarButtonSpacing

static const qreal titleBarButtonSpacing = 8
static

Definition at line 230 of file qmacstyle_mac.mm.

◆ titleBarIconTitleSpacing

static const qreal titleBarIconTitleSpacing = 5
static

Definition at line 228 of file qmacstyle_mac.mm.

◆ titlebarSeparatorLineActive

static const QColor titlebarSeparatorLineActive ( 111 ,
111 ,
111  )
static

◆ titlebarSeparatorLineInactive

static const QColor titlebarSeparatorLineInactive ( 131 ,
131 ,
131  )
static

◆ titleBarTitleRightMargin

static const qreal titleBarTitleRightMargin = 12
static

Definition at line 229 of file qmacstyle_mac.mm.

◆ toolButtonArrowMargin

static const int toolButtonArrowMargin = 2
static

Definition at line 337 of file qmacstyle_mac.mm.

◆ toolButtonArrowSize

static const int toolButtonArrowSize = 7
static

Definition at line 336 of file qmacstyle_mac.mm.