00001 #ifndef Fireworks_Core_FWDetailViewManager_h 00002 #define Fireworks_Core_FWDetailViewManager_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWDetailViewManager 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Wed Mar 5 09:13:43 EST 2008 00019 // $Id: FWDetailViewManager.h,v 1.25 2011/05/27 04:03:42 amraktad Exp $ 00020 // 00021 #include <map> 00022 #include <string> 00023 00024 class FWColorManager; 00025 class TEveCompositeFrameInMainFrame; 00026 class FWDetailViewBase; 00027 class FWModelId; 00028 class TEveWindow; 00029 00030 class FWDetailViewManager 00031 { 00032 public: 00033 FWDetailViewManager(FWColorManager*); 00034 virtual ~FWDetailViewManager(); 00035 00036 std::vector<std::string> detailViewsFor(const FWModelId&) const; 00037 // void assertMainFrame(); 00038 void openDetailViewFor(const FWModelId&, const std::string&); 00039 void colorsChanged(); 00040 void newEventCallback(); 00041 void eveWindowDestroyed(TEveWindow*); 00042 00043 protected: 00044 FWColorManager *m_colorManager; 00045 00046 private: 00047 00048 FWDetailViewManager(const FWDetailViewManager&); // stop default 00049 const FWDetailViewManager& operator=(const FWDetailViewManager&); // stop default 00050 00051 std::vector<std::string> findViewersFor(const std::string&) const; 00052 00053 struct ViewFrame 00054 { 00055 TEveCompositeFrameInMainFrame *m_eveFrame; 00056 FWDetailViewBase *m_detailView; 00057 TEveWindow *m_eveWindow; 00058 00059 ViewFrame(TEveCompositeFrameInMainFrame *f, FWDetailViewBase* v, TEveWindow* w): 00060 m_eveFrame(f), m_detailView(v), m_eveWindow(w) {} 00061 }; 00062 00063 typedef std::vector<ViewFrame> vViews_t; 00064 typedef vViews_t::iterator vViews_i; 00065 vViews_t m_views; 00066 00067 mutable std::map<std::string, std::vector<std::string> > m_typeToViewers; 00068 }; 00069 00070 #endif