BIMHome v1.0.0
BIMHome接口文档说明
IPlugInManager.h
浏览该文件的文档.
1/************************************************************************
2* @file IPlugInManager.h
3*
4* @brief 插件管理类
5*
6* @details 插件管理类
7*
8* @author sunpeng
9*
10* @version 1.0
11*
12* @date 2014-9-11
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEGUI_GUI_IPLUGINMANAGER_H
19#define BIMHOMEGUI_GUI_IPLUGINMANAGER_H
20
21#include <BHGlobal.h>
22#include <cassert>
23
24namespace Gui
25{
26 class ICommand;
27 class IWorkbench;
28
29 class GuiExport IPlugInManager
30 {
31 public:
38
45 virtual bool registerCommand(ICommand* pCommand) = 0;
46
53 virtual bool registerWorkBench(Gui::IWorkbench* pWorkbench) = 0;
54
55
56 };
57
58}
59
60template<class WorkbenClassName>
61//工作台注册类
63{
64public:
66 {
67 bool isOK = Gui::IPlugInManager::get().registerWorkBench(new WorkbenClassName);
68 if (!isOK)
69 {
70 assert(0);
71 //此工作台Name已经被注册了,换个名字试试!!!
72 }
73 }
74};
75
76#define REGISTER_WORKBENCH_CMD(WorkbenClassName) WorkbenRegister<WorkbenClassName> Workbench##WorkbenClassName
77
78template<class CommandClassName>
79//命令注册类
81{
82public:
84 {
85 bool isOK = Gui::IPlugInManager::get().registerCommand(new CommandClassName);
86 if (!isOK)
87 {
88 assert(0);
89 //此命令ID已经被注册了,换个ID试试!!!
90 }
91 }
92};
93
94#define REGISTER_COMMAND_CMD(CommandClassName) CommandRegister<CommandClassName> Command##CommandClassName
95
96#endif // GUI_IPLUGINMANAGER_H
CommandRegister()
Definition IPlugInManager.h:83
Definition IPlugInManager.h:81
Definition ICommand.h:31
virtual bool registerWorkBench(Gui::IWorkbench *pWorkbench)=0
注册工作台
static IPlugInManager & get()
返回 PlugInManager 的单例实例
virtual bool registerCommand(ICommand *pCommand)=0
注册命令
Definition IPlugInManager.h:30
工作台接口
Definition IWorkbench.h:36
WorkbenRegister()
Definition IPlugInManager.h:65
Definition IPlugInManager.h:63
Definition GuiDocObserverDelegate.h:33