comparison Applications/Samples/Deprecated/SimpleViewer/MainWidgetInteractor.cpp @ 1347:bfd77672d825 broker

Moved Application/Samples/* to Application/Samples/Deprecated/*
author Benjamin Golinvaux <bgo@osimis.io>
date Tue, 07 Apr 2020 14:29:01 +0200
parents Applications/Samples/SimpleViewer/MainWidgetInteractor.cpp@2d8ab34c8c91
children
comparison
equal deleted inserted replaced
1346:df8bf351c23f 1347:bfd77672d825
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21 #include "MainWidgetInteractor.h"
22
23 #include "SimpleViewerApplication.h"
24
25 namespace SimpleViewer {
26
27 Deprecated::IWorldSceneMouseTracker* MainWidgetInteractor::CreateMouseTracker(Deprecated::WorldSceneWidget& widget,
28 const Deprecated::ViewportGeometry& view,
29 MouseButton button,
30 KeyboardModifiers modifiers,
31 int viewportX,
32 int viewportY,
33 double x,
34 double y,
35 Deprecated::IStatusBar* statusBar,
36 const std::vector<Deprecated::Touch>& displayTouches)
37 {
38 if (button == MouseButton_Left)
39 {
40 if (application_.GetCurrentTool() == Tool_LineMeasure)
41 {
42 return new Deprecated::LineMeasureTracker(statusBar, dynamic_cast<Deprecated::SliceViewerWidget&>(widget).GetSlice(),
43 x, y, 255, 0, 0, application_.GetFont());
44 }
45 else if (application_.GetCurrentTool() == Tool_CircleMeasure)
46 {
47 return new Deprecated::CircleMeasureTracker(statusBar, dynamic_cast<Deprecated::SliceViewerWidget&>(widget).GetSlice(),
48 x, y, 255, 0, 0, application_.GetFont());
49 }
50 else if (application_.GetCurrentTool() == Tool_Crop)
51 {
52 // TODO
53 }
54 else if (application_.GetCurrentTool() == Tool_Windowing)
55 {
56 // TODO
57 }
58 else if (application_.GetCurrentTool() == Tool_Zoom)
59 {
60 // TODO
61 }
62 else if (application_.GetCurrentTool() == Tool_Pan)
63 {
64 // TODO
65 }
66 }
67 return NULL;
68 }
69
70 void MainWidgetInteractor::MouseOver(CairoContext& context,
71 Deprecated::WorldSceneWidget& widget,
72 const Deprecated::ViewportGeometry& view,
73 double x,
74 double y,
75 Deprecated::IStatusBar* statusBar)
76 {
77 if (statusBar != NULL)
78 {
79 Vector p = dynamic_cast<Deprecated::SliceViewerWidget&>(widget).GetSlice().MapSliceToWorldCoordinates(x, y);
80
81 char buf[64];
82 sprintf(buf, "X = %.02f Y = %.02f Z = %.02f (in cm)",
83 p[0] / 10.0, p[1] / 10.0, p[2] / 10.0);
84 statusBar->SetMessage(buf);
85 }
86 }
87
88 void MainWidgetInteractor::MouseWheel(Deprecated::WorldSceneWidget& widget,
89 MouseWheelDirection direction,
90 KeyboardModifiers modifiers,
91 Deprecated::IStatusBar* statusBar)
92 {
93 }
94
95 void MainWidgetInteractor::KeyPressed(Deprecated::WorldSceneWidget& widget,
96 KeyboardKeys key,
97 char keyChar,
98 KeyboardModifiers modifiers,
99 Deprecated::IStatusBar* statusBar)
100 {
101 switch (keyChar)
102 {
103 case 's':
104 widget.FitContent();
105 break;
106
107 default:
108 break;
109 }
110 }
111 }