ezEngine  Release 25.03
ezSelectionContext Class Reference
Inheritance diagram for ezSelectionContext:

Public Member Functions

 ezSelectionContext (ezQtEngineDocumentWindow *pOwnerWindow, ezQtEngineViewWidget *pOwnerView, const ezCamera *pCamera)
 
void SetWindowConfig (const ezVec2I32 &vViewport)
 
void SetPickObjectOverride (ezDelegate< void(const ezDocumentObject *)> pickOverride)
 Adds a delegate that gets called whenever an object is picked, as long as the override is active. More...
 
void ResetPickObjectOverride ()
 
- Public Member Functions inherited from ezEditorInputContext
void FocusLost (bool bCancel)
 
ezEditorInput KeyPressEvent (QKeyEvent *e)
 
ezEditorInput KeyReleaseEvent (QKeyEvent *e)
 
ezEditorInput MousePressEvent (QMouseEvent *e)
 
ezEditorInput MouseReleaseEvent (QMouseEvent *e)
 
ezEditorInput MouseMoveEvent (QMouseEvent *e)
 
ezEditorInput WheelEvent (QWheelEvent *e)
 
void MakeActiveInputContext (bool bActive=true)
 
bool IsActiveInputContext () const
 
void SetOwner (ezQtEngineDocumentWindow *pOwnerWindow, ezQtEngineViewWidget *pOwnerView)
 
ezQtEngineDocumentWindowGetOwnerWindow () const
 
ezQtEngineViewWidgetGetOwnerView () const
 
bool GetShortcutsDisabled () const
 
void SetShortcutsDisabled (bool bDisabled)
 If set to true, the surrounding window will ensure to block all shortcuts and instead send keypress events to the input context.
 
virtual bool IsPickingSelectedAllowed () const
 
ezVec2I32 SetMouseMode (MouseMode mode)
 Sets how the mouse will act when it reaches the screen border. UpdateMouseMode() must be called on every mouseMoveEvent to update the state. More...
 
ezVec2I32 UpdateMouseMode (QMouseEvent *e)
 Updates the mouse position. Can always be called but will only have an effect if SetMouseMode() was called with one of the wrap modes. More...
 
virtual void UpdateStatusBarText (ezQtEngineDocumentWindow *pWindow)
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Protected Types

enum  Mode { None, Single, MarqueeAdd, MarqueeRemove }
 

Protected Member Functions

virtual ezEditorInput DoMousePressEvent (QMouseEvent *e) override
 
virtual ezEditorInput DoMouseReleaseEvent (QMouseEvent *e) override
 
virtual ezEditorInput DoMouseMoveEvent (QMouseEvent *e) override
 
virtual ezEditorInput DoKeyPressEvent (QKeyEvent *e) override
 
virtual ezEditorInput DoKeyReleaseEvent (QKeyEvent *e) override
 
virtual void OnSetOwner (ezQtEngineDocumentWindow *pOwnerWindow, ezQtEngineViewWidget *pOwnerView) override
 
const ezDocumentObjectdetermineObjectToSelect (const ezDocumentObject *pickedObject, bool bToggle, bool bDirect) const
 
virtual void DoFocusLost (bool bCancel) override
 
virtual void OpenDocumentForPickedObject (const ezObjectPickingResult &res) const
 
virtual void SelectPickedObject (const ezObjectPickingResult &res, bool bToggle, bool bDirect) const
 
void SendMarqueeMsg (QMouseEvent *e, ezUInt8 uiWhatToDo)
 
- Protected Member Functions inherited from ezEditorInputContext
virtual void OnActivated ()
 
virtual void OnDeactivated ()
 
virtual ezEditorInput DoWheelEvent (QWheelEvent *e)
 

Protected Attributes

ezDelegate< void(const ezDocumentObject *)> m_PickObjectOverride
 
const ezCameram_pCamera
 
ezVec2I32 m_vViewport
 
ezEngineGizmoHandle m_hMarqueeGizmo
 
ezVec3 m_vMarqueeStartPos
 
ezUInt32 m_uiMarqueeID
 
bool m_bPressedSpace = false
 
Mode m_Mode = Mode::None
 

Additional Inherited Members

- Public Types inherited from ezEditorInputContext
enum  MouseMode { MouseMode::Normal, MouseMode::WrapAtScreenBorders, MouseMode::HideAndWrapAtScreenBorders }
 How the mouse position is updated when the mouse cursor reaches the screen borders. More...
 
- Static Public Member Functions inherited from ezEditorInputContext
static void SetActiveInputContext (ezEditorInputContext *pContext)
 
static bool IsAnyInputContextActive ()
 
static ezEditorInputContextGetActiveInputContext ()
 
static void UpdateActiveInputContext ()
 
- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Member Function Documentation

◆ DoKeyPressEvent()

ezEditorInput ezSelectionContext::DoKeyPressEvent ( QKeyEvent *  e)
overrideprotectedvirtual
Todo:
Handle the current cursor (icon) across all active input contexts

Reimplemented from ezEditorInputContext.

◆ SetPickObjectOverride()

void ezSelectionContext::SetPickObjectOverride ( ezDelegate< void(const ezDocumentObject *)>  pickOverride)

Adds a delegate that gets called whenever an object is picked, as long as the override is active.

It also changes the owner view's cursor to a cross-hair. If something gets picked, the override is called with a non-null object. In case the user presses ESC or the view gets destroyed while the override is active, the delegate is called with nullptr. This indicates that all picking should be stopped and the registered user should clean up.


The documentation for this class was generated from the following files: