comparison Framework/Viewport/WidgetViewport.h @ 61:ca644004d2ee wasm

MAJOR - removal of Start/Stop and observers in IWidget
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 10 May 2017 17:55:13 +0200
parents c2dc924f1a63
children 298f375dcb68
comparison
equal deleted inserted replaced
60:288c948199e5 61:ca644004d2ee
27 27
28 #include <memory> 28 #include <memory>
29 29
30 namespace OrthancStone 30 namespace OrthancStone
31 { 31 {
32 class WidgetViewport : 32 class WidgetViewport : public IViewport
33 public IViewport,
34 public IWidget::IChangeObserver
35 { 33 {
36 private: 34 private:
37 std::auto_ptr<IWidget> centralWidget_; 35 std::auto_ptr<IWidget> centralWidget_;
38 IStatusBar* statusBar_; 36 IStatusBar* statusBar_;
39 ObserversRegistry<IViewport> observers_; 37 ObserversRegistry<IViewport> observers_;
41 bool isMouseOver_; 39 bool isMouseOver_;
42 int lastMouseX_; 40 int lastMouseX_;
43 int lastMouseY_; 41 int lastMouseY_;
44 CairoSurface background_; 42 CairoSurface background_;
45 bool backgroundChanged_; 43 bool backgroundChanged_;
46 bool started_;
47
48 void UnregisterCentralWidget();
49 44
50 public: 45 public:
51 WidgetViewport(); 46 WidgetViewport();
52 47
53 virtual ~WidgetViewport() 48 virtual void SetDefaultView();
54 {
55 UnregisterCentralWidget();
56 }
57 49
58 virtual void SetStatusBar(IStatusBar& statusBar); 50 virtual void SetStatusBar(IStatusBar& statusBar);
59
60 virtual void ResetStatusBar();
61 51
62 IWidget& SetCentralWidget(IWidget* widget); // Takes ownership 52 IWidget& SetCentralWidget(IWidget* widget); // Takes ownership
63 53
64 virtual void NotifyChange(const IWidget& widget); 54 virtual void NotifyChange(const IWidget& widget);
65 55
66 virtual void Register(IViewport::IChangeObserver& observer) 56 virtual void Register(IViewport::IChangeObserver& observer)
67 { 57 {
68 observers_.Register(observer); 58 observers_.Register(observer);
69 } 59 }
70
71 virtual void Unregister(IViewport::IChangeObserver& observer)
72 {
73 observers_.Unregister(observer);
74 }
75
76 virtual void Start();
77
78 virtual void Stop();
79 60
80 virtual void SetSize(unsigned int width, 61 virtual void SetSize(unsigned int width,
81 unsigned int height); 62 unsigned int height);
82 63
83 virtual bool Render(Orthanc::ImageAccessor& surface); 64 virtual bool Render(Orthanc::ImageAccessor& surface);