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};
202
218enum class SARibbonTheme
219{
220 RibbonThemeOffice2013,
221 RibbonThemeOffice2016Blue,
222 RibbonThemeOffice2021Blue,
223 RibbonThemeWindows7,
224 RibbonThemeDark,
225 RibbonThemeDark2
226};
227
237enum class SARibbonMainWindowStyleFlag : int
238{
239 UseRibbonFrame = 1,
240 UseNativeFrame = 2,
241 UseRibbonMenuBar = 4,
242 UseNativeMenuBar = 8
243};
244Q_DECLARE_FLAGS(SARibbonMainWindowStyles, SARibbonMainWindowStyleFlag)
245Q_DECLARE_OPERATORS_FOR_FLAGS(SARibbonMainWindowStyles)
246
247
262#ifndef SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE
263#define SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE "_sa_isCanCustomize"
264#endif
265
266#if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
267#ifndef sa_as_const
268#define sa_as_const std::as_const
269#endif
270#else
271// C++14 及以下版本使用 Qt 的 qwt_as_const
272#ifndef sa_as_const
273#define sa_as_const qAsConst
274#endif
275#endif
276
277#endif // SARIBBONGLOBAL_H