MeVisLab Toolbox Reference
SoFocus.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #ifndef SO_FOCUS_H
14 #define SO_FOCUS_H
15 
16 
19 
20 #include "SoUtilsSystem.h"
21 #include "SoFocusElement.h"
22 
23 #include <Inventor/fields/SoSFVec2f.h>
24 #include <Inventor/sensors/SoFieldSensor.h>
25 
28 class SOUTILS_EXPORT SoFocus : public SoNode
29 {
31  SO_NODE_HEADER(SoFocus);
32 
33 public:
36 
38  static void initClass();
39 
41 
43  SoSFBool active;
44 
46  SoSFBool hasFocus;
47 
50 
55  SoSFVec2f normClickCoords;
56 
58 
61  void handleEvent(SoHandleEventAction *action) override;
62 
65  void setFocusState(FocusState state, bool updateField = true);
66 
67 protected:
69  ~SoFocus() override;
70 
71  void hasFocusChanged(SoField*);
72  void activeChanged(SoField*);
73 
75  void GLRender(SoGLRenderAction *action) override;
76 
77 private:
78 
80  SbFocusInfo _focusInfo;
81 
84  static SoFocus* _focusNode;
85 
87  void _freeFocus();
88 
89 };
90 
91 #endif // __SoFocus_H
92 
93 
FocusState
Administrates the current focus state.
#define SOUTILS_EXPORT
System dependent includes. Disables some compiler/linker warnings.
Definition: SoUtilsSystem.h:31
Class transporting focus information for one sub graph.
SoFocus is a general facility to detect focus changes.
Definition: SoFocus.h:29
SoSFBool supportWheelEvents
Should this module support mouse wheel events?
Definition: SoFocus.h:49
SoFocus()
Constructor.
void activeChanged(SoField *)
static void initClass()
Initializes this class (called on dll initialization).
SoSFVec2f normClickCoords
Display the normalized coordinates of the click event that caused the focus state.
Definition: SoFocus.h:55
void hasFocusChanged(SoField *)
void handleEvent(SoHandleEventAction *action) override
handle event is reimplemented to handle the mouse events.
~SoFocus() override
Protected destructor.
SoSFBool active
! Fields
Definition: SoFocus.h:43
void setFocusState(FocusState state, bool updateField=true)
Set focus state for this module.
SoSFBool hasFocus
Current state (has focus or has no focus).
Definition: SoFocus.h:46
void GLRender(SoGLRenderAction *action) override
React to render action -> pass focus to state.