CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Fireworks/Core/interface/FWDetailViewManager.h

Go to the documentation of this file.
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.24 2011/02/10 14:58:05 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();
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 
00058       ViewFrame(TEveCompositeFrameInMainFrame *f, FWDetailViewBase* v):
00059          m_eveFrame(f), m_detailView(v) {}
00060    };
00061 
00062    typedef std::vector<ViewFrame> vViews_t;
00063    typedef vViews_t::iterator     vViews_i;
00064    vViews_t   m_views;
00065 
00066    mutable std::map<std::string, std::vector<std::string> > m_typeToViewers;
00067 };
00068 
00069 #endif