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
83#ifndef SA_RIBBON_DECLARE_PRIVATE
84#define SA_RIBBON_DECLARE_PRIVATE(classname) \
86 friend class classname::PrivateData; \
87 std::unique_ptr< PrivateData > d_ptr;
103#ifndef SA_RIBBON_DECLARE_PUBLIC
104#define SA_RIBBON_DECLARE_PUBLIC(classname) \
105 friend class classname; \
106 classname* q_ptr { nullptr }; \
107 PrivateData(const PrivateData&) = delete; \
108 PrivateData& operator=(const PrivateData&) = delete;
122#ifndef SA_RIBBON_IMPL_CONSTRUCT
123#define SA_RIBBON_IMPL_CONSTRUCT d_ptr(std::make_unique< PrivateData >(this))
138#define SA_D(pointerName) PrivateData* pointerName = d_ptr.get()
153#define SA_DC(pointerName) const PrivateData* pointerName = d_ptr.get()
168#define SA_Q(pointerName) auto* pointerName = q_ptr
183#define SA_QC(pointerName) const auto* pointerName = q_ptr
197enum class SARibbonAlignment
218enum class SARibbonTheme
220 RibbonThemeOffice2013,
221 RibbonThemeOffice2016Blue,
222 RibbonThemeOffice2021Blue,
237enum class SARibbonMainWindowStyleFlag :
int
241 UseRibbonMenuBar = 4,
244Q_DECLARE_FLAGS(SARibbonMainWindowStyles, SARibbonMainWindowStyleFlag)
245Q_DECLARE_OPERATORS_FOR_FLAGS(SARibbonMainWindowStyles)
262#ifndef SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE
263#define SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE "_sa_isCanCustomize"
266#if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
268#define sa_as_const std::as_const
273#define sa_as_const qAsConst