VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWidgetSignaler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
14 
15 #include <vrvUtil/signalslib.h>
16 #include <vrvUtil/event_signal.h>
18 
19 namespace makVrv
20 {
21  class DtWidgetSignaler;
22  class DtSharedSettingsManager;
23  class DtEventQueueInterface;
24 
28  {
29  public:
30 
32  void connectAll(DtWidgetEventSignals& emmitter);
33 
35  boost::signalslib::signal<void (int x, int y)> signal_mouseEnter;
36 
38  boost::signalslib::signal<void (int x, int y)> signal_mouseMove;
39 
41  boost::signalslib::signal<void ()> signal_mouseLeave;
42 
44  boost::signalslib::signal<void (int button)> signal_mouseButtonPress;
45 
47  boost::signalslib::signal<void (int button)> signal_mouseButtonRelease;
48 
49  protected:
50  void emitMouseEnter(int x, int y);
51  void emitMouseMove(int x,int y);
52  void emitMouseLeave();
53  void emitMouseButtonPress(int button);
54  void emitMouseButtonRelease(int button);
55 
56  };
57 
61  {
62  public:
67  const DtUniqueID& widgetId);
68 
70  virtual ~DtWidgetInstanceSignaler();
71 
73  const DtUniqueID& widgetId() const;
74 
75  protected:
78  };
79 
87  {
88  public:
89 
91  friend class DtWidgetPicker;
92 
95  static DtWidgetSignaler& instance(const DtSharedSettingsManager&);
96 
99  static DtWidgetSignaler& instance(DtEventQueueInterface&);
100 
104  static DtWidgetSignaler* findInstance(DtEventQueueInterface*);
105 
107  virtual ~DtWidgetSignaler();
108 
109  void emitMouseEntered(DtUniqueID, int x, int y);
110  void emitMouseMoved(DtUniqueID, int x, int y);
111  void emitMouseLeft(DtUniqueID);
112  void emitMouseButtonPressed(DtUniqueID, int button);
113  void emitMouseButtonReleased(DtUniqueID, int button);
114 
115 
123 
124  protected:
125 
126  void dispatch_mouseEntered(DtUniqueID, int x, int y);
127  void dispatch_mouseMoved(DtUniqueID, int x, int y);
128  void dispatch_mouseLeft(DtUniqueID);
129  void dispatch_mouseButtonPressed(DtUniqueID,int button);
130  void dispatch_mouseButtonReleased(DtUniqueID,int button);
131 
132 
133  protected:
135 
136  void addInstance(DtWidgetInstanceSignaler*);
137  void removeInstance(DtWidgetInstanceSignaler*);
138 
139  typedef std::map<DtUniqueID,DtWidgetInstanceSignaler*> WidgetInstanceMap;
141 
142  private:
144  DtWidgetSignaler& operator=(const DtWidgetSignaler&);
145  };
146 
147 }
148 
DtWidgetSignaler & mySignaler
Definition: DtWidgetSignaler.h:77
WidgetInstanceMap myInstances
Definition: DtWidgetSignaler.h:140
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< DtUniqueID, DtWidgetInstanceSignaler * > WidgetInstanceMap
Definition: DtWidgetSignaler.h:139
A signaler class for a particular widget instance with the provided DtUniqueID.
Definition: DtWidgetSignaler.h:60
boost::signalslib::signal< void(int x, int y)> signal_mouseMove
Emitted when the mouse moves over the widget.
Definition: DtWidgetSignaler.h:38
boost::signalslib::signal< void()> signal_mouseLeave
Emitted when the mouse leaves the widget.
Definition: DtWidgetSignaler.h:41
event_signal< void(DtUniqueID) > signal_mouseLeft
Definition: DtWidgetSignaler.h:120
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtUniqueID myWidgetId
Definition: DtWidgetSignaler.h:76
boost::signalslib::signal< void(int button)> signal_mouseButtonRelease
Emitted when a mouse button is released.
Definition: DtWidgetSignaler.h:47
Contains makVrv::event_signal class.
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:27
boost::signalslib::signal< void(int x, int y)> signal_mouseEnter
Emitted when the mouse entered the widget.
Definition: DtWidgetSignaler.h:35
event_signal< void(DtUniqueID, int x, int y)> signal_mouseEntered
Event signals emitted on pickable widget events. The ID is the id of the widget raising the event...
Definition: DtWidgetSignaler.h:118
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(int button)> signal_mouseButtonPress
Emitted when a mouse button is pressed.
Definition: DtWidgetSignaler.h:44
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
event_signal< void(DtUniqueID, int button) > signal_mouseButtonPressed
Definition: DtWidgetSignaler.h:121
event_signal< void(DtUniqueID, int button) > signal_mouseButtonReleased
Definition: DtWidgetSignaler.h:122
Contains makVrv::DtUniqueID type.
event_signal< void(DtUniqueID, int x, int y)> signal_mouseMoved
Definition: DtWidgetSignaler.h:119
A signaler class that is used to connect generated events from a DtWidget in the main thread to the a...
Definition: DtWidgetSignaler.h:86
A simple collection of signals that all widgets can emit.
Definition: DtWidgetSignaler.h:27
The picker class which allocates and does picking operations on widgets.
Definition: DtWidgetPicker.h:53
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)