comparison Framework/Deprecated/Widgets/IWidget.h @ 754:92c400a09f1b

Merge from default
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 22 May 2019 16:13:46 +0200
parents c35e98d22764
children 2d8ab34c8c91
comparison
equal deleted inserted replaced
753:a386bbc955dc 754:92c400a09f1b
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-2019 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
22 #pragma once
23
24 #include "../../StoneEnumerations.h"
25 #include "../Viewport/IMouseTracker.h"
26 #include "../Viewport/IStatusBar.h"
27
28 namespace Deprecated
29 {
30 class WidgetViewport; // Forward declaration
31
32 class IWidget : public boost::noncopyable
33 {
34 public:
35 virtual ~IWidget()
36 {
37 }
38
39 virtual void FitContent() = 0;
40
41 virtual void SetParent(IWidget& parent) = 0;
42
43 virtual void SetViewport(WidgetViewport& viewport) = 0;
44
45 virtual void SetStatusBar(IStatusBar& statusBar) = 0;
46
47 virtual void SetSize(unsigned int width,
48 unsigned int height) = 0;
49
50 virtual bool Render(Orthanc::ImageAccessor& surface) = 0;
51
52 virtual IMouseTracker* CreateMouseTracker(OrthancStone::MouseButton button,
53 int x,
54 int y,
55 OrthancStone::KeyboardModifiers modifiers,
56 const std::vector<Touch>& touches) = 0;
57
58 virtual void RenderMouseOver(Orthanc::ImageAccessor& target,
59 int x,
60 int y) = 0;
61
62 virtual bool HasRenderMouseOver() = 0;
63
64 virtual void MouseWheel(OrthancStone::MouseWheelDirection direction,
65 int x,
66 int y,
67 OrthancStone::KeyboardModifiers modifiers) = 0;
68
69 virtual void KeyPressed(OrthancStone::KeyboardKeys key,
70 char keyChar,
71 OrthancStone::KeyboardModifiers modifiers) = 0;
72
73 virtual bool HasAnimation() const = 0;
74
75 virtual void DoAnimation() = 0;
76
77 // Subclasses can call this method to signal the display of the
78 // widget must be refreshed
79 virtual void NotifyContentChanged() = 0;
80 };
81 }