1#ifndef SARIBBONGLOBAL_H
2#define SARIBBONGLOBAL_H
6#include "SARibbonBarVersionInfo.h"
9#ifndef SA_RIBBON_BAR_NO_EXPORT
10#if defined(SA_RIBBON_BAR_MAKE_LIB)
11#define SA_RIBBON_EXPORT Q_DECL_EXPORT
13#define SA_RIBBON_EXPORT Q_DECL_IMPORT
16#ifndef SA_RIBBON_EXPORT
17#define SA_RIBBON_EXPORT
59#ifndef SA_RIBBON_DECLARE_PRIVATE
60#define SA_RIBBON_DECLARE_PRIVATE(classname) \
62 friend class classname::PrivateData; \
63 std::unique_ptr< PrivateData > d_ptr;
71#ifndef SA_RIBBON_DECLARE_PUBLIC
72#define SA_RIBBON_DECLARE_PUBLIC(classname) \
73 friend class classname; \
74 classname* q_ptr { nullptr }; \
75 PrivateData(const PrivateData&) = delete; \
76 PrivateData& operator=(const PrivateData&) = delete;
84#ifndef SA_RIBBON_IMPL_CONSTRUCT
85#define SA_RIBBON_IMPL_CONSTRUCT d_ptr(std::make_unique< PrivateData >(this))
93#define SA_D(pointerName) PrivateData* pointerName = d_ptr.get()
101#define SA_DC(pointerName) const PrivateData* pointerName = d_ptr.get()
109#define SA_Q(pointerName) auto* pointerName = q_ptr
117#define SA_QC(pointerName) const auto* pointerName = q_ptr
125enum class SARibbonAlignment
139enum class SARibbonTheme
141 RibbonThemeOffice2013,
142 RibbonThemeOffice2016Blue,
143 RibbonThemeOffice2021Blue,
152enum class SARibbonMainWindowStyleFlag :
int
156 UseRibbonMenuBar = 4,
159Q_DECLARE_FLAGS(SARibbonMainWindowStyles, SARibbonMainWindowStyleFlag)
160Q_DECLARE_OPERATORS_FOR_FLAGS(SARibbonMainWindowStyles)
167#ifndef SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE
168#define SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE "_sa_isCanCustomize"
171#if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0))
172#ifndef SA_FONTMETRICS_WIDTH
173#define SA_FONTMETRICS_WIDTH(fm, str) fm.horizontalAdvance(str)
176#ifndef SA_FONTMETRICS_WIDTH
177#define SA_FONTMETRICS_WIDTH(fm, str) fm.width(str)
181#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
182#ifndef SA_MOUSEEVENT_GLOBALPOS_POINT
183#define SA_MOUSEEVENT_GLOBALPOS_POINT(MouseEventPtr) MouseEventPtr->globalPosition().toPoint()
186#ifndef SA_MOUSEEVENT_GLOBALPOS_POINT
187#define SA_MOUSEEVENT_GLOBALPOS_POINT(MouseEventPtr) MouseEventPtr->globalPos()
191#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
192#ifndef SA_HOVEREVENT_POS_POINT
193#define SA_HOVEREVENT_POS_POINT(HoverEventPtr) HoverEventPtr->position().toPoint()
196#ifndef SA_HOVEREVENT_POS_POINT
197#define SA_HOVEREVENT_POS_POINT(HoverEventPtr) HoverEventPtr->pos()