00001 #ifndef Fireworks_Core_FWViewManagerManager_h 00002 #define Fireworks_Core_FWViewManagerManager_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWViewManagerManager 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Tue Jan 15 10:26:23 EST 2008 00019 // $Id: FWViewManagerManager.h,v 1.12 2009/11/05 22:06:02 dmytro Exp $ 00020 // 00021 00022 // system include files 00023 #include <vector> 00024 #include <map> 00025 #include <boost/shared_ptr.hpp> 00026 #include <set> 00027 #include <string> 00028 00029 // user include files 00030 00031 // forward declarations 00032 class FWViewManagerBase; 00033 class FWEventItem; 00034 class FWModelChangeManager; 00035 class FWColorManager; 00036 class FWTypeToRepresentations; 00037 00038 class FWViewManagerManager 00039 { 00040 00041 public: 00042 FWViewManagerManager(FWModelChangeManager*, FWColorManager*); 00043 virtual ~FWViewManagerManager(); 00044 00045 // ---------- const member functions --------------------- 00046 FWTypeToRepresentations supportedTypesAndRepresentations() const; 00047 00048 // ---------- static member functions -------------------- 00049 00050 // ---------- member functions --------------------------- 00051 void add( boost::shared_ptr<FWViewManagerBase>); 00052 void registerEventItem(const FWEventItem*iItem); 00053 void removeEventItem(const FWEventItem*iItem); 00054 void eventBegin(); 00055 void eventEnd(); 00056 00057 private: 00058 FWViewManagerManager(const FWViewManagerManager&); // stop default 00059 00060 const FWViewManagerManager& operator=(const FWViewManagerManager&); // stop default 00061 00062 // ---------- member data -------------------------------- 00063 std::vector<boost::shared_ptr<FWViewManagerBase> > m_viewManagers; 00064 FWModelChangeManager* m_changeManager; 00065 FWColorManager* m_colorManager; 00066 std::map<std::string, const FWEventItem*> m_typeToItems; //use this to tell view managers registered after the item 00067 00068 }; 00069 00070 00071 #endif