Mercurial > hg > orthanc-stone
comparison Framework/Viewport/WidgetViewport.h @ 385:6cc3ce74dc05
using message broker in widgets
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 07 Nov 2018 20:49:41 +0100 |
parents | 7a364e44fbb4 |
children | e33659decec5 |
comparison
equal
deleted
inserted
replaced
384:d20d75f20c5d | 385:6cc3ce74dc05 |
---|---|
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "IViewport.h" | 24 #include "IViewport.h" |
25 #include "../Toolbox/ObserversRegistry.h" | |
26 #include "../Widgets/IWidget.h" | 25 #include "../Widgets/IWidget.h" |
27 | 26 |
28 #include <memory> | 27 #include <memory> |
29 | 28 |
30 namespace OrthancStone | 29 namespace OrthancStone |
32 class WidgetViewport : public IViewport | 31 class WidgetViewport : public IViewport |
33 { | 32 { |
34 private: | 33 private: |
35 std::auto_ptr<IWidget> centralWidget_; | 34 std::auto_ptr<IWidget> centralWidget_; |
36 IStatusBar* statusBar_; | 35 IStatusBar* statusBar_; |
37 ObserversRegistry<IViewport> observers_; | |
38 std::auto_ptr<IMouseTracker> mouseTracker_; | 36 std::auto_ptr<IMouseTracker> mouseTracker_; |
39 bool isMouseOver_; | 37 bool isMouseOver_; |
40 int lastMouseX_; | 38 int lastMouseX_; |
41 int lastMouseY_; | 39 int lastMouseY_; |
42 CairoSurface background_; | 40 CairoSurface background_; |
43 bool backgroundChanged_; | 41 bool backgroundChanged_; |
44 | 42 |
45 public: | 43 public: |
46 WidgetViewport(); | 44 WidgetViewport(MessageBroker& broker); |
47 | 45 |
48 virtual void FitContent(); | 46 virtual void FitContent(); |
49 | 47 |
50 virtual void SetStatusBar(IStatusBar& statusBar); | 48 virtual void SetStatusBar(IStatusBar& statusBar); |
51 | 49 |
52 IWidget& SetCentralWidget(IWidget* widget); // Takes ownership | 50 IWidget& SetCentralWidget(IWidget* widget); // Takes ownership |
53 | 51 |
54 virtual void NotifyContentChanged(const IWidget& widget); | 52 virtual void NotifyBackgroundChanged(); |
55 | |
56 virtual void Register(IObserver& observer) | |
57 { | |
58 observers_.Register(observer); | |
59 } | |
60 | 53 |
61 virtual void SetSize(unsigned int width, | 54 virtual void SetSize(unsigned int width, |
62 unsigned int height); | 55 unsigned int height); |
63 | 56 |
64 virtual bool Render(Orthanc::ImageAccessor& surface); | 57 virtual bool Render(Orthanc::ImageAccessor& surface); |