comparison Applications/Samples/SimpleViewer/SimpleViewerApplication.h @ 527:b1377625e4ba bgo-commands-codegen

Removed ICommand and friends + fixed warnings + added missing header files in solution (in CMakeLists.txt file)
author Benjamin Golinvaux <bgo@osimis.io>
date Sun, 17 Mar 2019 20:14:20 +0100
parents b70e9be013e4
children 79bb0a02d1cc
comparison
equal deleted inserted replaced
522:700aa66f2f29 527:b1377625e4ba
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23
24 /*
25 This header contains the command definitions for the sample applications
26 */
27 #include "Applications/Samples/StoneSampleCommands_generated.hpp"
28 using namespace StoneSampleCommands;
23 29
24 #include "Applications/IStoneApplication.h" 30 #include "Applications/IStoneApplication.h"
25 31
26 #include "Framework/Layers/CircleMeasureTracker.h" 32 #include "Framework/Layers/CircleMeasureTracker.h"
27 #include "Framework/Layers/LineMeasureTracker.h" 33 #include "Framework/Layers/LineMeasureTracker.h"
51 57
52 58
53 namespace SimpleViewer 59 namespace SimpleViewer
54 { 60 {
55 61
56 class SimpleViewerApplication : 62 class SimpleViewerApplication
57 public IStoneApplication, 63 : public IStoneApplication
58 public IObserver, 64 , public IObserver
59 public IObservable 65 , public IObservable
66 , public StoneSampleCommands::IHandler
60 { 67 {
61 public: 68 public:
62 69
63 struct StatusUpdatedMessage : public BaseMessage<SimpleViewerMessageType_AppStatusUpdated> 70 struct StatusUpdatedMessage : public BaseMessage<SimpleViewerMessageType_AppStatusUpdated>
64 { 71 {
69 status_(status) 76 status_(status)
70 { 77 {
71 } 78 }
72 }; 79 };
73 80
74 enum Tools { 81 private:
75 Tools_LineMeasure, 82 Tool currentTool_;
76 Tools_CircleMeasure,
77 Tools_Crop,
78 Tools_Windowing,
79 Tools_Zoom,
80 Tools_Pan
81 };
82 83
83 enum Actions {
84 Actions_Rotate,
85 Actions_Invert,
86 Actions_UndoCrop
87 };
88
89 private:
90 Tools currentTool_;
91 std::auto_ptr<MainWidgetInteractor> mainWidgetInteractor_; 84 std::auto_ptr<MainWidgetInteractor> mainWidgetInteractor_;
92 std::auto_ptr<ThumbnailInteractor> thumbnailInteractor_; 85 std::auto_ptr<ThumbnailInteractor> thumbnailInteractor_;
93 LayoutWidget* mainLayout_; 86 LayoutWidget* mainLayout_;
94 LayoutWidget* thumbnailsLayout_; 87 LayoutWidget* thumbnailsLayout_;
95 SliceViewerWidget* mainWidget_; 88 SliceViewerWidget* mainWidget_;
96 std::vector<SliceViewerWidget*> thumbnails_; 89 std::vector<SliceViewerWidget*> thumbnails_;
97 std::map<std::string, std::vector<std::string> > instancesIdsPerSeriesId_; 90 std::map<std::string, std::vector<std::string> > instancesIdsPerSeriesId_;
98 std::map<std::string, Json::Value> seriesTags_; 91 std::map<std::string, Json::Value> seriesTags_;
99 BaseCommandBuilder commandBuilder_;
100
101 unsigned int currentInstanceIndex_; 92 unsigned int currentInstanceIndex_;
102 OrthancStone::WidgetViewport* wasmViewport1_; 93 OrthancStone::WidgetViewport* wasmViewport1_;
103 OrthancStone::WidgetViewport* wasmViewport2_; 94 OrthancStone::WidgetViewport* wasmViewport2_;
104 95
105 IStatusBar* statusBar_; 96 IStatusBar* statusBar_;
109 100
110 public: 101 public:
111 SimpleViewerApplication(MessageBroker& broker) : 102 SimpleViewerApplication(MessageBroker& broker) :
112 IObserver(broker), 103 IObserver(broker),
113 IObservable(broker), 104 IObservable(broker),
114 currentTool_(Tools_LineMeasure), 105 currentTool_(StoneSampleCommands::Tool_LineMeasure),
115 mainLayout_(NULL), 106 mainLayout_(NULL),
116 currentInstanceIndex_(0), 107 currentInstanceIndex_(0),
117 wasmViewport1_(NULL), 108 wasmViewport1_(NULL),
118 wasmViewport2_(NULL) 109 wasmViewport2_(NULL)
119 { 110 {
140 131
141 void OnWidgetGeometryChanged(const SliceViewerWidget::GeometryChangedMessage& message); 132 void OnWidgetGeometryChanged(const SliceViewerWidget::GeometryChangedMessage& message);
142 133
143 void SelectSeriesInMainViewport(const std::string& seriesId); 134 void SelectSeriesInMainViewport(const std::string& seriesId);
144 135
145 void SelectTool(Tools tool); 136
146 137 Tool GetCurrentTool() const
147 Tools GetCurrentTool() const
148 { 138 {
149 return currentTool_; 139 return currentTool_;
150 } 140 }
151 141
152 const Orthanc::Font& GetFont() const 142 const Orthanc::Font& GetFont() const
153 { 143 {
154 return font_; 144 return font_;
155 } 145 }
156 146
157 void ExecuteAction(Actions action); 147 // ExecuteAction method was empty (its body was a single "TODO" comment)
148 virtual bool Handle(const SelectTool& value) ORTHANC_OVERRIDE;
149 virtual bool Handle(const Action& value) ORTHANC_OVERRIDE;
150
151 template<typename T>
152 bool ExecuteCommand(const T& cmd)
153 {
154 std::string cmdStr = StoneSampleCommands::StoneSerialize(cmd);
155 return StoneSampleCommands::StoneDispatchToHandler(cmdStr, this);
156 }
158 157
159 virtual std::string GetTitle() const {return "SimpleViewer";} 158 virtual std::string GetTitle() const {return "SimpleViewer";}
160 virtual void ExecuteCommand(ICommand& command);
161 virtual BaseCommandBuilder& GetCommandBuilder() {return commandBuilder_;}
162
163 159
164 #if ORTHANC_ENABLE_WASM==1 160 #if ORTHANC_ENABLE_WASM==1
165 virtual void InitializeWasm(); 161 virtual void InitializeWasm();
166 #endif 162 #endif
167 163