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);