15 virtual void connect(
Viewer* viewer,
int group = 0, boost::signals2::connect_position pos = boost::signals2::connect_position::at_back ) = 0;
27template<
typename ...Connectables>
30 static_assert( ( std::is_base_of_v<IConnectable, Connectables> && ... ),
31 "Base classes must be children of IConnectable" );
36 [[maybe_unused]]
Viewer* viewer,
37 [[maybe_unused]]
int group = 0,
38 [[maybe_unused]] boost::signals2::connect_position pos = boost::signals2::connect_position::at_back )
40 ( Connectables::connect( viewer, group, pos ), ... );
45 [[maybe_unused]]
int dummy;
46 (void)( dummy = ... = ( Connectables::disconnect(), 0 ) );
54 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
63 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
72 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
81 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
90 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
99 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
108 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
117 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
126 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
135 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
137 virtual bool onKeyUp_(
int key,
int modifier ) = 0;
144 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
153 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
162 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
171 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
180 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
189 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
191 virtual bool dragDrop_(
const std::vector<std::filesystem::path>& paths ) = 0;
198 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
207 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
216 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
225 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
234 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
243 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
253 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
263 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
273 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
283 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
293 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
303 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
313 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
323 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
333 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
343 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
353 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
363 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
373 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
383 MRVIEWER_API
virtual void connect(
Viewer* viewer,
int group, boost::signals2::connect_position pos )
override;
angle
Definition MRObjectDimensionsEnum.h:13
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 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: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 bool touchpadRotateGestureBegin_()=0
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
virtual bool touchpadSwipeGestureBegin_()=0
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