/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef LAF_TOOL_FACTORY_H 00002 #define LAF_TOOL_FACTORY_H 00003 00004 #include <string> 00005 00006 class ToolBase; 00007 00008 class ToolFactory 00009 { 00010 public : 00011 ToolFactory(const std::string& name, ToolBase* (*creator)(const std::string&)); 00012 }; 00013 00014 #define DECLARE_TOOL(ToolClass) \ 00015 ToolBase* _tool_##ToolClass##_creator_(const std::string& objName) { return new ToolClass(objName); } \ 00016 ToolFactory _reg_tool_##ToolClass##_creator(#ToolClass, &_tool_##ToolClass##_creator_) 00017 00018 #endif //LAF_TOOL_FACTORY_H