Doloro GDK 22 .1.0 Beta
by Tauri Interactive
Doloro.UIEngine2.AWindowLayoutController Class Referenceabstract

Detailed Description

An abstract class that implement base background features for handling window layout.

See also
WindowDragController, WindowResizeController, WindowStateController, Window, PointerHandler
Inheritance diagram for Doloro.UIEngine2.AWindowLayoutController:
Collaboration diagram for Doloro.UIEngine2.AWindowLayoutController:

Public Types

enum  StateOptions { NotActive , InUse }
 Options of the layout controller state machine. More...
 

Public Member Functions

void Repaint ()
 Repaints element along with its children.
 
void RescanForParent ()
 Looking for parent element.
 
void Focus ()
 Focusing element.
 
void Unfocus ()
 Turning off focus from element and all the elements above in the stack.
 
void CallClick ()
 Simulates click above the element.
 
void CallContextMenu ()
 Simulates calling context menu over the element.
 
virtual bool IsChildOf (AGUIElement element)
 Checks is the element is a child of another element. More...
 
virtual void OnInput ()
 Handler that will be called for elements in input priority order. use to modify data along with input instead of using OnElementGUI. More...
 
virtual void OnElementGUI ()
 Calling each draw frame. Use to update showing data. More...
 

Static Public Member Functions

static AGUIElement FindParentGUIElement (Transform element)
 Looking for parent GUI element. More...
 
static AGUIElement FindRoot (AGUIElement hierarchyElement)
 Looking for root element at the hierarchy branch. More...
 

Protected Member Functions

virtual void Start ()
 Initialized and validates component configuration.
 
override void OnPointerDown ()
 Capturing window data. More...
 
override bool IsLayoutChanged ()
 Skipping if full screen. More...
 
override void OnPostDraw ()
 Redrawing window. More...
 
abstract void OnLayout ()
 Calling when controller State has StateOptions.InUse value. More...
 
override void OnPointerUp ()
 Occurs when pointer released above the element. More...
 
override void OnDragEnd ()
 Occurs when element's drag has been ended. More...
 
void OnGUI ()
 Handling UI events. More...
 
virtual void Awake ()
 Loading core components. More...
 
virtual void OnDestroy ()
 Dropping focus. Unregistering element from GUI hierarchy. More...
 
virtual void OnEnable ()
 Occurs when component enabled.
 
virtual void OnDisable ()
 Occurs when component disabled.
 
virtual void OnTransformChildrenChanged ()
 Occurs when children list has been changed.
 
virtual void OnTransformParentChanged ()
 Occurs when parent object has been changed.
 
virtual void OnMoved ()
 Should be called when element position is modified. More...
 
virtual void OnSizeChanged ()
 Should be called when element size is modified. More...
 
virtual void OnFocus ()
 Occurs when element requested on focus. More...
 
virtual void OnLostFocus ()
 Occurs when UI loosing focus. More...
 
virtual void OnHoverBegin ()
 Occurs when pointer starts hovering the element. More...
 
virtual void OnHover ()
 Occurs when the pointer is over the element.
 
virtual void OnHoverEnd ()
 Occurs when pointer ending hovering the element. More...
 
virtual void OnDragBegin ()
 Occurs when pointer is start drag process.
 
virtual void OnDrag ()
 Occurs each frame when you drags the element. More...
 
virtual void OnContextMenu ()
 Occurs when you calling context menu with focused element. More...
 

Package Functions

void PointerLogicConveyor (Vector2 pointerPosition, Rect[] masks)
 Conveyor that handles pointer related events. More...
 
bool IsLocalHierarchyChildOf (AGUIElement element)
 Checks is the element is child of another element in local hierarchy. More...
 

Static Package Functions

static void OnNewEventBegin ()
 Occurs when new UI event started.
 

Properties

override Rect OperatingWorkspace [get]
 Workspace defined to the window.
 
Vector2 CapturedWinSize [get]
 Size of the window when controller switched to AFreespaceLayoutController.StateOptions.InUse.
 
Vector2 CapturedWinRawSize [get]
 Raw size of the window captured during processing start.
 
Vector2 CapturedWinRawPosition [get]
 Position of the window when controller switched to AFreespaceLayoutController.StateOptions.InUse.
 
Rect CapturedScreenSpaceRect [get]
 Screen space rect of the window captured at the controller begin..
 
StateOptions State [get]
 State of the handler.
 
Vector2 WorkspaceMouseSessionDelta [get]
 Delta between click point and current mouse position. The value can't cross the workspace border.
 
Vector2 MouseSessionDelta [get]
 Delta between click point and current mouse position.
 
Vector2 CapturedPointerPosition [get]
 Screen position of the pointer when controller switched to StateOptions.InUse.
 
bool IsMask [get, set]
 If true then will crop the pointer events out of bounds for children.
 
bool IsRaycastTarget [get, set]
 Defines is the element will handle mouse click events. More...
 
bool IsActive [get]
 
bool IsFocused [get]
 Checks is the element registered at the FocusStack
 
bool IsHovered [get]
 Is the element hovered at the moment.
 
bool IsRoot [get, set]
 Is the element is at the bottom of engine hierarchy.
 
AGUIElement FocusedChild [get]
 Returns focused child. Null if not exist.
 
ReadOnlyCollection< AGUIElementChildren = new ReadOnlyCollection<AGUIElement>(new AGUIElement[0]) [get]
 Collection of element children. More...
 
Rect LocalRect [get]
 Returns rect of the bond RectTransform component.
 
Rect ScreenSpaceRect [get, set]
 Returns elements's rect at screen space. More...
 
Vector2 ScreenSpacePostion [get, set]
 Returns elements's position at screen space. More...
 
Rect RaycastRect [get]
 Screen space rect with applied RaycastPadding parameters.
 
Vector4 RaycastPadding [get, set]
 Defines offset of the ray casting box along with the physical size.
 
Window ParentWindow [get]
 Reference to the parent window. Null if element is free.
 
AGUIElement ParentGUIElement [get, protected set]
 Parent GUI element. Drops ParentWindow stored reference to null.
 
RectTransform BondRectTransform [get]
 Buffer that contains bond rect transform.
 
static AGUIElement ElementOnAction [get]
 Reference to last dragged element. More...
 
static bool IsMouseDragOn [get]
 True when some elements is now at the drag state.
 
virtual Vector2 Size [get, set]
 Size of element. More...
 
virtual Vector2 Position [get, set]
 Position of element at the screen. More...
 
virtual Vector2 LocalPosition [get, set]
 Position relative to the parent element.
 
virtual bool OnStackTopWhenFocused [get]
 Defines if the element would be moved at the top of focus stack or will stay the same position when it focused. More...
 
virtual bool IsVisibleForEngine [get]
 Defines is the element is visible for internal engine features. In case of false will be skipped during common callbacks.
 

Events

Action< AGUIElementFocused
 Occurs when element is focused.
 
Action< AGUIElementFocusLost
 Occurs when element loosing focus.
 
Action< AGUIElementHoverStarted
 Occurs when pointer crossing element's rect bounds.
 
Action< AGUIElementHovered
 Occurs each time when GUI is changed and pointer is over the element.
 
Action< AGUIElementHoverEnded
 Occurs when pointer leaving the element's rect.
 
Action< AGUIElementDragStarted
 Occurs when drag process is starting.
 
Action< AGUIElementDraged
 Occurs during element drag process.
 
Action< AGUIElementDragEnded
 Occurs when element drag is ended.
 
Action< AGUIElementPointerDown
 Occurs when element pressed with LMB.
 
Action< AGUIElementPointerUp
 Occurs when element LB has been released with the pointer above element.
 
Action< AGUIElementContextMenuCalled
 Occurs when user calling context menu for element.
 
Action< AGUIElementMoved
 Occurs when element is moved.
 
Action< AGUIElementSizeChanged
 Occurs when element Size changed.
 

Member Enumeration Documentation

◆ StateOptions

Options of the layout controller state machine.

Enumerator
NotActive 

Handler not using.

InUse 

Handler in processing.

Member Function Documentation

◆ Awake()

◆ FindParentGUIElement()

static AGUIElement Doloro.UIEngine2.AGUIElement.FindParentGUIElement ( Transform  element)
staticinherited

Looking for parent GUI element.

Parameters
elementSource element transform.
Returns
Parent AGUIElement is exist. Null if root.

◆ FindRoot()

static AGUIElement Doloro.UIEngine2.AGUIElement.FindRoot ( AGUIElement  hierarchyElement)
staticinherited

Looking for root element at the hierarchy branch.

Parameters
hierarchyElementElement of hierarchy.
Returns
Root element at the branch.

◆ IsChildOf()

virtual bool Doloro.UIEngine2.AGUIElement.IsChildOf ( AGUIElement  element)
virtualinherited

Checks is the element is a child of another element.

Parameters
elementTarget element.
Returns

Virtual logic that can be re-implemented to allow creation of virtual hierarchy.

◆ IsLayoutChanged()

override bool Doloro.UIEngine2.AWindowLayoutController.IsLayoutChanged ( )
protectedvirtual

Skipping if full screen.

Returns
Result of check.

Reimplemented from Doloro.UIEngine2.AFreespaceLayoutController.

◆ IsLocalHierarchyChildOf()

bool Doloro.UIEngine2.AGUIElement.IsLocalHierarchyChildOf ( AGUIElement  element)
packageinherited

Checks is the element is child of another element in local hierarchy.

Parameters
elementElement to check.
Returns
true in case if child. false otherwise.

◆ OnContextMenu()

virtual void Doloro.UIEngine2.AGUIElement.OnContextMenu ( )
protectedvirtualinherited

Occurs when you calling context menu with focused element.

Reimplemented in Doloro.UIEngine2.Modules.ElementsCollection.GUIElementHighlighter, and Doloro.UIEngine2.Modules.Tabs.TabGUIElement.

◆ OnDestroy()

◆ OnDrag()

virtual void Doloro.UIEngine2.AGUIElement.OnDrag ( )
protectedvirtualinherited

Occurs each frame when you drags the element.

Use ElementOnAction to get drag target.

◆ OnDragEnd()

override void Doloro.UIEngine2.AFreespaceLayoutController.OnDragEnd ( )
protectedvirtualinherited

Occurs when element's drag has been ended.

Reimplemented from Doloro.UIEngine2.AGUIElement.

◆ OnElementGUI()

virtual void Doloro.UIEngine2.AGUIElement.OnElementGUI ( )
virtualinherited

Calling each draw frame. Use to update showing data.

Calling each frame if element displayed. Before self draw call OnElementGUI for all elements in Children collection.

IMPORTANT

Avoid reading inputs here. Use OnInput instead.

Reimplemented in Doloro.UIEngine2.Modules.Context.ContextMenu, Doloro.UIEngine2.Modules.ElementsCollection.GridCollection, and Doloro.UIEngine2.Modules.ElementsCollection.GUIElementHighlighter.

◆ OnFocus()

virtual void Doloro.UIEngine2.AGUIElement.OnFocus ( )
protectedvirtualinherited

Occurs when element requested on focus.

Reimplemented in Doloro.UIEngine2.Window, Doloro.UIEngine2.WindowUIController, and Doloro.UIEngine2.Modules.Tabs.TabGUIElement.

◆ OnGUI()

void Doloro.UIEngine2.AFreespaceLayoutController.OnGUI ( )
protectedinherited

Handling UI events.

Skipping in case if State is StateOptions.NotActive.

◆ OnHoverBegin()

virtual void Doloro.UIEngine2.AGUIElement.OnHoverBegin ( )
protectedvirtualinherited

Occurs when pointer starts hovering the element.

Reimplemented in Doloro.UIEngine2.Controls.TooltipGUIController, and Doloro.UIEngine2.WindowUIController.

◆ OnHoverEnd()

virtual void Doloro.UIEngine2.AGUIElement.OnHoverEnd ( )
protectedvirtualinherited

Occurs when pointer ending hovering the element.

Reimplemented in Doloro.UIEngine2.Controls.TooltipGUIController, and Doloro.UIEngine2.WindowUIController.

◆ OnInput()

virtual void Doloro.UIEngine2.AGUIElement.OnInput ( )
virtualinherited

Handler that will be called for elements in input priority order. use to modify data along with input instead of using OnElementGUI.

Don't forget call Event.Use in case if event consumed by element. Otherwise event will foes deeper into the focused elements hierarchy.

Reimplemented in Doloro.UIEngine2.Modules.Context.ContextMenu, and Doloro.UIEngine2.Modules.ElementsCollection.GridCollection.

◆ OnLayout()

abstract void Doloro.UIEngine2.AFreespaceLayoutController.OnLayout ( )
protectedpure virtualinherited

◆ OnLostFocus()

virtual void Doloro.UIEngine2.AGUIElement.OnLostFocus ( )
protectedvirtualinherited

Occurs when UI loosing focus.

Reimplemented in Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.

◆ OnMoved()

virtual void Doloro.UIEngine2.AGUIElement.OnMoved ( )
protectedvirtualinherited

Should be called when element position is modified.

Reimplemented in Doloro.UIEngine2.WindowUIController, and Doloro.UIEngine2.Modules.RuntimeWorkspace.RuntimeWorkspaceLayout.

◆ OnPointerDown()

override void Doloro.UIEngine2.AWindowLayoutController.OnPointerDown ( )
protectedvirtual

◆ OnPointerUp()

override void Doloro.UIEngine2.AFreespaceLayoutController.OnPointerUp ( )
protectedvirtualinherited

Occurs when pointer released above the element.

Reimplemented from Doloro.UIEngine2.AGUIElement.

Reimplemented in Doloro.UIEngine2.WindowDragController.

◆ OnPostDraw()

override void Doloro.UIEngine2.AWindowLayoutController.OnPostDraw ( )
protectedvirtual

Redrawing window.

Reimplemented from Doloro.UIEngine2.AFreespaceLayoutController.

◆ OnSizeChanged()

virtual void Doloro.UIEngine2.AGUIElement.OnSizeChanged ( )
protectedvirtualinherited

Should be called when element size is modified.

Reimplemented in Doloro.UIEngine2.Modules.RuntimeWorkspace.RuntimeWorkspaceLayout.

◆ PointerLogicConveyor()

void Doloro.UIEngine2.AGUIElement.PointerLogicConveyor ( Vector2  pointerPosition,
Rect[]  masks 
)
packageinherited

Conveyor that handles pointer related events.

Parameters
pointerPositionPosition of pointer at the screen.
masksMasks that should be checked for the element.

Property Documentation

◆ Children

ReadOnlyCollection<AGUIElement> Doloro.UIEngine2.AGUIElement.Children = new ReadOnlyCollection<AGUIElement>(new AGUIElement[0])
getinherited

Collection of element children.

Immediately access but has arbitrary order.

◆ ElementOnAction

AGUIElement Doloro.UIEngine2.AGUIElement.ElementOnAction
staticgetinherited

Reference to last dragged element.

Overriding only when new drag begun. Use IsMouseDragOn property to check is the process state.

◆ IsActive

bool Doloro.UIEngine2.AGUIElement.IsActive
getinherited

Checks current element activity state.

◆ IsRaycastTarget

bool Doloro.UIEngine2.AGUIElement.IsRaycastTarget
getsetinherited

Defines is the element will handle mouse click events.

Not affects children. Still handles OnHover-like events. Not blocks manual call of CallClick and CallContextMenu API members.

◆ OnStackTopWhenFocused

virtual bool Doloro.UIEngine2.AGUIElement.OnStackTopWhenFocused
getprotectedinherited

Defines if the element would be moved at the top of focus stack or will stay the same position when it focused.

By default elements not changing order by some system like Window module Requires stack modifying to make it possible to update windows order.

Works only for elements with true IsRoot property.

◆ Position

virtual Vector2 Doloro.UIEngine2.AGUIElement.Position
getsetinherited

Position of element at the screen.

Demands RectTransform if not overridden.

◆ ScreenSpacePostion

Vector2 Doloro.UIEngine2.AGUIElement.ScreenSpacePostion
getsetinherited

Returns elements's position at screen space.

Cords counting from top left corner. Useful for full screen operations, like comparing with mouse position or etc.

◆ ScreenSpaceRect

Rect Doloro.UIEngine2.AGUIElement.ScreenSpaceRect
getsetinherited

Returns elements's rect at screen space.

Cords counting from top left corner. Useful for full screen operations, like comparing with mouse position or etc.

◆ Size

virtual Vector2 Doloro.UIEngine2.AGUIElement.Size
getsetinherited

Size of element.

Demands RectTransform if not overridden.


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