VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
guiEventProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrfGuiCore/vrfGuiCore.h>
14 
16 #include <vrvCore/DtElementEntry.h>
18 
19 #include <boost/signals2.hpp>
20 
21 namespace makVrv
22 {
23  class DtOutlinedPolygon;
24  class DtDe;
25  class DtChannel;
26  class DtCachedIntersectorsContainer;
27 }
28 
29 namespace makVrf
30 {
34  {
35  public:
36  virtual void getCurrentMousePosition(int& x, int& y) = 0;
37  virtual void setFreezeMousePosition(bool) = 0;
38  virtual bool isShiftKeyDown() const = 0;
39  virtual bool isControlKeyDown() const = 0;
40  virtual bool isFunctionKeyDown() const = 0;
41  virtual bool isAltKeyDown() const = 0;
42  virtual double getDpi(std::string& dpiMessage) = 0;
43  virtual bool isLeftMouseButtonDown() const = 0;
44  virtual bool isRightMouseButtonDown() const = 0;
45  virtual bool isMiddleMouseButtonDown() const = 0;
46  virtual double devicePixelRatio() const = 0;
47  };
48 
52  {
53  public:
54 
57 
59  virtual ~DtGuiEventProcessor() override;
60 
63  virtual void setBlockKeyboardEvents(bool);
64  virtual bool blockKeyboardEvents() const;
65 
68  virtual bool processMouseEvent(const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel) override;
69 
73  virtual bool processKeyboardEvent(const makVrv::DtKeyEvent& ev, makVrv::DtChannel& channel) override;
74 
75  virtual const std::string& className() override;
76 
77  virtual void setCurrentMousePosition(makVrv::DtDe&, int x, int y);
78  virtual void setCurrentMousePosition(int x, int y);
79  virtual void getCurrentMousePosition(int& x, int& y) const;
80 
82  virtual double getDpi(std::string& dpiMessage);
83 
85  virtual void setMousePositionProvider(DtMousePositionProvider*);
86  virtual DtMousePositionProvider* mousePositionProvider();
87 
89  static DtGuiEventProcessor& instance(makVrv::DtDe& de);
90  static void registerInstance(makVrv::DtDe&, DtGuiEventProcessor*);
91 
93  virtual bool setFreezeMousePosition(bool);
94  virtual bool mousePositionFrozen() const;
95 
97  virtual bool isShiftKeyDown() const;
98  virtual bool isControlKeyDown() const;
99  virtual bool isFunctionKeyDown() const;
100  virtual bool isAltKeyDown() const;
101  virtual bool isLeftMouseButtonDown() const;
102  virtual bool isRightMouseButtonDown() const;
103  virtual bool isMiddleMouseButtonDown() const;
104  virtual double devicePixelRatio() const;
105 
106  virtual makVrv::DtCachedIntersectorsContainer& cachedIntersectorManager() const;
107 
108  boost::signals2::signal<void ()> signal_escKeyPressed;
109 
110  protected:
112  virtual void cleanupBox();
113 
115  virtual void createBox(makVrv::DtChannel& channel);
116 
118  virtual void setBoxFromExtents(makVrv::DtChannel& channel, int anchorX, int anchorY, int toX, int toY);
119 
120  protected:
125 
127  bool myFrozen;
128 
131 
135  mutable makVrv::DtCachedIntersectorsContainer* myCachedIntersectorManager = nullptr;
136  };
137 }
int myCurrentMousePositionY
Definition: guiEventProcessor.h:133
Simple class to provide mouse position. Implement if you wish to provide the mouse position in a diff...
Definition: guiEventProcessor.h:33
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
This class encapsulates a Key event.
Definition: DtKeyEvent.h:16
Contains makVrv:DtSelectionManager class.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
makVrv::DtOutlinedPolygon * myBox
Definition: guiEventProcessor.h:122
int myCurrentMousePositionX
Definition: guiEventProcessor.h:132
The abstract Channel Class.
Definition: DtChannel.h:35
makVrv::DtDe & myDe
Definition: guiEventProcessor.h:121
Contains makVrv::DtVirtualBaseClass class.
int myInitialMousePositionX
Definition: guiEventProcessor.h:129
Interface for an event processor for a channel.
makVrv::DtSelectionManager::IdSet myCurrentSelections
Definition: guiEventProcessor.h:126
A convex polygon drawn using lines.
Definition: DtOutlinedPolygon.h:26
makVrv::DtUniqueID myLineId
Definition: guiEventProcessor.h:123
int myInitialMousePositionY
Definition: guiEventProcessor.h:130
bool myFrozen
Definition: guiEventProcessor.h:127
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myBlockKeyboardEvents
Definition: guiEventProcessor.h:134
boost::signals2::signal< void()> signal_escKeyPressed
Definition: guiEventProcessor.h:108
The DtCachedIntersectorsContainer class contains instances of cached intersectors of different model ...
Definition: DtCachedIntersectorsContainer.h:43
DtMousePositionProvider * myMousePositionProvider
Definition: guiEventProcessor.h:124
The Gui Event Processor will process certain events that pertain to the VRF Gui, most notably terrain...
Definition: guiEventProcessor.h:51
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
The DtEventProcessorInterface defines the generic interface for classes which handle input events...
Definition: DtEventProcessorInterface.h:34
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Contains makVrv::DtElementEntry class.

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)