instAdmin/Cpp/GisDes/SaRibbon/SARibbonBar/SARibbonElementManager.h

53 lines
1.4 KiB
C
Raw Normal View History

2024-10-29 22:24:50 +08:00
#ifndef SARIBBONELEMENTMANAGER_H
#define SARIBBONELEMENTMANAGER_H
#include "SARibbonElementFactory.h"
#include "SARibbonGlobal.h"
/**
@brief SARibbonElementFactory
ElementFactory
@code
class MyRibbonElementFactory : public SARibbonElementFactory{
public:
...
virtual SARibbonPannel* createRibbonPannel(QWidget* parent){
return new MyRibbonPannel(parent);
}
};
@endcode
ribbonbar创建之前把自己的ElementFactory设置进去
main函数中进行
@code
SARibbonElementManager::instance()->setupFactory(new MyRibbonElementFactory);
@endcode
SARibbon创建的pannel就是你自己重写的MyRibbonPannel
*/
class SA_RIBBON_EXPORT SARibbonElementManager
{
protected:
SARibbonElementManager();
public:
virtual ~SARibbonElementManager();
static SARibbonElementManager* instance();
SARibbonElementFactory* factory();
void setupFactory(SARibbonElementFactory* fac);
private:
QScopedPointer< SARibbonElementFactory > mFactory;
};
#ifndef RibbonSubElementMgr
#define RibbonSubElementMgr SARibbonElementManager::instance()
#endif
#ifndef RibbonSubElementFactory
#define RibbonSubElementFactory SARibbonElementManager::instance()->factory()
#endif
#endif // SARIBBONELEMENTMANAGER_H