5 #ifndef CNOID_BASE_VIEW_MANAGER_H 6 #define CNOID_BASE_VIEW_MANAGER_H 11 #include <cnoid/Signal> 16 class ExtensionManager;
17 class ViewManagerImpl;
30 virtual View* create() = 0;
51 const std::string& className,
const std::string& defaultInstanceName,
53 return static_cast<ViewType*
>(
54 registerClassSub(
typeid(ViewType), className, defaultInstanceName, itype,
new Factory<ViewType>()));
57 static ViewClass* viewClass(
const std::type_info& view_type_info);
60 static View* getOrCreateView(
const std::string& moduleName,
const std::string& className);
63 static View* getOrCreateView(
64 const std::string& moduleName,
const std::string& className,
const std::string& instanceName);
67 static View* getOrCreateViewOfDefaultName(
const std::string& defaultName);
69 static std::vector<View*> allViews();
70 static std::vector<View*> activeViews();
72 template <
class ViewType>
static ViewType*
getOrCreateView(
bool doMountCreatedView =
false) {
73 return static_cast<ViewType*
>(getOrCreateSpecificTypeView(
typeid(ViewType), std::string(), doMountCreatedView));
76 template <
class ViewType>
static ViewType*
getOrCreateView(
const std::string& instanceName,
bool doMountCreatedView =
false) {
77 return static_cast<ViewType*
>(getOrCreateSpecificTypeView(
typeid(ViewType), instanceName, doMountCreatedView));
80 template <
class ViewType>
static ViewType*
findView() {
81 return static_cast<ViewType*
>(findSpecificTypeView(
typeid(ViewType), std::string()));
84 template <
class ViewType>
static ViewType*
findView(
const std::string& instanceName) {
85 return static_cast<ViewType*
>(findSpecificTypeView(
typeid(ViewType), instanceName));
88 static bool isPrimalInstance(
View* view);
90 static bool storeViewStates(
ArchivePtr archive,
const std::string& key);
96 operator bool()
const {
return (data != 0); }
113 View* registerClassSub(
114 const std::type_info& view_type_info,
const std::string& className,
const std::string& defaultInstanceName,
116 static View* getOrCreateSpecificTypeView(
117 const std::type_info& view_type_info,
const std::string& instanceName,
bool doMountCreatedView);
118 static View* findSpecificTypeView(
const std::type_info& view_type_info,
const std::string& instanceName);
120 ViewManagerImpl* impl;
Definition: ViewManager.h:42
ViewType * registerClass(const std::string &className, const std::string &defaultInstanceName, ViewManager::InstantiationType itype=ViewManager::SINGLE_OPTIONAL)
Definition: ViewManager.h:50
Definition: ExtensionManager.h:26
virtual ~FactoryBase()
Definition: ViewManager.h:31
Definition: ViewManager.h:28
Definition: ViewManager.h:40
InstantiationType
Definition: ViewManager.h:39
static ViewType * findView()
Definition: ViewManager.h:80
Definition: ViewManager.h:34
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: ViewManager.h:20
Definition: ViewManager.h:92
static ViewType * findView(const std::string &instanceName)
Definition: ViewManager.h:84
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
static ViewType * getOrCreateView(bool doMountCreatedView=false)
Definition: ViewManager.h:72
Definition: ViewManager.h:41
virtual View * create()
Definition: ViewManager.h:36
static ViewType * getOrCreateView(const std::string &instanceName, bool doMountCreatedView=false)
Definition: ViewManager.h:76