Gondwana Game Engine Development (master) - 2.6.1
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop and web platforms using SkiaSharp for graphics and pluggable audio backends for desktop and browser targets.
Loading...
Searching...
No Matches
Gondwana.Widgets.Controls.LabelWidget Class Referencesealed

Displays retained-mode text as a reusable Gondwana widget. More...

Inheritance diagram for Gondwana.Widgets.Controls.LabelWidget:
Gondwana.Widgets.WidgetBase Gondwana.Drawing.Direct.DirectComposite Gondwana.Drawing.Direct.IDirectCompositeChild Gondwana.Drawing.Direct.IDirectCompositeContainer Gondwana.Drawing.Direct.IDirectDrawable Gondwana.Physics.Movement.IMovable Gondwana.Drawing.IDrawable

Public Member Functions

 LabelWidget (RenderSurfaceHostBase renderSurfaceHost, View view, Rectangle bounds, string text="", string? nickname=null)
 Creates a view-level label.
 LabelWidget (RenderSurfaceHostBase renderSurfaceHost, SceneLayer sceneLayer, Rectangle bounds, string text="", string? nickname=null)
 Creates a scene-layer label.
LabelWidget SetText (string text)
 Changes the displayed text.
LabelWidget SetFont (SKTypeface typeface, float size, float? minSize=null)
 Configures the label typeface and size.
LabelWidget SetColors (SKColor foreground, SKColor background)
 Sets foreground and background colors.
LabelWidget SetTextColor (SKColor color)
 Sets the foreground text color while preserving the background color.
LabelWidget SetBackgroundColor (SKColor color)
 Sets the text-block background color while preserving the foreground color.
LabelWidget SetAlignment (SKTextAlign horizontal, TextBlock.VerticalAlign vertical)
 Configures horizontal and vertical text alignment.
LabelWidget EnableWrapping (bool enabled=true)
 Enables or disables wrapping.
LabelWidget SetPadding (float horizontal, float vertical)
 Sets symmetric horizontal and vertical padding.
LabelWidget SetLabelZOrder (int zOrder)
 Sets the base Z-order used by the label text and optional scrollbar.
Public Member Functions inherited from Gondwana.Widgets.WidgetBase
virtual bool HitTest (View view, Point screenPositionPx)
 Determines whether the widget can be hit at the specified screen position within the specified view.
virtual bool HitTest (Point screenPositionPx)
 Determines whether the widget can be hit at the specified screen position.
WidgetBase Show ()
 Shows the widget and registers it for input routing.
WidgetBase Hide ()
 Hides the widget and releases any routed input state.
WidgetBase Activate ()
 Activates the widget and brings it to the front of the input order.
WidgetBase Cancel ()
 Cancels the widget.
Public Member Functions inherited from Gondwana.Drawing.Direct.DirectComposite
 DirectComposite (RenderSurfaceHostBase renderSurfaceHost, DirectDrawingMode mode, PointF anchor=default, string? nickname=null)
 Initializes a new instance of the DirectComposite class.
Vector2 GetPosition ()
 Gets the current composite anchor.
void SetPosition (Vector2 position)
 Sets the composite anchor and repositions all children from their stored offsets.
DirectComposite SetPosition (float x, float y)
 Sets the composite anchor and repositions all children from their stored offsets.
virtual DirectComposite Add (IDirectCompositeChild child, bool keepCurrentOffset=true, Vector2? explicitLocalOffsetPx=null)
 Adds a composite-compatible direct drawable as a child.
virtual DirectComposite Remove (IDirectCompositeChild child)
 Removes a child without disposing it.
virtual DirectComposite Clear ()
 Removes every child without disposing them.
DirectComposite SetLocalOffset (IDirectCompositeChild child, Vector2 newLocalOffsetPx)
 Changes one child's local offset and reapplies its position.
DirectComposite SetZOrder (int zOrder)
 Applies one Z-order to every descendant.
DirectComposite SetOpacity (float opacity)
 Applies one opacity to every descendant.
DirectComposite SetIsVisible (bool visible)
 Applies one visibility value to every descendant.
DirectComposite FadeTo (float targetOpacity, float durationSec)
 Fades every descendant to the requested opacity.
DirectComposite FadeIn (float durationSec)
 Fades every descendant to full opacity.
DirectComposite FadeOut (float durationSec)
 Fades every descendant to zero opacity.
RectangleF GetDrawLocationScreen (View view)
 Gets the union of all visible descendants as projected through a view.
void Draw (BackbufferBase backbuffer, RectangleF destRectScreen)
 Performs no direct rendering because descendants render independently.
virtual void Update (long tick)
 Advances composite movement.
virtual void Dispose ()
 Disposes the composite and every child it owns.

Protected Member Functions

override void ProcessShown ()
 Performs processing when the widget is shown before notification callbacks are invoked.
override void ProcessHidden ()
 Performs processing when the widget is hidden before notification callbacks are invoked.
override void OnPointerDown (WidgetPointerEventArgs args)
 Called when a pointer press begins on the widget.
Parameters
argsThe pointer event data.

override void OnPointerMove (WidgetPointerEventArgs args)
 Called when pointer movement is routed to the widget.
Parameters
argsThe pointer event data.

override void OnPointerUp (WidgetPointerEventArgs args)
 Called when a pointer press is released for the widget.
Parameters
argsThe pointer event data.

override void OnMouseWheel (WidgetMouseWheelEventArgs args)
 Called when mouse-wheel input is routed to the widget.
Parameters
argsThe event data.

Protected Member Functions inherited from Gondwana.Widgets.WidgetBase
 WidgetBase (RenderSurfaceHostBase renderSurfaceHost, DirectDrawingMode mode, PointF anchor=default, string? nickname=null)
 Initializes a new instance of the WidgetBase class.
virtual void ProcessActivated ()
 Performs processing when the widget is activated before notification callbacks are invoked.
virtual void ProcessCancelled ()
 Performs processing when the widget is cancelled before notification callbacks are invoked.
virtual void ProcessPointerEnter (WidgetPointerEventArgs args)
 Performs processing when a pointer enters the widget before notification callbacks are invoked.
virtual void ProcessPointerLeave (WidgetPointerEventArgs args)
 Performs processing when a pointer leaves the widget before notification callbacks are invoked.
virtual void ProcessPointerDown (WidgetPointerEventArgs args)
 Performs processing when a pointer press begins on the widget before notification callbacks are invoked.
virtual void ProcessPointerMove (WidgetPointerEventArgs args)
 Performs processing when pointer movement is routed to the widget before notification callbacks are invoked.
virtual void ProcessPointerUp (WidgetPointerEventArgs args)
 Performs processing when a pointer press is released for the widget before notification callbacks are invoked.
virtual void ProcessFocusGained ()
 Performs processing when the widget gains focus before notification callbacks are invoked.
virtual void ProcessFocusLost ()
 Performs processing when the widget loses focus before notification callbacks are invoked.
virtual void ProcessKeyboardInput (WidgetKeyboardEventArgs args)
 Performs processing when keyboard input is routed to the widget before notification callbacks are invoked.
virtual bool ShouldDispatchPointerClick (WidgetPointerEventArgs args)
 Determines whether a pointer-click event should be dispatched for the specified pointer event data.
virtual void OnShown ()
 Called when the widget is shown.
virtual void OnHidden ()
 Called when the widget is hidden.
virtual void OnActivated ()
 Called when the widget is activated.
virtual void OnCancelled ()
 Called when the widget is cancelled.
virtual void OnPointerEnter (WidgetPointerEventArgs args)
 Called when a pointer enters the widget bounds.
virtual void OnPointerLeave (WidgetPointerEventArgs args)
 Called when a pointer leaves the widget bounds.
virtual void OnPointerClick (WidgetPointerEventArgs args)
 Called when a pointer click is dispatched to the widget.
virtual void OnFocusGained ()
 Called when the widget gains focus.
virtual void OnFocusLost ()
 Called when the widget loses focus.
virtual void OnKeyboardInput (WidgetKeyboardEventArgs args)
 Called when keyboard input is routed to the widget.
Protected Member Functions inherited from Gondwana.Drawing.Direct.DirectComposite
virtual void OnChildAdded (IDirectCompositeChild child)
 Called after a child has been successfully added.
virtual void OnChildRemoved (IDirectCompositeChild child)
 Called after a child has been removed from the composite.

Properties

TextBlock TextBlock [get]
 Gets the underlying text drawing.
DirectRectangle VerticalScrollBarTrack [get]
 Gets the vertical scrollbar track drawing.
DirectRectangle VerticalScrollBarThumb [get]
 Gets the vertical scrollbar thumb drawing.
string Text [get]
 Gets the current label text.
Rectangle Bounds [get]
 Gets the label bounds in its native coordinate space.
Size Size [get, set]
 Gets or sets the label size while preserving its current position.
ScrollBarVisibility VerticalScrollBarVisibility [get, set]
 Gets or sets when the label displays its vertical scrollbar.
bool IsVerticalScrollBarVisible [get]
 Gets whether the vertical scrollbar is currently visible.
int MouseWheelScrollPixels [get, set]
 Gets or sets the number of native pixels scrolled for one mouse-wheel notch.
float VerticalScrollEndPaddingPx [get, set]
 Gets or sets additional space exposed after the last line when scrolled fully down.
float VerticalScrollOffsetPx [get, set]
 Gets or sets the current vertical text-content scroll offset.
float MaximumVerticalScrollOffsetPx [get]
 Gets the maximum vertical text-content scroll offset for the current layout.
Properties inherited from Gondwana.Widgets.WidgetBase
bool IsInputEnabled [get, set]
 Gets or sets a value indicating whether the widget can participate in input routing.
bool IsPointerInputEnabled [get, set]
 Gets or sets a value indicating whether the widget can receive pointer input.
bool IsKeyboardInputEnabled [get, set]
 Gets or sets a value indicating whether the widget can receive keyboard input.
bool CanReceiveFocus [get, set]
 Gets or sets a value indicating whether the widget can receive keyboard focus.
bool IsFocused [get, set]
 Gets a value indicating whether the widget currently has keyboard focus.
Properties inherited from Gondwana.Drawing.Direct.DirectComposite
Guid Id = Guid.NewGuid() [get]
 Gets the unique identifier of the composite.
string? Nickname [get]
 Gets the optional diagnostic nickname of the composite.
RenderSurfaceHostBase RenderSurfaceHost [get]
 Gets the render surface host shared by the composite and its children.
DirectDrawingMode Mode [get]
 Gets the coordinate mode shared by the composite and its children.
SceneLayer? SceneLayer [get]
 Gets the scene layer shared by all children in scene-layer mode.
View? View [get]
 Gets the view shared by all children in view mode.
ReadOnlyCollection< IDirectCompositeChild > Children [get]
 Gets the children owned by the composite.
MovementController Movement [get]
 Gets the movement controller used to move the composite anchor.
MovementSpace PositionSpace [get]
 Gets the coordinate space used by the movement controller.
bool Visible [get, set]
 Gets or sets the visibility of all descendants.
int ZOrder [get]
 Gets the composite Z-order.
Rectangle ScreenBounds [get]
 Gets the union of all visible descendants' screen-space bounds.
Rectangle WorldBounds [get]
 Gets the union of all visible descendants' world-space bounds.

Additional Inherited Members

Events inherited from Gondwana.Widgets.WidgetBase
Action? Shown
 Occurs when the widget is shown.
Action? Hidden
 Occurs when the widget is hidden.
Action? Activated
 Occurs when the widget is activated.
Action? Cancelled
 Occurs when the widget is cancelled.
Action< WidgetPointerEventArgs >? PointerEnter
 Occurs when a pointer enters the widget bounds.
Action< WidgetPointerEventArgs >? PointerLeave
 Occurs when a pointer leaves the widget bounds.
Action< WidgetPointerEventArgs >? PointerDown
 Occurs when a pointer button or touch press begins on the widget.
Action< WidgetPointerEventArgs >? PointerMove
 Occurs when a pointer moves while routed to the widget.
Action< WidgetPointerEventArgs >? PointerUp
 Occurs when a pointer button or touch press is released for the widget.
Action< WidgetPointerEventArgs >? PointerClick
 Occurs when a pointer press and release completes as a click on the widget.
Action< WidgetMouseWheelEventArgs >? MouseWheel
 Occurs when mouse-wheel input is routed to the widget while the pointer is over it.
Action? FocusGained
 Occurs when the widget gains keyboard focus.
Action? FocusLost
 Occurs when the widget loses keyboard focus.
Action< WidgetKeyboardEventArgs >? KeyboardInput
 Occurs when keyboard input is routed to the widget.
Events inherited from Gondwana.Drawing.Direct.DirectComposite
EventHandler< IDirectDrawable >? Disposing
 Occurs when the composite is being disposed.
Events inherited from Gondwana.Drawing.Direct.IDirectDrawable
EventHandler< IDirectDrawable >? Disposing
 Occurs when the object is being disposed.

Detailed Description

Displays retained-mode text as a reusable Gondwana widget.

Definition at line 14 of file LabelWidget.cs.

Constructor & Destructor Documentation

◆ LabelWidget() [1/2]

Gondwana.Widgets.Controls.LabelWidget.LabelWidget ( RenderSurfaceHostBase renderSurfaceHost,
View view,
Rectangle bounds,
string text = "",
string? nickname = null )

Creates a view-level label.

Parameters
renderSurfaceHostThe render-surface host that owns the drawing.
viewThe view used for presentation and coordinate conversion.
boundsThe widget bounds in view-local pixels.
textThe text to display.
nicknameAn optional name used to identify the object.

Definition at line 41 of file LabelWidget.cs.

◆ LabelWidget() [2/2]

Gondwana.Widgets.Controls.LabelWidget.LabelWidget ( RenderSurfaceHostBase renderSurfaceHost,
SceneLayer sceneLayer,
Rectangle bounds,
string text = "",
string? nickname = null )

Creates a scene-layer label.

Parameters
renderSurfaceHostThe render-surface host that owns the drawing.
sceneLayerThe scene layer that owns the content.
boundsThe widget bounds in world pixels.
textThe text to display.
nicknameAn optional name used to identify the object.

Definition at line 72 of file LabelWidget.cs.

Member Function Documentation

◆ EnableWrapping()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.EnableWrapping ( bool enabled = true)

Enables or disables wrapping.

Parameters
enabledWhether the feature is enabled.
Returns
This instance for fluent chaining.

Definition at line 299 of file LabelWidget.cs.

◆ OnMouseWheel()

override void Gondwana.Widgets.Controls.LabelWidget.OnMouseWheel ( WidgetMouseWheelEventArgs args)
protectedvirtual

Called when mouse-wheel input is routed to the widget.

Parameters
argsThe event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 419 of file LabelWidget.cs.

◆ OnPointerDown()

override void Gondwana.Widgets.Controls.LabelWidget.OnPointerDown ( WidgetPointerEventArgs args)
protectedvirtual

Called when a pointer press begins on the widget.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 351 of file LabelWidget.cs.

◆ OnPointerMove()

override void Gondwana.Widgets.Controls.LabelWidget.OnPointerMove ( WidgetPointerEventArgs args)
protectedvirtual

Called when pointer movement is routed to the widget.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 380 of file LabelWidget.cs.

◆ OnPointerUp()

override void Gondwana.Widgets.Controls.LabelWidget.OnPointerUp ( WidgetPointerEventArgs args)
protectedvirtual

Called when a pointer press is released for the widget.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 406 of file LabelWidget.cs.

◆ ProcessHidden()

override void Gondwana.Widgets.Controls.LabelWidget.ProcessHidden ( )
protectedvirtual

Performs processing when the widget is hidden before notification callbacks are invoked.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 343 of file LabelWidget.cs.

◆ ProcessShown()

override void Gondwana.Widgets.Controls.LabelWidget.ProcessShown ( )
protectedvirtual

Performs processing when the widget is shown before notification callbacks are invoked.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 336 of file LabelWidget.cs.

◆ SetAlignment()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetAlignment ( SKTextAlign horizontal,
TextBlock.VerticalAlign vertical )

Configures horizontal and vertical text alignment.

Parameters
horizontalThe horizontal.
verticalThe vertical.
Returns
This instance for fluent chaining.

Definition at line 288 of file LabelWidget.cs.

◆ SetBackgroundColor()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetBackgroundColor ( SKColor color)

Sets the text-block background color while preserving the foreground color.

Parameters
colorThe color to apply.
Returns
This instance for fluent chaining.

Definition at line 275 of file LabelWidget.cs.

◆ SetColors()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetColors ( SKColor foreground,
SKColor background )

Sets foreground and background colors.

Parameters
foregroundThe foreground.
backgroundThe background.
Returns
This instance for fluent chaining.

Definition at line 250 of file LabelWidget.cs.

◆ SetFont()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetFont ( SKTypeface typeface,
float size,
float? minSize = null )

Configures the label typeface and size.

Parameters
typefaceThe typeface used to render text.
sizeThe size.
minSizeThe min size.
Returns
This instance for fluent chaining.

Definition at line 236 of file LabelWidget.cs.

◆ SetLabelZOrder()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetLabelZOrder ( int zOrder)

Sets the base Z-order used by the label text and optional scrollbar.

Parameters
zOrderThe drawing order relative to other content.
Returns
This instance for fluent chaining.

Definition at line 327 of file LabelWidget.cs.

◆ SetPadding()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetPadding ( float horizontal,
float vertical )

Sets symmetric horizontal and vertical padding.

Parameters
horizontalThe horizontal.
verticalThe vertical.
Returns
This instance for fluent chaining.

Definition at line 312 of file LabelWidget.cs.

◆ SetText()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetText ( string text)

Changes the displayed text.

Parameters
textThe text to display.
Returns
This instance for fluent chaining.

Definition at line 221 of file LabelWidget.cs.

◆ SetTextColor()

LabelWidget Gondwana.Widgets.Controls.LabelWidget.SetTextColor ( SKColor color)

Sets the foreground text color while preserving the background color.

Parameters
colorThe color to apply.
Returns
This instance for fluent chaining.

Definition at line 263 of file LabelWidget.cs.

Property Documentation

◆ Bounds

Rectangle Gondwana.Widgets.Controls.LabelWidget.Bounds
get

Gets the label bounds in its native coordinate space.

Definition at line 114 of file LabelWidget.cs.

◆ IsVerticalScrollBarVisible

bool Gondwana.Widgets.Controls.LabelWidget.IsVerticalScrollBarVisible
get

Gets whether the vertical scrollbar is currently visible.

Definition at line 164 of file LabelWidget.cs.

◆ MaximumVerticalScrollOffsetPx

float Gondwana.Widgets.Controls.LabelWidget.MaximumVerticalScrollOffsetPx
get

Gets the maximum vertical text-content scroll offset for the current layout.

Definition at line 214 of file LabelWidget.cs.

◆ MouseWheelScrollPixels

int Gondwana.Widgets.Controls.LabelWidget.MouseWheelScrollPixels
getset

Gets or sets the number of native pixels scrolled for one mouse-wheel notch.

Definition at line 167 of file LabelWidget.cs.

◆ Size

Size Gondwana.Widgets.Controls.LabelWidget.Size
getset

Gets or sets the label size while preserving its current position.

Definition at line 130 of file LabelWidget.cs.

◆ Text

string Gondwana.Widgets.Controls.LabelWidget.Text
get

Gets the current label text.

Definition at line 109 of file LabelWidget.cs.

◆ TextBlock

TextBlock Gondwana.Widgets.Controls.LabelWidget.TextBlock
get

Gets the underlying text drawing.

Definition at line 98 of file LabelWidget.cs.

◆ VerticalScrollBarThumb

DirectRectangle Gondwana.Widgets.Controls.LabelWidget.VerticalScrollBarThumb
get

Gets the vertical scrollbar thumb drawing.

Definition at line 104 of file LabelWidget.cs.

◆ VerticalScrollBarTrack

DirectRectangle Gondwana.Widgets.Controls.LabelWidget.VerticalScrollBarTrack
get

Gets the vertical scrollbar track drawing.

Definition at line 101 of file LabelWidget.cs.

◆ VerticalScrollBarVisibility

ScrollBarVisibility Gondwana.Widgets.Controls.LabelWidget.VerticalScrollBarVisibility
getset

Gets or sets when the label displays its vertical scrollbar.

The default is ScrollBarVisibility.Never, preserving the traditional non-interactive label behavior. Set this to ScrollBarVisibility.Auto or ScrollBarVisibility.Always to enable pointer scrolling.

Definition at line 147 of file LabelWidget.cs.

◆ VerticalScrollEndPaddingPx

float Gondwana.Widgets.Controls.LabelWidget.VerticalScrollEndPaddingPx
getsetadd

Gets or sets additional space exposed after the last line when scrolled fully down.

The default is zero. A small positive value is useful for dense diagnostic/log views so font descent and rasterization rounding never leave the final line touching the clip edge. It does not create a scrollbar when the text otherwise fits.

Definition at line 183 of file LabelWidget.cs.

◆ VerticalScrollOffsetPx

float Gondwana.Widgets.Controls.LabelWidget.VerticalScrollOffsetPx
getset

Gets or sets the current vertical text-content scroll offset.

Definition at line 201 of file LabelWidget.cs.