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 namespace makVrv
20 {
21  class DtOutlinedPolygon;
22  class DtDe;
23  class DtChannel;
24  class DtCachedIntersectorsContainer;
25 }
26 
27 namespace makVrf
28 {
32  {
33  public:
34  virtual void getCurrentMousePosition(int& x, int& y) = 0;
35  virtual void setFreezeMousePosition(bool) = 0;
36  virtual bool isShiftKeyDown() const = 0;
37  virtual bool isControlKeyDown() const = 0;
38  virtual bool isFunctionKeyDown() const = 0;
39  virtual bool isAltKeyDown() const = 0;
40  virtual double getDpi(std::string& dpiMessage) = 0;
41  virtual bool isLeftMouseButtonDown() const = 0;
42  virtual bool isRightMouseButtonDown() const = 0;
43  virtual bool isMiddleMouseButtonDown() const = 0;
44  virtual double devicePixelRatio() const = 0;
45  };
46 
50  {
51  public:
52 
55 
57  virtual ~DtGuiEventProcessor();
58 
61  virtual void setBlockKeyboardEvents(bool);
62  virtual bool blockKeyboardEvents() const;
63 
66  virtual bool processMouseEvent( const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel);
67 
71  virtual bool processKeyboardEvent( const makVrv::DtKeyEvent& ev, makVrv::DtChannel& channel);
72 
73  virtual const std::string& className();
74 
75  virtual void setCurrentMousePosition(makVrv::DtDe&, int x, int y);
76  virtual void setCurrentMousePosition(int x, int y);
77  virtual void getCurrentMousePosition(int& x, int& y) const;
78 
80  virtual double getDpi(std::string& dpiMessage);
81 
83  virtual void setMousePositionProvider(DtMousePositionProvider*);
84  virtual DtMousePositionProvider* mousePositionProvider();
85 
87  static DtGuiEventProcessor& instance(makVrv::DtDe& de);
88  static void registerInstance(makVrv::DtDe&, DtGuiEventProcessor*);
89 
91  virtual bool setFreezeMousePosition(bool);
92  virtual bool mousePositionFrozen() const;
93 
95  virtual bool isShiftKeyDown() const;
96  virtual bool isControlKeyDown() const;
97  virtual bool isFunctionKeyDown() const;
98  virtual bool isAltKeyDown() const;
99  virtual bool isLeftMouseButtonDown() const;
100  virtual bool isRightMouseButtonDown() const;
101  virtual bool isMiddleMouseButtonDown() const;
102  virtual double devicePixelRatio() const;
103 
104  virtual makVrv::DtCachedIntersectorsContainer& cachedIntersectorManager() const;
105 
106  protected:
108  virtual void cleanupBox();
109 
111  virtual void createBox(makVrv::DtChannel& channel);
112 
114  virtual void setBoxFromExtents(makVrv::DtChannel& channel, int anchorX, int anchorY, int toX, int toY);
115 
116  protected:
121 
123  bool myFrozen;
124 
127 
131  mutable makVrv::DtCachedIntersectorsContainer* myCachedIntersectorManager = nullptr;
132  };
133 }
int myCurrentMousePositionY
Definition: guiEventProcessor.h:129
Simple class to provide mouse position. Implement if you wish to provide the mouse position in a diff...
Definition: guiEventProcessor.h:31
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:118
int myCurrentMousePositionX
Definition: guiEventProcessor.h:128
The abstract Channel Class.
Definition: DtChannel.h:35
makVrv::DtDe & myDe
Definition: guiEventProcessor.h:117
Contains makVrv::DtVirtualBaseClass class.
int myInitialMousePositionX
Definition: guiEventProcessor.h:125
Interface for an event processor for a channel.
makVrv::DtSelectionManager::IdSet myCurrentSelections
Definition: guiEventProcessor.h:122
A convex polygon drawn using lines.
Definition: DtOutlinedPolygon.h:26
makVrv::DtUniqueID myLineId
Definition: guiEventProcessor.h:119
int myInitialMousePositionY
Definition: guiEventProcessor.h:126
bool myFrozen
Definition: guiEventProcessor.h:123
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myBlockKeyboardEvents
Definition: guiEventProcessor.h:130
The DtCachedIntersectorsContainer class contains instances of cached intersectors of different model ...
Definition: DtCachedIntersectorsContainer.h:43
DtMousePositionProvider * myMousePositionProvider
Definition: guiEventProcessor.h:120
The Gui Event Processor will process certain events that pertain to the VRF Gui, most notably terrain...
Definition: guiEventProcessor.h:49
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:72
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 Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)