SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonGlobal.h
1#ifndef SARIBBONGLOBAL_H
2#define SARIBBONGLOBAL_H
3#include <memory>
4#include <QtGlobal>
5#include <QObject>
6#include "SARibbonBarVersionInfo.h"
7class QWidget;
8
9#ifndef SA_RIBBON_BAR_NO_EXPORT
10#if defined(SA_RIBBON_BAR_MAKE_LIB) // 定义此宏将构建library
11#define SA_RIBBON_EXPORT Q_DECL_EXPORT
12#else
13#define SA_RIBBON_EXPORT Q_DECL_IMPORT
14#endif
15#endif
16#ifndef SA_RIBBON_EXPORT
17#define SA_RIBBON_EXPORT
18#endif
19
83#ifndef SA_RIBBON_DECLARE_PRIVATE
84#define SA_RIBBON_DECLARE_PRIVATE(classname) \
85 class PrivateData; \
86 friend class classname::PrivateData; \
87 std::unique_ptr< PrivateData > d_ptr;
88#endif
89
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;
109#endif
110
122#ifndef SA_RIBBON_IMPL_CONSTRUCT
123#define SA_RIBBON_IMPL_CONSTRUCT d_ptr(std::make_unique< PrivateData >(this))
124#endif
125
137#ifndef SA_D
138#define SA_D(pointerName) PrivateData* pointerName = d_ptr.get()
139#endif
140
152#ifndef SA_DC
153#define SA_DC(pointerName) const PrivateData* pointerName = d_ptr.get()
154#endif
155
167#ifndef SA_Q
168#define SA_Q(pointerName) auto* pointerName = q_ptr
169#endif
170
182#ifndef SA_QC
183#define SA_QC(pointerName) const auto* pointerName = q_ptr
184#endif
185
197enum class SARibbonAlignment
198{
199 AlignLeft,
200 AlignCenter,
201 AlignRight
202};
203
219enum class SARibbonTheme
220{
221 RibbonThemeOffice2013,
222 RibbonThemeOffice2016Blue,
223 RibbonThemeOffice2021Blue,
224 RibbonThemeWindows7,
225 RibbonThemeDark,
226 RibbonThemeDark2
227};
228
238enum class SARibbonMainWindowStyleFlag : int
239{
240 UseRibbonFrame = 1,
241 UseNativeFrame = 2,
242 UseRibbonMenuBar = 4,
243 UseNativeMenuBar = 8
244};
245Q_DECLARE_FLAGS(SARibbonMainWindowStyles, SARibbonMainWindowStyleFlag)
246Q_DECLARE_OPERATORS_FOR_FLAGS(SARibbonMainWindowStyles)
247
248
263#ifndef SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE
264#define SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE "_sa_isCanCustomize"
265#endif
266
267#if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
268#ifndef sa_as_const
269#define sa_as_const std::as_const
270#endif
271#else
272// C++14 及以下版本使用 Qt 的 qwt_as_const
273#ifndef sa_as_const
274#define sa_as_const qAsConst
275#endif
276#endif
277
278#endif // SARIBBONGLOBAL_H