VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtControlPointWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtControlPointWidget_H_
11 #define DtControlPointWidget_H_
12 
13 #include <vrvCore/vrvCore.h>
14 #include <vrvCore/DtUniqueID.h>
16 #include <vrvCore/DtMouseState.h>
17 #include <boost/signal.hpp>
18 
19 namespace makVrv
20 {
21  class DtAgentManagerInterface;
22  class DtProjectedWidgetModelAgent;
23  class DtWidgetAgent;
24  class DtWidgetLabelAgent;
25  class DtModelAgent;
26  class DtWidgetInstanceSignaler;
27  class DtWidgetSignaler;
28  class DtWidgetEventSignals;
29 
34  {
35  public:
38  {
39  Normal, // inactive, not selected
40  Active, // e.g. mouseover
41  Selected, // The only selected object
42  MultiSelected, // Part of a group of selected control points
43  };
44 
45  DtControlPointWidget(int modelSet, DtAgentManagerInterface& sceneInterface);
46 
47  virtual ~DtControlPointWidget();
48 
50  virtual void setModelDefinitions(
51  const std::string& emptyTheme = "ControlPointTheme",
52  const std::string& normalTheme = "ControlPointTheme",
53  const std::string& activeTheme = "ControlPointPinnedTheme",
54  const std::string& normalPointTheme = "ControlPointPinnedTheme",
55  const std::string& selectedPointTheme = "ControlPointPinnedTheme");
56 
58  virtual void setState(ControlPointState state);
59 
61  virtual void setColor(float r, float g, float b);
62 
64  virtual void setDimensions(int height, int width);
65 
67  DtModelAgent* model();
68 
70  ControlPointState state();
71 
73  virtual void setEventsEnabled(bool enabled);
74 
76  DtWidgetEventSignals& eventSignals(DtWidgetSignaler& signaler);
77 
79  virtual void setOrderGroup(int);
80 
81  public:
82 
83  boost::signal< void(bool) > signal_mouseInChanged;
84 
85  typedef boost::signal< void(DtMouseState& mouseState,
86  const std::string& displayEngineName,
87  const std::string& windowName,
88  const std::string& channelName)>
90 
94 
95  protected:
96 
97  void onMouseEnter(DtUniqueID id);
98  void onMouseLeave(DtUniqueID id);
99  void onMouseDown(DtUniqueID id, double x, double y, int button,
100  const std::string& displayEngineName,
101  const std::string& windowName,
102  const std::string& channelName);
103  void onMouseUp(DtUniqueID id, double x, double y, int button,
104  const std::string& displayEngineName,
105  const std::string& windowName,
106  const std::string& channelName);
107  void onMouseDblClick(DtUniqueID id, double x, double y, int button,
108  const std::string& displayEngineName,
109  const std::string& windowName,
110  const std::string& channelName);
111 
112  protected:
113 
116  DtProjectedWidgetModelAgent* myProjectedWidgetModelAgent;
117  DtWidgetAgent* myWidgetAgent;
118  DtWidgetAgent* myPointWidgetAgent;
120 
121  std::string myEmptyTheme;
122  std::string myNormalTheme;
123  std::string myActiveTheme;
124  std::string mySelectedPointTheme;
126 
127  int myHeight;
128  int myWidth;
129 
132 
135  };
136 }
137 
138 #endif
139 
ControlPointState
The possible states of a control point.
Definition: DtControlPointWidget.h:37
bool myEventsEnabled
Definition: DtControlPointWidget.h:131
Definition: DtControlPointWidget.h:41
A single instance signal which has signals which will be emitted when the widget for the provided age...
Definition: DtWidgetSignaler.h:66
This is the 2D widget used as an indicator for Tactical Graphics objects.
Definition: DtControlPointWidget.h:33
boost::signal< void(bool) > signal_mouseInChanged
Definition: DtControlPointWidget.h:83
Definition: DtControlPointWidget.h:42
DtProjectedWidgetModelAgent * myProjectedWidgetModelAgent
Definition: DtControlPointWidget.h:116
Definition: DtControlPointWidget.h:39
std::string myMultiSelectedPointTheme
Definition: DtControlPointWidget.h:125
WidgetMouseEventSignal signal_mouseDown
Definition: DtControlPointWidget.h:91
std::string myActiveTheme
Definition: DtControlPointWidget.h:123
WidgetMouseEventSignal signal_mouseUp
Definition: DtControlPointWidget.h:92
ControlPointState myState
Definition: DtControlPointWidget.h:130
This file contains the declaration for the class DtMouseState.
bool mySelected
Definition: DtControlPointWidget.h:133
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
int myModelSet
Definition: DtControlPointWidget.h:114
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:23
std::string myEmptyTheme
Definition: DtControlPointWidget.h:121
int myHeight
Definition: DtControlPointWidget.h:127
WidgetMouseEventSignal signal_mouseDblClick
Definition: DtControlPointWidget.h:93
int myOrderGroup
Definition: DtControlPointWidget.h:134
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Definition: DtControlPointWidget.h:40
std::string mySelectedPointTheme
Definition: DtControlPointWidget.h:124
DtWidgetAgent * myPointWidgetAgent
Definition: DtControlPointWidget.h:118
int myWidth
Definition: DtControlPointWidget.h:128
std::string myNormalTheme
Definition: DtControlPointWidget.h:122
Contains makVrv::DtUniqueID type.
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:36
The Widget signaler class is used to connect Widget generated events in the main thread to the Widget...
Definition: DtWidgetSignaler.h:88
DtWidgetAgent * myWidgetAgent
Definition: DtControlPointWidget.h:117
DtAgentManagerInterface & mySceneInterface
Definition: DtControlPointWidget.h:115
DtWidgetInstanceSignaler * myWidgetSignaler
Definition: DtControlPointWidget.h:119
A simple collection of signals that all widgets can emit.
Definition: DtWidgetSignaler.h:31
boost::signal< void(DtMouseState &mouseState, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> WidgetMouseEventSignal
Definition: DtControlPointWidget.h:89
Contains makVrv::DtAgentManagerInterface class.
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)