logplus/OSGDataModel/include/DialogFactory.h
2026-01-16 17:18:41 +08:00

60 lines
1.3 KiB
C++

/**
* @file DialogFactory.h
* @brief 为了属性表能够弹出对话框 特添加此类
* @date 2015-5-22
* @author: hudfang
*/
#ifndef PAI_FRAME_CDIALOGFACTORY_H__
#define PAI_FRAME_CDIALOGFACTORY_H__
#pragma warning( push ,0)
#include <QUuid>
#include "ObjectGenralFactory.h"
#pragma warning( pop )
BEGIN_OSGDATAMODEL_NAMESPACE;
struct OSGDATAMODEL_EXPORT sDialogFactoryKey
{
public:
sDialogFactoryKey();
sDialogFactoryKey( QUuid ObjectClassID );
bool operator !=( const sDialogFactoryKey& s );
bool operator< ( const sDialogFactoryKey& s ) const;
public:
QUuid m_ObjectClassID;
};
class OSGDATAMODEL_EXPORT CDialogFactory
{
public:
CDialogFactory();
virtual ~CDialogFactory();
virtual void Init(QString){
}
static CObjectGenralFactory<sDialogFactoryKey,CDialogFactory>& GetFatory();
virtual QString GetGuid()=0;
};
/**
* @brief 成图窗口插件注册宏
*/
#define BEGIN_REGISTER_IDIALOG(className) BEGIN_REGISTER(sDialogFactoryKey,CDialogFactory,className)
#define END_REGISTER_IDIALOG(className) END_REGISTER( sDialogFactoryKey,CDialogFactory,className )
/**
* @brief 格式转换器插件工厂
*/
typedef CObjectGenralFactory<sDialogFactoryKey,CDialogFactory> IDialogFactory;
END_OSGDATAMODEL_NAMESPACE
using namespace pai::datamodel;
#endif