SARibbon 2.5.1
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
59#ifndef SA_RIBBON_DECLARE_PRIVATE
60#define SA_RIBBON_DECLARE_PRIVATE(classname) \
61 class PrivateData; \
62 friend class classname::PrivateData; \
63 std::unique_ptr< PrivateData > d_ptr;
64#endif
65
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;
77#endif
78
84#ifndef SA_RIBBON_IMPL_CONSTRUCT
85#define SA_RIBBON_IMPL_CONSTRUCT d_ptr(std::make_unique< PrivateData >(this))
86#endif
87
92#ifndef SA_D
93#define SA_D(pointerName) PrivateData* pointerName = d_ptr.get()
94#endif
95
100#ifndef SA_DC
101#define SA_DC(pointerName) const PrivateData* pointerName = d_ptr.get()
102#endif
103
108#ifndef SA_Q
109#define SA_Q(pointerName) auto* pointerName = q_ptr
110#endif
111
116#ifndef SA_QC
117#define SA_QC(pointerName) const auto* pointerName = q_ptr
118#endif
119
125enum class SARibbonAlignment
126{
127 AlignLeft,
128 AlignCenter
129};
130
139enum class SARibbonTheme
140{
141 RibbonThemeOffice2013,
142 RibbonThemeOffice2016Blue,
143 RibbonThemeOffice2021Blue,
144 RibbonThemeWindows7,
145 RibbonThemeDark,
146 RibbonThemeDark2
147};
148
152enum class SARibbonMainWindowStyleFlag : int
153{
154 UseRibbonFrame = 1,
155 UseNativeFrame = 2,
156 UseRibbonMenuBar = 4,
157 UseNativeMenuBar = 8
158};
159Q_DECLARE_FLAGS(SARibbonMainWindowStyles, SARibbonMainWindowStyleFlag)
160Q_DECLARE_OPERATORS_FOR_FLAGS(SARibbonMainWindowStyles)
161
162
167#ifndef SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE
168#define SA_RIBBON_BAR_PROP_CAN_CUSTOMIZE "_sa_isCanCustomize"
169#endif
170
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)
174#endif
175#else
176#ifndef SA_FONTMETRICS_WIDTH
177#define SA_FONTMETRICS_WIDTH(fm, str) fm.width(str)
178#endif
179#endif
180
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()
184#endif
185#else
186#ifndef SA_MOUSEEVENT_GLOBALPOS_POINT
187#define SA_MOUSEEVENT_GLOBALPOS_POINT(MouseEventPtr) MouseEventPtr->globalPos()
188#endif
189#endif
190
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()
194#endif
195#else
196#ifndef SA_HOVEREVENT_POS_POINT
197#define SA_HOVEREVENT_POS_POINT(HoverEventPtr) HoverEventPtr->pos()
198#endif
199#endif
200
201#endif // SARIBBONGLOBAL_H