VR-Forces 4.8 Class Documentation
 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) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: $ $Revision: $ $State: $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 
15 #include <vrvCore/vrvCore.h>
16 #include <vrvUtil/signalslib.h>
17 #include <vrvUtil/event_signal.h>
19 #include <vrvCore/DtUniqueID.h>
20 
21 namespace makVrv
22 {
23 
24  class DtWidgetAgent;
25  class DtWidgetSignaler;
26  class DtSharedSettingsManager;
27  class DtEventQueueInterface;
28 
32  {
33  public:
34 
36  void connectAll(DtWidgetEventSignals& emmitter);
37 
39  boost::signal<void (int x, int y)> signal_mouseEnter;
40 
42  boost::signal<void (int x, int y)> signal_mouseMove;
43 
45  boost::signal<void ()> signal_mouseLeave;
46 
48  boost::signal<void (int button)> signal_mouseButtonPress;
49 
51  boost::signal<void (int button)> signal_mouseButtonRelease;
52 
53  protected:
54  void emitMouseEnter(int x, int y);
55  void emitMouseMove(int x,int y);
56  void emitMouseLeave();
57  void emitMouseButtonPress(int button);
58  void emitMouseButtonRelease(int button);
59 
60  };
61 
67  {
68  public:
70  DtWidgetAgent& agent);
71  virtual ~DtWidgetInstanceSignaler();
72 
74  const DtWidgetAgent& widgetAgent() const;
75 
76  protected:
77  DtWidgetAgent& myAgent;
79 
80  };
81 
82 
89  {
90  public:
91 
93  friend class DtWidgetPicker;
94 
97  static DtWidgetSignaler& instance(const DtSharedSettingsManager&);
98 
101  static DtWidgetSignaler& instance(DtEventQueueInterface&);
102 
106  static DtWidgetSignaler* findInstance(DtEventQueueInterface*);
107 
109  virtual ~DtWidgetSignaler();
110 
111  void emitMouseEntered(DtUniqueID, int x, int y);
112  void emitMouseMoved(DtUniqueID, int x, int y);
113  void emitMouseLeft(DtUniqueID);
114  void emitMouseButtonPressed(DtUniqueID, int button);
115  void emitMouseButtonReleased(DtUniqueID, int button);
116 
117 
125 
126  protected:
127 
128  void dispatch_mouseEntered(DtUniqueID, int x, int y);
129  void dispatch_mouseMoved(DtUniqueID, int x, int y);
130  void dispatch_mouseLeft(DtUniqueID);
131  void dispatch_mouseButtonPressed(DtUniqueID,int button);
132  void dispatch_mouseButtonReleased(DtUniqueID,int button);
133 
134 
135  protected:
137 
138  void addInstance(DtWidgetInstanceSignaler*);
139  void removeInstance(DtWidgetInstanceSignaler*);
140 
141  typedef std::map<DtUniqueID,DtWidgetInstanceSignaler*> WidgetInstanceMap;
143 
144  private:
146  DtWidgetSignaler& operator=(const DtWidgetSignaler&);
147  };
148 
149 }
150 
DtWidgetSignaler & mySignaler
Definition: DtWidgetSignaler.h:78
WidgetInstanceMap myInstances
Definition: DtWidgetSignaler.h:142
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::map< DtUniqueID, DtWidgetInstanceSignaler * > WidgetInstanceMap
Definition: DtWidgetSignaler.h:141
A single instance signal which has signals which will be emitted when the widget for the provided age...
Definition: DtWidgetSignaler.h:66
event_signal< void(DtUniqueID) > signal_mouseLeft
Definition: DtWidgetSignaler.h:122
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
Contains makVrv::event_signal class.
boost::signal< void(int x, int y)> signal_mouseMove
Emitted when the mouse moves over the widget.
Definition: DtWidgetSignaler.h:42
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:29
event_signal< void(DtUniqueID, int x, int y)> signal_mouseEntered
Event signals emitted on pickable widget events.
Definition: DtWidgetSignaler.h:120
boost::signal< void(int button)> signal_mouseButtonPress
Emitted when a mouse button is pressed.
Definition: DtWidgetSignaler.h:48
Contains makVrv::DtVirtualBaseClass class.
DtWidgetAgent & myAgent
Definition: DtWidgetSignaler.h:77
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signal< void()> signal_mouseLeave
Emitted when the mouse leaves the widget.
Definition: DtWidgetSignaler.h:45
boost::signal< void(int x, int y)> signal_mouseEnter
Emitted when the mouse entered the widget.
Definition: DtWidgetSignaler.h:39
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
event_signal< void(DtUniqueID, int button) > signal_mouseButtonPressed
Definition: DtWidgetSignaler.h:123
event_signal< void(DtUniqueID, int button) > signal_mouseButtonReleased
Definition: DtWidgetSignaler.h:124
Contains makVrv::DtUniqueID type.
event_signal< void(DtUniqueID, int x, int y)> signal_mouseMoved
Definition: DtWidgetSignaler.h:121
The Widget signaler class is used to connect Widget generated events in the main thread to the Widget...
Definition: DtWidgetSignaler.h:88
A simple collection of signals that all widgets can emit.
Definition: DtWidgetSignaler.h:31
boost::signal< void(int button)> signal_mouseButtonRelease
Emitted when a mouse button is released.
Definition: DtWidgetSignaler.h:51
The picker class which allocates and does picking operatings on widgets.
Definition: DtWidgetPicker.h:32
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)