XII Release 0.1.0
Loading...
Searching...
No Matches
xiiSelectionContext Class Reference
Inheritance diagram for xiiSelectionContext:
[legend]

Public Member Functions

 xiiSelectionContext (xiiQtEngineDocumentWindow *pOwnerWindow, xiiQtEngineViewWidget *pOwnerView, const xiiCamera *pCamera)
 Copyright (c) Theophilus Eriata. All Rights Reserved.
void SetWindowConfig (const xiiVec2I32 &vViewport)
void SetPickObjectOverride (xiiDelegate< void(const xiiDocumentObject *)> pickOverride)
void ResetPickObjectOverride ()
Public Member Functions inherited from xiiEditorInputContext
void FocusLost (bool bCancel)
xiiEditorInput KeyPressEvent (QKeyEvent *e)
xiiEditorInput KeyReleaseEvent (QKeyEvent *e)
xiiEditorInput MousePressEvent (QMouseEvent *e)
xiiEditorInput MouseReleaseEvent (QMouseEvent *e)
xiiEditorInput MouseMoveEvent (QMouseEvent *e)
xiiEditorInput WheelEvent (QWheelEvent *e)
void MakeActiveInputContext (bool bActive=true)
bool IsActiveInputContext () const
void SetOwner (xiiQtEngineDocumentWindow *pOwnerWindow, xiiQtEngineViewWidget *pOwnerView)
xiiQtEngineDocumentWindow * GetOwnerWindow () const
xiiQtEngineViewWidget * GetOwnerView () 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
xiiVec2I32 SetMouseMode (MouseMode mode)
xiiVec2I32 UpdateMouseMode (QMouseEvent *e)
virtual void UpdateStatusBarText (xiiQtEngineDocumentWindow *pWindow)
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.

Protected Types

enum class  Mode { None , Single , MarqueeAdd , MarqueeRemove }

Protected Member Functions

virtual xiiEditorInput DoMousePressEvent (QMouseEvent *e) override
virtual xiiEditorInput DoMouseReleaseEvent (QMouseEvent *e) override
virtual xiiEditorInput DoMouseMoveEvent (QMouseEvent *e) override
virtual xiiEditorInput DoKeyPressEvent (QKeyEvent *e) override
virtual xiiEditorInput DoKeyReleaseEvent (QKeyEvent *e) override
virtual void OnSetOwner (xiiQtEngineDocumentWindow *pOwnerWindow, xiiQtEngineViewWidget *pOwnerView) override
const xiiDocumentObject * determineObjectToSelect (const xiiDocumentObject *pickedObject, bool bToggle, bool bDirect) const
virtual void DoFocusLost (bool bCancel) override
virtual void OpenDocumentForPickedObject (const xiiObjectPickingResult &res) const
virtual void SelectPickedObject (const xiiObjectPickingResult &res, bool bToggle, bool bDirect) const
void SendMarqueeMsg (QMouseEvent *e, xiiUInt8 uiWhatToDo)
Protected Member Functions inherited from xiiEditorInputContext
virtual void OnActivated ()
virtual void OnDeactivated ()
virtual xiiEditorInput DoWheelEvent (QWheelEvent *e)

Protected Attributes

xiiDelegate< void(const xiiDocumentObject *)> m_PickObjectOverride
const xiiCamera * m_pCamera
xiiVec2I32 m_vViewport
xiiEngineGizmoHandle m_hMarqueeGizmo
xiiVec3 m_vMarqueeStartPos
xiiUInt32 m_uiMarqueeID
bool m_bPressedSpace = false
Mode m_Mode = Mode::None

Additional Inherited Members

Public Types inherited from xiiEditorInputContext
enum class  MouseMode { Normal , WrapAtScreenBorders , HideAndWrapAtScreenBorders }
 How the mouse position is updated when the mouse cursor reaches the screen borders. More...
Static Public Member Functions inherited from xiiEditorInputContext
static void SetActiveInputContext (xiiEditorInputContext *pContext)
static bool IsAnyInputContextActive ()
static xiiEditorInputContext * GetActiveInputContext ()
static void UpdateActiveInputContext ()
Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Member Function Documentation

◆ DoFocusLost()

void xiiSelectionContext::DoFocusLost ( bool bCancel)
overrideprotectedvirtual

Reimplemented from xiiEditorInputContext.

◆ DoKeyPressEvent()

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

Reimplemented from xiiEditorInputContext.

◆ DoKeyReleaseEvent()

xiiEditorInput xiiSelectionContext::DoKeyReleaseEvent ( QKeyEvent * e)
overrideprotectedvirtual

Reimplemented from xiiEditorInputContext.

◆ DoMouseMoveEvent()

xiiEditorInput xiiSelectionContext::DoMouseMoveEvent ( QMouseEvent * e)
overrideprotectedvirtual

Reimplemented from xiiEditorInputContext.

◆ DoMousePressEvent()

xiiEditorInput xiiSelectionContext::DoMousePressEvent ( QMouseEvent * e)
overrideprotectedvirtual

Reimplemented from xiiEditorInputContext.

◆ DoMouseReleaseEvent()

xiiEditorInput xiiSelectionContext::DoMouseReleaseEvent ( QMouseEvent * e)
overrideprotectedvirtual

Reimplemented from xiiEditorInputContext.

◆ OnSetOwner()

virtual void xiiSelectionContext::OnSetOwner ( xiiQtEngineDocumentWindow * pOwnerWindow,
xiiQtEngineViewWidget * pOwnerView )
inlineoverrideprotectedvirtual

Implements xiiEditorInputContext.

◆ SetPickObjectOverride()

void xiiSelectionContext::SetPickObjectOverride ( xiiDelegate< void(const xiiDocumentObject *)> 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:
  • /home/runner/work/XII/XII/Source/Editor/EditorFramework/InputContexts/SelectionContext.h
  • /home/runner/work/XII/XII/Source/Editor/EditorFramework/InputContexts/Implementation/SelectionContext.cpp