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()