CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/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.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