Doloro GDK 22 .1.0 Beta
by Tauri Interactive
Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection Class Referenceabstract

Detailed Description

Base class for any UI element that handling bunch of another elements and should provide navigation among them.

Implements automatically feature of disabling elements out of the scope.

Inheritance diagram for Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection:
Collaboration diagram for Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection:

Public Member Functions

virtual void Add (AGUIElement item)
 Adding an element both to front-end and back-end. More...
 
virtual void Clear ()
 Clearing all elements from back-end and front-end.
 
bool Contains (AGUIElement item)
 Checks is the GUI element has been included into the collection. More...
 
void CopyTo (AGUIElement[] array, int arrayIndex)
 Copying collection to another array. More...
 
IEnumerator< AGUIElementGetEnumerator ()
 Returns enumerator for AGUIElement collection. More...
 
int IndexOf (AGUIElement item)
 Returns index of element in collection. More...
 
virtual void Insert (int index, AGUIElement item)
 Inserting UI elements into the collection. More...
 
virtual bool Remove (AGUIElement item)
 Removing element by reference. More...
 
virtual void RemoveAt (int index)
 Removing element both from back-end and front-end. More...
 
virtual void Switch (int first, int second)
 Switches two elements between each other. More...
 
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...
 

Public Attributes

GUIElementHighlighter selectionGUI
 A GUIElementHighlighter instance that will be used to highlighting of selected item.
 
RectTransform ContentHolder
 Game object that will be parent for elements. More...
 

Protected Member Functions

abstract Rect GetRectForCell (int idx)
 Returns the layout rect related to the element cell. More...
 
virtual void Start ()
 Validating layout. Loading ContentHolder child elements to collection. More...
 
override void OnDestroy ()
 Finalizing core tasks as well with unsubscribing from events. More...
 
virtual void OnLayoutChanged ()
 Occurs when list or window layout is changed. Recomputes child layouts.
 
override void OnLostFocus ()
 Dropping selectionGUI's GUIElementHighlighter.FocusedElement value to null. More...
 
virtual void OnItemSelected (AGUIElement item)
 Occurs when child element is focused. More...
 
virtual void OnItemUnselected (AGUIElement item)
 Occurs when before child element losing focus. More...
 
void FindElementsAtTheScene (out int leftElementIdx, out int rightElementIdx)
 Looking for indexes of elements that clamping the collection displayed at the screen. More...
 
virtual void Awake ()
 Loading core components. 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 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 OnDragEnd ()
 Occurs when dragging element from ElementOnAction is released. More...
 
virtual void OnPointerDown ()
 Occurs when LBM pressed above hovering element. More...
 
virtual void OnPointerUp ()
 Occurs when LBM released above hovering element. More...
 
virtual void OnContextMenu ()
 Occurs when you calling context menu with focused element. More...
 

Protected Attributes

List< AGUIElementcollection = new List<AGUIElement>()
 Collection of bond UI elements.
 

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

AGUIElement this[int index] [get, set]
 Returns element by index. More...
 
int Count [get]
 Count of element into the collection.
 
abstract int Rows [get]
 How many rows rendered for collection UI.
 
abstract int Columns [get]
 How many columns rendered for collection UI.
 
bool IsReadOnly [get]
 Always false.
 
bool SuspendAutoLayoutUpdate = false [get, set]
 If true then avoids calling of the OnLayoutChanged handler. More...
 
abstract int CellsPerWorkspace [get]
 Returns amount of cells that can be draws per workspace without scrolling.
 
virtual int SystemProtectedContentChildren [get]
 How many children at the ContentHolder reserved as system protected. Such a child will be skipped by internal UI handlers. More...
 
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

System.Action< AGUIElementsCollectionCollectionModified
 Occurs when collection content somehow changed.
 
System.Action< AGUIElementItemSelected
 Occurs when new element selected.
 
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 Function Documentation

◆ Add()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Add ( AGUIElement  item)
virtual

Adding an element both to front-end and back-end.

Parameters
itemElement to adding.

Depending from implementation null would be considered as space between elements, or as empty cell.

Reimplemented in Doloro.UIEngine2.Modules.ElementsCollection.GridCollection.

◆ Awake()

◆ Contains()

bool Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Contains ( AGUIElement  item)

Checks is the GUI element has been included into the collection.

Parameters
itemItem to comparison.
Returns
result of item search.

◆ CopyTo()

void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.CopyTo ( AGUIElement[]  array,
int  arrayIndex 
)

Copying collection to another array.

Parameters
arrayTarget array.
arrayIndexStart index at the array to start.

◆ FindElementsAtTheScene()

void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.FindElementsAtTheScene ( out int  leftElementIdx,
out int  rightElementIdx 
)
protected

Looking for indexes of elements that clamping the collection displayed at the screen.

Parameters
leftElementIdx
rightElementIdx

Use to detect elements those GUI should be hidden to prevent extra operations.

◆ 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.

◆ GetEnumerator()

IEnumerator< AGUIElement > Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.GetEnumerator ( )

Returns enumerator for AGUIElement collection.

Returns
Enumerator instance.

◆ GetRectForCell()

abstract Rect Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.GetRectForCell ( int  idx)
protectedpure virtual

Returns the layout rect related to the element cell.

Parameters
idxIndex of the item at the collection.
Returns
Layout rect for element.

Implemented in Doloro.UIEngine2.Modules.ElementsCollection.GridCollection.

◆ IndexOf()

int Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.IndexOf ( AGUIElement  item)

Returns index of element in collection.

Parameters
item
Returns

◆ Insert()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Insert ( int  index,
AGUIElement  item 
)
virtual

Inserting UI elements into the collection.

Parameters
indexIndex to insert.
itemElement to insert.

Reimplemented in Doloro.UIEngine2.Modules.ElementsCollection.GridCollection.

◆ 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.

◆ 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()

override void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.OnDestroy ( )
protectedvirtual

Finalizing core tasks as well with unsubscribing from events.

Reimplemented from Doloro.UIEngine2.AGUIElement.

Reimplemented in Doloro.UIEngine2.Modules.Tabs.TabsBar.

◆ OnDrag()

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

Occurs each frame when you drags the element.

Use ElementOnAction to get drag target.

◆ OnDragEnd()

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

Occurs when dragging element from ElementOnAction is released.

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

◆ 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.

◆ 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.

◆ OnItemSelected()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.OnItemSelected ( AGUIElement  item)
protectedvirtual

Occurs when child element is focused.

Parameters
itemFocused element.

◆ OnItemUnselected()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.OnItemUnselected ( AGUIElement  item)
protectedvirtual

Occurs when before child element losing focus.

Parameters
itemElement that has been selected till next logic step.

Reimplemented in Doloro.UIEngine2.Modules.Tabs.TabsBar.

◆ OnLostFocus()

override void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.OnLostFocus ( )
protectedvirtual

◆ 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()

◆ OnPointerUp()

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

Occurs when LBM released above hovering element.

Not occurs in case it there is had been drag event.

Reimplemented in Doloro.UIEngine2.AFreespaceLayoutController, Doloro.UIEngine2.WindowDragController, Doloro.UIEngine2.Modules.Context.ContextMenuItem, and Doloro.UIEngine2.Modules.ElementsCollection.GUIElementHighlighter.

◆ 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.

◆ Remove()

virtual bool Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Remove ( AGUIElement  item)
virtual

Removing element by reference.

Parameters
itemSource element.
Returns
Is the item found?
Exceptions
System.AccessViolationExceptionTrying to remove object protected by the core.

◆ RemoveAt()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.RemoveAt ( int  index)
virtual

Removing element both from back-end and front-end.

Parameters
indexIndex of element to remove.
Exceptions
System.AccessViolationExceptionTrying to remove object protected by the core.

Reimplemented in Doloro.UIEngine2.Modules.ElementsCollection.GridCollection.

◆ Start()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Start ( )
protectedvirtual

Validating layout. Loading ContentHolder child elements to collection.

Reimplemented in Doloro.UIEngine2.Modules.Tabs.TabsBar.

◆ Switch()

virtual void Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.Switch ( int  first,
int  second 
)
virtual

Switches two elements between each other.

Parameters
firstIndex of first element to switch.
secondIndex of second element to switch.

Member Data Documentation

◆ ContentHolder

RectTransform Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.ContentHolder

Game object that will be parent for elements.

Using this if null.

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.

◆ SuspendAutoLayoutUpdate

bool Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.SuspendAutoLayoutUpdate = false
getsetprotected

If true then avoids calling of the OnLayoutChanged handler.

Use if you need to make a bunch of collection changes to prevent extra operations.

◆ SystemProtectedContentChildren

virtual int Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.SystemProtectedContentChildren
getprotected

How many children at the ContentHolder reserved as system protected. Such a child will be skipped by internal UI handlers.

This children could be used as you wish for internal purposes and don't represents the collection content.

selectionGUI placing at the 0 index of content children.

◆ this[int index]

AGUIElement Doloro.UIEngine2.Modules.ElementsCollection.AGUIElementsCollection.this[int index]
getset

Returns element by index.

Parameters
indexIndex of element.
Returns
Reference to the collection's element.

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