MeshLib
 
Loading...
Searching...
No Matches
MRViewerEventsListener.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRViewerFwd.h"
4#include "MRMesh/MRVector3.h"
5#include "MRMesh/MRSignal.h"
6#include <filesystem>
7#include <vector>
8
9namespace MR
10{
11
13{
14 virtual ~IConnectable() = default;
15 virtual void connect( Viewer* viewer, int group = 0, boost::signals2::connect_position pos = boost::signals2::connect_position::at_back ) = 0;
16 virtual void disconnect() = 0;
17};
18
20{
21 virtual ~ConnectionHolder() = default;
22 virtual void disconnect() { connection_.disconnect(); }
23protected:
24 boost::signals2::scoped_connection connection_;
25};
26
27template<typename ...Connectables>
28struct MultiListener : Connectables...
29{
30 static_assert( ( std::is_base_of_v<IConnectable, Connectables> && ... ),
31 "Base classes must be children of IConnectable" );
32
33 virtual ~MultiListener() = default;
34
35 virtual void connect(
36 [[maybe_unused]] Viewer* viewer, // unused if Connectables is empty
37 [[maybe_unused]] int group = 0,
38 [[maybe_unused]] boost::signals2::connect_position pos = boost::signals2::connect_position::at_back )
39 {
40 ( Connectables::connect( viewer, group, pos ), ... );
41 }
42 virtual void disconnect()
43 {
44 // disconnect in reversed order
45 [[maybe_unused]] int dummy;
46 (void)( dummy = ... = ( Connectables::disconnect(), 0 ) );
47 }
48};
49
50struct MRVIEWER_CLASS MouseDownListener : ConnectionHolder
51{
53 virtual ~MouseDownListener() = default;
54 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
55protected:
56 virtual bool onMouseDown_( MouseButton btn, int modifiers ) = 0;
57};
58
59struct MRVIEWER_CLASS MouseUpListener : ConnectionHolder
60{
62 virtual ~MouseUpListener() = default;
63 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
64protected:
65 virtual bool onMouseUp_( MouseButton btn, int modifiers ) = 0;
66};
67
68struct MRVIEWER_CLASS MouseMoveListener : ConnectionHolder
69{
71 virtual ~MouseMoveListener() = default;
72 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
73protected:
74 virtual bool onMouseMove_( int x, int y ) = 0;
75};
76
78{
80 virtual ~MouseScrollListener() = default;
81 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
82protected:
83 virtual bool onMouseScroll_( float delta ) = 0;
84};
85
86struct MRVIEWER_CLASS MouseClickListener : ConnectionHolder
87{
89 virtual ~MouseClickListener() = default;
90 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
91protected:
92 virtual bool onMouseClick_( MouseButton btn, int modifiers ) = 0;
93};
94
95struct MRVIEWER_CLASS DragStartListener : ConnectionHolder
96{
98 virtual ~DragStartListener() = default;
99 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
100protected:
101 virtual bool onDragStart_( MouseButton btn, int modifiers ) = 0;
102};
103
104struct MRVIEWER_CLASS DragEndListener : ConnectionHolder
105{
107 virtual ~DragEndListener() = default;
108 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
109protected:
110 virtual bool onDragEnd_( MouseButton btn, int modifiers ) = 0;
111};
112
113struct MRVIEWER_CLASS DragListener : ConnectionHolder
114{
116 virtual ~DragListener() = default;
117 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
118protected:
119 virtual bool onDrag_( int x, int y ) = 0;
120};
121
123{
125 virtual ~CharPressedListener() = default;
126 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
127protected:
128 virtual bool onCharPressed_( unsigned charKey, int modifier ) = 0;
129};
130
131struct MRVIEWER_CLASS KeyUpListener : ConnectionHolder
132{
134 virtual ~KeyUpListener() = default;
135 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
136protected:
137 virtual bool onKeyUp_( int key, int modifier ) = 0;
138};
139
140struct MRVIEWER_CLASS KeyDownListener : ConnectionHolder
141{
143 virtual ~KeyDownListener() = default;
144 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
145protected:
146 virtual bool onKeyDown_( int key, int modifier ) = 0;
147};
148
149struct MRVIEWER_CLASS KeyRepeatListener : ConnectionHolder
150{
152 virtual ~KeyRepeatListener() = default;
153 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
154protected:
155 virtual bool onKeyRepeat_( int key, int modifier ) = 0;
156};
157
158struct MRVIEWER_CLASS PreDrawListener : ConnectionHolder
159{
161 virtual ~PreDrawListener() = default;
162 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
163protected:
164 virtual void preDraw_() = 0;
165};
166
167struct MRVIEWER_CLASS DrawListener : ConnectionHolder
168{
170 virtual ~DrawListener() = default;
171 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
172protected:
173 virtual void draw_() = 0;
174};
175
176struct MRVIEWER_CLASS PostDrawListener : ConnectionHolder
177{
179 virtual ~PostDrawListener() = default;
180 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
181protected:
182 virtual void postDraw_() = 0;
183};
184
185struct MRVIEWER_CLASS DragDropListener : ConnectionHolder
186{
188 virtual ~DragDropListener() = default;
189 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
190protected:
191 virtual bool dragDrop_( const std::vector<std::filesystem::path>& paths ) = 0;
192};
193
195{
197 virtual ~PostResizeListener() = default;
198 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
199protected:
200 virtual void postResize_( int w, int h ) = 0;
201};
202
204{
206 virtual ~InterruptCloseListener() = default;
207 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
208protected:
209 virtual bool interruptClose_() = 0;
210};
211
213{
215 virtual ~PostRescaleListener() = default;
216 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
217protected:
218 virtual void postRescale_( float x, float y ) = 0;
219};
220
222{
224 virtual ~TouchStartListener() = default;
225 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
226protected:
227 virtual bool onTouchStart_( int id, int x, int y ) = 0;
228};
229
230struct MRVIEWER_CLASS TouchMoveListener : ConnectionHolder
231{
233 virtual ~TouchMoveListener() = default;
234 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
235protected:
236 virtual bool onTouchMove_( int id, int x, int y ) = 0;
237};
238
239struct MRVIEWER_CLASS TouchEndListener : ConnectionHolder
240{
242 virtual ~TouchEndListener() = default;
243 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
244protected:
245 virtual bool onTouchEnd_( int id, int x, int y ) = 0;
246};
247
250{
252 virtual ~SpaceMouseMoveListener() = default;
253 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
254protected:
255 virtual bool spaceMouseMove_( const Vector3f& translate, const Vector3f& rotate ) = 0;
256};
257
260{
262 virtual ~SpaceMouseDownListener() = default;
263 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
264protected:
265 virtual bool spaceMouseDown_( int key ) = 0;
266};
267
270{
272 virtual ~SpaceMouseUpListener() = default;
273 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
274protected:
275 virtual bool spaceMouseUp_( int key ) = 0;
276};
277
280{
283 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
284protected:
285 virtual bool touchpadRotateGestureBegin_() = 0;
286};
287
290{
293 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
294protected:
295 virtual bool touchpadRotateGestureUpdate_( float angle ) = 0;
296};
297
300{
303 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
304protected:
305 virtual bool touchpadRotateGestureEnd_() = 0;
306};
307
310{
313 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
314protected:
315 virtual bool touchpadSwipeGestureBegin_() = 0;
316};
317
320{
323 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
324protected:
325 virtual bool touchpadSwipeGestureUpdate_( float dx, float dy, bool kinetic ) = 0;
326};
327
330{
333 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
334protected:
335 virtual bool touchpadSwipeGestureEnd_() = 0;
336};
337
340{
343 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
344protected:
345 virtual bool touchpadZoomGestureBegin_() = 0;
346};
347
350{
353 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
354protected:
355 virtual bool touchpadZoomGestureUpdate_( float scale, bool kinetic ) = 0;
356};
357
360{
363 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
364protected:
365 virtual bool touchpadZoomGestureEnd_() = 0;
366};
367
369struct MRVIEWER_CLASS PostFocusListener : ConnectionHolder
370{
372 virtual ~PostFocusListener() = default;
373 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
374protected:
375 virtual void postFocus_( bool focused ) = 0;
376};
377
380{
382 virtual ~CursorEntranceListener() = default;
383 MRVIEWER_API virtual void connect( Viewer* viewer, int group, boost::signals2::connect_position pos ) override;
384protected:
385 virtual void cursorEntrance_( bool enter ) = 0;
386};
387
388}
angle
Definition MRObjectDimensionsEnum.h:13
Definition MRViewer.h:80
represents a 3-dimentional float-typed vector
Definition MRDotNet/MRVector3.h:8
Definition MRCameraOrientationPlugin.h:7
MouseButton
Definition MRMouse.h:9
Definition MRViewerEventsListener.h:123
virtual bool onCharPressed_(unsigned charKey, int modifier)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(CharPressedListener)
virtual ~CharPressedListener()=default
Definition MRViewerEventsListener.h:20
boost::signals2::scoped_connection connection_
Definition MRViewerEventsListener.h:24
virtual ~ConnectionHolder()=default
virtual void disconnect()
Definition MRViewerEventsListener.h:22
class to subscribe on CursorEntranceSingal
Definition MRViewerEventsListener.h:380
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(CursorEntranceListener)
virtual ~CursorEntranceListener()=default
virtual void cursorEntrance_(bool enter)=0
Definition MRViewerEventsListener.h:186
virtual bool dragDrop_(const std::vector< std::filesystem::path > &paths)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~DragDropListener()=default
MR_ADD_CTOR_DELETE_MOVE(DragDropListener)
Definition MRViewerEventsListener.h:105
virtual ~DragEndListener()=default
MR_ADD_CTOR_DELETE_MOVE(DragEndListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool onDragEnd_(MouseButton btn, int modifiers)=0
Definition MRViewerEventsListener.h:114
MR_ADD_CTOR_DELETE_MOVE(DragListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~DragListener()=default
virtual bool onDrag_(int x, int y)=0
Definition MRViewerEventsListener.h:96
virtual ~DragStartListener()=default
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(DragStartListener)
virtual bool onDragStart_(MouseButton btn, int modifiers)=0
Definition MRViewerEventsListener.h:168
virtual void draw_()=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(DrawListener)
virtual ~DrawListener()=default
Definition MRViewerEventsListener.h:13
virtual void connect(Viewer *viewer, int group=0, boost::signals2::connect_position pos=boost::signals2::connect_position::at_back)=0
virtual ~IConnectable()=default
virtual void disconnect()=0
Definition MRViewerEventsListener.h:204
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~InterruptCloseListener()=default
MR_ADD_CTOR_DELETE_MOVE(InterruptCloseListener)
virtual bool interruptClose_()=0
Definition MRViewerEventsListener.h:141
virtual bool onKeyDown_(int key, int modifier)=0
virtual ~KeyDownListener()=default
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(KeyDownListener)
Definition MRViewerEventsListener.h:150
virtual bool onKeyRepeat_(int key, int modifier)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(KeyRepeatListener)
virtual ~KeyRepeatListener()=default
Definition MRViewerEventsListener.h:132
virtual ~KeyUpListener()=default
MR_ADD_CTOR_DELETE_MOVE(KeyUpListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool onKeyUp_(int key, int modifier)=0
Definition MRViewerEventsListener.h:87
MR_ADD_CTOR_DELETE_MOVE(MouseClickListener)
virtual ~MouseClickListener()=default
virtual bool onMouseClick_(MouseButton btn, int modifiers)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
Definition MRViewerEventsListener.h:51
virtual ~MouseDownListener()=default
MR_ADD_CTOR_DELETE_MOVE(MouseDownListener)
virtual bool onMouseDown_(MouseButton btn, int modifiers)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
Definition MRViewerEventsListener.h:69
virtual ~MouseMoveListener()=default
virtual bool onMouseMove_(int x, int y)=0
MR_ADD_CTOR_DELETE_MOVE(MouseMoveListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
Definition MRViewerEventsListener.h:78
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool onMouseScroll_(float delta)=0
virtual ~MouseScrollListener()=default
MR_ADD_CTOR_DELETE_MOVE(MouseScrollListener)
Definition MRViewerEventsListener.h:60
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(MouseUpListener)
virtual bool onMouseUp_(MouseButton btn, int modifiers)=0
virtual ~MouseUpListener()=default
Definition MRViewerEventsListener.h:29
virtual ~MultiListener()=default
virtual void disconnect()
Definition MRViewerEventsListener.h:42
virtual void connect(Viewer *viewer, int group=0, boost::signals2::connect_position pos=boost::signals2::connect_position::at_back)
Definition MRViewerEventsListener.h:35
Definition MRViewerEventsListener.h:177
virtual void postDraw_()=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~PostDrawListener()=default
MR_ADD_CTOR_DELETE_MOVE(PostDrawListener)
class to subscribe on PostFocusSingal
Definition MRViewerEventsListener.h:370
virtual void postFocus_(bool focused)=0
MR_ADD_CTOR_DELETE_MOVE(PostFocusListener)
virtual ~PostFocusListener()=default
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
Definition MRViewerEventsListener.h:213
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual void postRescale_(float x, float y)=0
virtual ~PostRescaleListener()=default
MR_ADD_CTOR_DELETE_MOVE(PostRescaleListener)
Definition MRViewerEventsListener.h:195
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(PostResizeListener)
virtual ~PostResizeListener()=default
virtual void postResize_(int w, int h)=0
Definition MRViewerEventsListener.h:159
virtual ~PreDrawListener()=default
virtual void preDraw_()=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(PreDrawListener)
class to subscribe on SpaceMouseDownSgnal
Definition MRViewerEventsListener.h:260
virtual ~SpaceMouseDownListener()=default
virtual bool spaceMouseDown_(int key)=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(SpaceMouseDownListener)
class to subscribe on SpaceMouseMoveSignal
Definition MRViewerEventsListener.h:250
MR_ADD_CTOR_DELETE_MOVE(SpaceMouseMoveListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool spaceMouseMove_(const Vector3f &translate, const Vector3f &rotate)=0
virtual ~SpaceMouseMoveListener()=default
class to subscribe on SpaceMouseUpSignal
Definition MRViewerEventsListener.h:270
virtual ~SpaceMouseUpListener()=default
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(SpaceMouseUpListener)
virtual bool spaceMouseUp_(int key)=0
Definition MRViewerEventsListener.h:240
virtual bool onTouchEnd_(int id, int x, int y)=0
virtual ~TouchEndListener()=default
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(TouchEndListener)
Definition MRViewerEventsListener.h:231
virtual bool onTouchMove_(int id, int x, int y)=0
MR_ADD_CTOR_DELETE_MOVE(TouchMoveListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~TouchMoveListener()=default
Definition MRViewerEventsListener.h:222
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool onTouchStart_(int id, int x, int y)=0
MR_ADD_CTOR_DELETE_MOVE(TouchStartListener)
virtual ~TouchStartListener()=default
class to subscribe on TouchpadRotateGestureBeginEvent
Definition MRViewerEventsListener.h:280
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~TouchpadRotateGestureBeginListener()=default
MR_ADD_CTOR_DELETE_MOVE(TouchpadRotateGestureBeginListener)
class to subscribe on TouchpadRotateGestureEndEvent
Definition MRViewerEventsListener.h:300
virtual ~TouchpadRotateGestureEndListener()=default
MR_ADD_CTOR_DELETE_MOVE(TouchpadRotateGestureEndListener)
virtual bool touchpadRotateGestureEnd_()=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
class to subscribe on TouchpadRotateGestureUpdateEvent
Definition MRViewerEventsListener.h:290
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool touchpadRotateGestureUpdate_(float angle)=0
MR_ADD_CTOR_DELETE_MOVE(TouchpadRotateGestureUpdateListener)
virtual ~TouchpadRotateGestureUpdateListener()=default
class to subscribe on TouchpadSwipeGestureBeginEvent
Definition MRViewerEventsListener.h:310
virtual ~TouchpadSwipeGestureBeginListener()=default
MR_ADD_CTOR_DELETE_MOVE(TouchpadSwipeGestureBeginListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
class to subscribe on TouchpadSwipeGestureEndEvent
Definition MRViewerEventsListener.h:330
virtual bool touchpadSwipeGestureEnd_()=0
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(TouchpadSwipeGestureEndListener)
virtual ~TouchpadSwipeGestureEndListener()=default
class to subscribe on TouchpadSwipeGestureUpdateEvent
Definition MRViewerEventsListener.h:320
virtual ~TouchpadSwipeGestureUpdateListener()=default
MR_ADD_CTOR_DELETE_MOVE(TouchpadSwipeGestureUpdateListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual bool touchpadSwipeGestureUpdate_(float dx, float dy, bool kinetic)=0
class to subscribe on TouchpadZoomGestureBeginEvent
Definition MRViewerEventsListener.h:340
virtual ~TouchpadZoomGestureBeginListener()=default
virtual bool touchpadZoomGestureBegin_()=0
MR_ADD_CTOR_DELETE_MOVE(TouchpadZoomGestureBeginListener)
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
class to subscribe on TouchpadZoomGestureEndEvent
Definition MRViewerEventsListener.h:360
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
MR_ADD_CTOR_DELETE_MOVE(TouchpadZoomGestureEndListener)
virtual ~TouchpadZoomGestureEndListener()=default
virtual bool touchpadZoomGestureEnd_()=0
class to subscribe on TouchpadZoomGestureUpdateEvent
Definition MRViewerEventsListener.h:350
virtual MRVIEWER_API void connect(Viewer *viewer, int group, boost::signals2::connect_position pos) override
virtual ~TouchpadZoomGestureUpdateListener()=default
MR_ADD_CTOR_DELETE_MOVE(TouchpadZoomGestureUpdateListener)
virtual bool touchpadZoomGestureUpdate_(float scale, bool kinetic)=0