Mercurial > hg > orthanc-stone
comparison Applications/Samples/SampleApplicationBase.h @ 326:612238b3f3e8 am-2
all 4 samples now working in Qt, SDL and wasm
author | am@osimis.io |
---|---|
date | Tue, 16 Oct 2018 12:57:38 +0200 |
parents | be2660b6e40a |
children | c7fdc8bac581 |
comparison
equal
deleted
inserted
replaced
325:37ab9d83dc9b | 326:612238b3f3e8 |
---|---|
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "../../Applications/IStoneApplication.h" | 24 #include "../../Applications/IStoneApplication.h" |
25 #include "../../Framework/Widgets/LayerWidget.h" | |
26 | |
27 #if ORTHANC_ENABLE_WASM==1 | |
28 #include "../../Platforms/Wasm/WasmPlatformApplicationAdapter.h" | |
29 #include "../../Platforms/Wasm/Defaults.h" | |
30 #endif | |
31 | |
32 #if ORTHANC_ENABLE_QT==1 | |
33 #include "Qt/SampleMainWindow.h" | |
34 #include "Qt/SampleMainWindowWithButtons.h" | |
35 #endif | |
25 | 36 |
26 namespace OrthancStone | 37 namespace OrthancStone |
27 { | 38 { |
28 namespace Samples | 39 namespace Samples |
29 { | 40 { |
30 class SampleApplicationBase : public IStoneApplication | 41 class SampleApplicationBase : public IStoneApplication |
31 { | 42 { |
32 protected: | 43 protected: |
33 BaseCommandBuilder commandBuilder_; | 44 BaseCommandBuilder commandBuilder_; |
45 LayerWidget* mainWidget_; // ownership is transfered to the application context | |
46 | |
34 public: | 47 public: |
35 virtual void Initialize(StoneApplicationContext* context, | 48 virtual void Initialize(StoneApplicationContext* context, |
36 IStatusBar& statusBar, | 49 IStatusBar& statusBar, |
37 const boost::program_options::variables_map& parameters) | 50 const boost::program_options::variables_map& parameters) |
38 { | 51 { |
41 virtual std::string GetTitle() const | 54 virtual std::string GetTitle() const |
42 { | 55 { |
43 return "Stone of Orthanc - Sample"; | 56 return "Stone of Orthanc - Sample"; |
44 } | 57 } |
45 | 58 |
59 virtual BaseCommandBuilder& GetCommandBuilder() {return commandBuilder_;} | |
60 | |
61 virtual void Finalize() {} | |
62 virtual IWidget* GetCentralWidget() {return mainWidget_;} | |
63 | |
64 #if ORTHANC_ENABLE_WASM==1 | |
65 // default implementations for a single canvas named "canvas" in the HTML and an emtpy WasmApplicationAdapter | |
66 | |
67 virtual void InitializeWasm() | |
68 { | |
69 AttachWidgetToWasmViewport("canvas", mainWidget_); | |
70 } | |
71 | |
72 virtual WasmPlatformApplicationAdapter* CreateWasmApplicationAdapter(MessageBroker& broker) | |
73 { | |
74 return new WasmPlatformApplicationAdapter(broker, *this); | |
75 } | |
76 #endif | |
77 | |
78 }; | |
79 | |
80 // this application actually works in Qt and WASM | |
81 class SampleSingleCanvasWithButtonsApplicationBase : public SampleApplicationBase | |
82 { | |
83 public: | |
46 virtual void OnPushButton1Clicked() {} | 84 virtual void OnPushButton1Clicked() {} |
47 virtual void OnPushButton2Clicked() {} | 85 virtual void OnPushButton2Clicked() {} |
48 virtual void OnTool1Clicked() {} | 86 virtual void OnTool1Clicked() {} |
49 virtual void OnTool2Clicked() {} | 87 virtual void OnTool2Clicked() {} |
50 | 88 |
57 pushButton2 = "action2"; | 95 pushButton2 = "action2"; |
58 tool1 = "tool1"; | 96 tool1 = "tool1"; |
59 tool2 = "tool2"; | 97 tool2 = "tool2"; |
60 } | 98 } |
61 | 99 |
62 virtual BaseCommandBuilder& GetCommandBuilder() {return commandBuilder_;} | 100 #if ORTHANC_ENABLE_QT==1 |
101 virtual QStoneMainWindow* CreateQtMainWindow() { | |
102 return new SampleMainWindowWithButtons(dynamic_cast<OrthancStone::NativeStoneApplicationContext&>(*context_), *this); | |
103 } | |
104 #endif | |
63 | 105 |
106 }; | |
107 | |
108 // this application actually works in SDL and WASM | |
109 class SampleSingleCanvasApplicationBase : public SampleApplicationBase | |
110 { | |
111 public: | |
112 | |
113 #if ORTHANC_ENABLE_QT==1 | |
114 virtual QStoneMainWindow* CreateQtMainWindow() { | |
115 return new SampleMainWindow(dynamic_cast<OrthancStone::NativeStoneApplicationContext&>(*context_), *this); | |
116 } | |
117 #endif | |
64 }; | 118 }; |
65 } | 119 } |
66 } | 120 } |