comparison Platforms/WebAssembly/Defaults.h @ 222:84844649a8fd am

continued: reusable applications
author am@osimis.io
date Tue, 12 Jun 2018 17:21:15 +0200
parents
children d30a10d574ec
comparison
equal deleted inserted replaced
221:d7b2590744f8 222:84844649a8fd
1 #pragma once
2
3 #include <Framework/dev.h>
4 #include <Framework/Viewport/WidgetViewport.h>
5 #include <Framework/Widgets/LayerWidget.h>
6 #include <Framework/Widgets/LayoutWidget.h>
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 extern void ScheduleRedraw();
13
14 #ifdef __cplusplus
15 }
16 #endif
17
18
19 namespace OrthancStone {
20
21 class ChangeObserver :
22 public OrthancStone::IViewport::IObserver
23 {
24 private:
25 // Flag to avoid flooding JavaScript with redundant Redraw requests
26 bool isScheduled_;
27
28 public:
29 ChangeObserver() :
30 isScheduled_(false)
31 {
32 }
33
34 void Reset()
35 {
36 isScheduled_ = false;
37 }
38
39 virtual void NotifyChange(const OrthancStone::IViewport &scene)
40 {
41 if (!isScheduled_)
42 {
43 ScheduleRedraw();
44 isScheduled_ = true;
45 }
46 }
47 };
48
49
50 class StatusBar : public OrthancStone::IStatusBar
51 {
52 public:
53 virtual void ClearMessage()
54 {
55 }
56
57 virtual void SetMessage(const std::string& message)
58 {
59 printf("%s\n", message.c_str());
60 }
61 };
62 }