VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtUserInterfaceAssembler.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2010 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtUserInterfaceAssembler.h,v $ $Revision: 1.20 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008 
00012 
00013 #ifndef DtUserInterfaceAssembler_H_ 
00014 #define DtUserInterfaceAssembler_H_ 
00015 
00016 #include <vrvCore/vrvCore.h> 
00017 #include <vrvUtil/DtVirtualBaseClass.h> 
00018 #include <vrvCore/DtDe.h> 
00019 #include <vrvCore/DtUserInterfaceBuilder.h> 
00020 #include <boost/unordered_map.hpp>
00021 #include <list>
00022 #include <string>
00023 
00024 namespace makVrv 
00025 { 
00026    class DtDeMainWindow;
00027 
00031    class DT_DLL_VRVCORE DtUserInterfaceAssembler : public DtVirtualBaseClass
00032    { 
00033    public:
00034 
00035       typedef std::pair<std::string, bool> WidgetCreationOrder;
00036       typedef boost::unordered_map<std::string, WidgetCreationOrder> WidgetCreationOrderMap;
00037       typedef std::list<std::string> BuilderList;
00038 
00039    public:
00040 
00043       static DtUserInterfaceAssembler& instance(DtDe& de);
00044 
00046       virtual ~DtUserInterfaceAssembler();
00047 
00052       virtual bool destroyBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder);
00053 
00056       virtual DtUserInterfaceBuilder* findMenuBuilder(const std::string& builderName) const;
00057 
00060       virtual void registerMenuBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder, 
00061          int modeFlags);
00062 
00065       virtual DtUserInterfaceBuilder* findMenuItemBuilder(const std::string& builderName) const;
00066 
00069       virtual void registerMenuItemBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder, 
00070          int modeFlags);
00071 
00074       virtual DtUserInterfaceBuilder* findWidgetBuilder(const std::string& builderName) const;
00075 
00078       virtual void registerWidgetBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder,
00079          int modeFlags);
00080 
00083       virtual void assemble(DtDe& de, DtDeMainWindow& mainWindow);
00084 
00087       virtual void createControlBefore(const std::string& control, const std::string& before);
00088 
00091       virtual void createControlAfter(const std::string& control, const std::string& after);
00092 
00094       virtual void removeControlCreationOrder(const std::string& control);
00095 
00097       virtual void setMasterModeAssembleList(const BuilderList& builderList);
00098 
00100       virtual const BuilderList& masterModeAssembleList() const;
00101 
00103       virtual void setSlaveModeAssembleList(const BuilderList& builderList);
00104 
00106       virtual const BuilderList& slaveModeAssembleList() const;
00107 
00108    protected:
00109 
00110       typedef boost::unordered_map<std::string, DtUserInterfaceBuilder*> BuilderMap;
00111 
00112 
00114       DtUserInterfaceAssembler();
00115 
00118       static DtUserInterfaceAssembler* create();
00119 
00121       virtual void buildMenus(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
00122 
00124       virtual void buildMenuItems(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
00125 
00127       virtual void buildWidgets(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
00128 
00130       virtual void build(DtDe& de, DtDeMainWindow& mainWindow, DtUserInterfaceBuilder* builder);
00131 
00134       virtual void mapNameToMode(const std::string& name, int modeFlags);
00135 
00137       virtual BuilderList widgetBuildOrder(const BuilderList&) const;
00138 
00139    protected:
00140       
00141       BuilderMap myMenuBuilderMap;
00142       BuilderMap myMenuItemBuilderMap;
00143       BuilderMap myWidgetBuilderMap;
00144       
00145       BuilderList myMasterModeList;
00146       BuilderList mySlaveModeList;
00147 
00148       WidgetCreationOrderMap   myCreationOrder;
00149    }; 
00150 
00151   
00152 
00153 
00154 } 
00155 
00156 #endif 
00157 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)