CMS 3D CMS Logo

FWDetailViewManager.h
Go to the documentation of this file.
1 #ifndef Fireworks_Core_FWDetailViewManager_h
2 #define Fireworks_Core_FWDetailViewManager_h
3 // -*- C++ -*-
4 //
5 // Package: Core
6 // Class : FWDetailViewManager
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Wed Mar 5 09:13:43 EST 2008
19 //
20 #include <map>
21 #include <memory>
22 #include <string>
23 #include <vector>
24 
25 class FWColorManager;
26 class TEveCompositeFrameInMainFrame;
27 class FWDetailViewBase;
28 class FWModelId;
29 class TEveWindow;
30 
31 namespace fireworks {
32  class Context;
33 }
34 
36 public:
38  virtual ~FWDetailViewManager();
39 
40  std::vector<std::string> detailViewsFor(const FWModelId&) const;
41  // void assertMainFrame();
42  void openDetailViewFor(const FWModelId&, const std::string&);
43  void colorsChanged();
44  void newEventCallback();
45  void eveWindowDestroyed(TEveWindow*);
46 
47  struct ViewFrame {
48  TEveCompositeFrameInMainFrame* m_eveFrame;
49  std::unique_ptr<FWDetailViewBase> m_detailView;
50  TEveWindow* m_eveWindow;
51 
52  ViewFrame(TEveCompositeFrameInMainFrame* f, std::unique_ptr<FWDetailViewBase> v, TEveWindow* w);
53  ~ViewFrame();
54  ViewFrame(const ViewFrame&) = delete;
55  ViewFrame& operator=(const ViewFrame&) = delete;
56  ViewFrame(ViewFrame&&) = default;
57  ViewFrame& operator=(ViewFrame&&) = default;
58  };
59 
60  FWDetailViewManager(const FWDetailViewManager&) = delete; // stop default
61  const FWDetailViewManager& operator=(const FWDetailViewManager&) = delete; // stop default
62 
63 protected:
65 
66 private:
67  std::vector<std::string> findViewersFor(const std::string&) const;
68 
69  typedef std::vector<ViewFrame> vViews_t;
70  typedef vViews_t::iterator vViews_i;
72 
73  mutable std::map<std::string, std::vector<std::string> > m_typeToViewers;
74 };
75 
76 #endif
std::unique_ptr< FWDetailViewBase > m_detailView
T w() const
vViews_t::iterator vViews_i
std::vector< std::string > detailViewsFor(const FWModelId &) const
std::vector< std::string > findViewersFor(const std::string &) const
std::vector< ViewFrame > vViews_t
void eveWindowDestroyed(TEveWindow *)
const FWDetailViewManager & operator=(const FWDetailViewManager &)=delete
std::map< std::string, std::vector< std::string > > m_typeToViewers
double f[11][100]
fireworks::Context * m_context
ViewFrame & operator=(const ViewFrame &)=delete
ViewFrame(TEveCompositeFrameInMainFrame *f, std::unique_ptr< FWDetailViewBase > v, TEveWindow *w)
void openDetailViewFor(const FWModelId &, const std::string &)
FWDetailViewManager(fireworks::Context *)
TEveCompositeFrameInMainFrame * m_eveFrame