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.Menus.MenuItemWidget Class Referencesealed

A command, check/radio item, or submenu owner in a menu dropdown. More...

Inheritance diagram for Gondwana.Widgets.Menus.MenuItemWidget:
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

MenuItemWidget SetEnabled (bool enabled)
 Enables or disables the item.
MenuItemWidget SetChecked (bool isChecked)
 Changes state without invoking callbacks. Checking a radio item clears its group peers.
void PerformClick ()
 Invokes an enabled command, even while its dropdown is closed, or opens its submenu.
override void Dispose ()
 Disposes the composite and every child it owns.
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.

Protected Member Functions

override void OnPointerEnter (WidgetPointerEventArgs args)
 Called when a pointer enters the widget bounds.
Parameters
argsThe pointer event data.

override void OnPointerLeave (WidgetPointerEventArgs args)
 Called when a pointer leaves the widget bounds.
Parameters
argsThe pointer event data.

override void OnPointerDown (WidgetPointerEventArgs args)
 Called when a pointer press begins on 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 OnPointerClick (WidgetPointerEventArgs args)
 Called when a pointer click is dispatched to the widget.
Parameters
argsThe pointer event data.

override void OnKeyboardInput (WidgetKeyboardEventArgs args)
 Called when keyboard input is routed to the widget.
Parameters
argsThe keyboard 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 ProcessShown ()
 Performs processing when the widget is shown before notification callbacks are invoked.
virtual void ProcessHidden ()
 Performs processing when the widget is hidden before notification callbacks are invoked.
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 OnPointerMove (WidgetPointerEventArgs args)
 Called when pointer movement is routed to the widget.
virtual void OnMouseWheel (WidgetMouseWheelEventArgs args)
 Called when mouse-wheel input is routed to the widget.
virtual void OnFocusGained ()
 Called when the widget gains focus.
virtual void OnFocusLost ()
 Called when the widget loses focus.
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

string? Key [get]
 Gets the immutable optional key, unique within the menu bar.
string Text [get]
 Gets the command label.
KeyGesture? Shortcut [get]
 Gets the executable gesture, if any.
string ShortcutText [get]
 Gets gesture-generated text, or the legacy display-only shortcut text.
char? Mnemonic [get]
 Gets the explicit, case-insensitive access character.
SKImage? Icon [get]
 Gets the caller-owned image. Keep it alive until the item is disposed.
DirectImage? IconDrawing [get]
 Gets the retained icon drawing, if configured.
bool IsCheckable [get]
 Gets whether this item has check or radio state.
bool IsChecked [get]
 Gets the current checked state.
string? RadioGroup [get]
 Gets the radio group, scoped to the containing dropdown.
MenuDropDownWidget? SubMenu [get]
 Gets the child dropdown, if this item owns a submenu.
DirectRectangle Background [get]
 Gets the background drawing.
TextBlock Label [get]
 Gets the label drawing.
TextBlock ShortcutLabel [get]
 Gets the shortcut drawing.
DirectDrawingMovableBase Marker [get]
 Gets the check/radio indicator drawing.
DirectDrawingMovableBase Arrow [get]
 Gets the submenu arrow drawing.
bool IsEnabled [get]
 Gets whether this item is enabled.
bool IsSelected [get]
 Gets whether this item is selected by pointer or keyboard.
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.

Events

Action< MenuItemWidget >? Invoked
 Occurs after state changes and hierarchy closure, before the command callback.
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

A command, check/radio item, or submenu owner in a menu dropdown.

Definition at line 12 of file MenuItemWidget.cs.

Member Function Documentation

◆ Dispose()

override void Gondwana.Widgets.Menus.MenuItemWidget.Dispose ( )
virtual

Disposes the composite and every child it owns.

Reimplemented from Gondwana.Drawing.Direct.DirectComposite.

Definition at line 212 of file MenuItemWidget.cs.

◆ OnKeyboardInput()

override void Gondwana.Widgets.Menus.MenuItemWidget.OnKeyboardInput ( WidgetKeyboardEventArgs args)
protectedvirtual

Called when keyboard input is routed to the widget.

Parameters
argsThe keyboard event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 264 of file MenuItemWidget.cs.

◆ OnPointerClick()

override void Gondwana.Widgets.Menus.MenuItemWidget.OnPointerClick ( WidgetPointerEventArgs args)
protectedvirtual

Called when a pointer click is dispatched to the widget.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 255 of file MenuItemWidget.cs.

◆ OnPointerDown()

override void Gondwana.Widgets.Menus.MenuItemWidget.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 241 of file MenuItemWidget.cs.

◆ OnPointerEnter()

override void Gondwana.Widgets.Menus.MenuItemWidget.OnPointerEnter ( WidgetPointerEventArgs args)
protectedvirtual

Called when a pointer enters the widget bounds.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 223 of file MenuItemWidget.cs.

◆ OnPointerLeave()

override void Gondwana.Widgets.Menus.MenuItemWidget.OnPointerLeave ( WidgetPointerEventArgs args)
protectedvirtual

Called when a pointer leaves the widget bounds.

Parameters
argsThe pointer event data.

Reimplemented from Gondwana.Widgets.WidgetBase.

Definition at line 233 of file MenuItemWidget.cs.

◆ OnPointerUp()

override void Gondwana.Widgets.Menus.MenuItemWidget.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 248 of file MenuItemWidget.cs.

◆ PerformClick()

void Gondwana.Widgets.Menus.MenuItemWidget.PerformClick ( )

Invokes an enabled command, even while its dropdown is closed, or opens its submenu.

The bar and ancestor items must be available. State changes and menu closure precede callbacks.

Definition at line 141 of file MenuItemWidget.cs.

◆ SetChecked()

MenuItemWidget Gondwana.Widgets.Menus.MenuItemWidget.SetChecked ( bool isChecked)

Changes state without invoking callbacks. Checking a radio item clears its group peers.

Parameters
isCheckedWhether the control starts or becomes checked.
Returns
This instance for fluent chaining.

Definition at line 129 of file MenuItemWidget.cs.

◆ SetEnabled()

MenuItemWidget Gondwana.Widgets.Menus.MenuItemWidget.SetEnabled ( bool enabled)

Enables or disables the item.

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

Definition at line 116 of file MenuItemWidget.cs.

Property Documentation

◆ Arrow

DirectDrawingMovableBase Gondwana.Widgets.Menus.MenuItemWidget.Arrow
get

Gets the submenu arrow drawing.

Definition at line 106 of file MenuItemWidget.cs.

◆ Background

DirectRectangle Gondwana.Widgets.Menus.MenuItemWidget.Background
get

Gets the background drawing.

Definition at line 98 of file MenuItemWidget.cs.

◆ Icon

SKImage? Gondwana.Widgets.Menus.MenuItemWidget.Icon
get

Gets the caller-owned image. Keep it alive until the item is disposed.

Definition at line 86 of file MenuItemWidget.cs.

◆ IconDrawing

DirectImage? Gondwana.Widgets.Menus.MenuItemWidget.IconDrawing
get

Gets the retained icon drawing, if configured.

Definition at line 88 of file MenuItemWidget.cs.

◆ IsCheckable

bool Gondwana.Widgets.Menus.MenuItemWidget.IsCheckable
get

Gets whether this item has check or radio state.

Definition at line 90 of file MenuItemWidget.cs.

◆ IsChecked

bool Gondwana.Widgets.Menus.MenuItemWidget.IsChecked
get

Gets the current checked state.

Definition at line 92 of file MenuItemWidget.cs.

◆ IsEnabled

bool Gondwana.Widgets.Menus.MenuItemWidget.IsEnabled
get

Gets whether this item is enabled.

Definition at line 108 of file MenuItemWidget.cs.

◆ IsSelected

bool Gondwana.Widgets.Menus.MenuItemWidget.IsSelected
get

Gets whether this item is selected by pointer or keyboard.

Definition at line 110 of file MenuItemWidget.cs.

◆ Key

string? Gondwana.Widgets.Menus.MenuItemWidget.Key
get

Gets the immutable optional key, unique within the menu bar.

Definition at line 76 of file MenuItemWidget.cs.

◆ Label

TextBlock Gondwana.Widgets.Menus.MenuItemWidget.Label
get

Gets the label drawing.

Definition at line 100 of file MenuItemWidget.cs.

◆ Marker

DirectDrawingMovableBase Gondwana.Widgets.Menus.MenuItemWidget.Marker
get

Gets the check/radio indicator drawing.

Definition at line 104 of file MenuItemWidget.cs.

◆ Mnemonic

char? Gondwana.Widgets.Menus.MenuItemWidget.Mnemonic
get

Gets the explicit, case-insensitive access character.

Definition at line 84 of file MenuItemWidget.cs.

◆ RadioGroup

string? Gondwana.Widgets.Menus.MenuItemWidget.RadioGroup
get

Gets the radio group, scoped to the containing dropdown.

Definition at line 94 of file MenuItemWidget.cs.

◆ Shortcut

KeyGesture? Gondwana.Widgets.Menus.MenuItemWidget.Shortcut
get

Gets the executable gesture, if any.

Definition at line 80 of file MenuItemWidget.cs.

◆ ShortcutLabel

TextBlock Gondwana.Widgets.Menus.MenuItemWidget.ShortcutLabel
get

Gets the shortcut drawing.

Definition at line 102 of file MenuItemWidget.cs.

◆ ShortcutText

string Gondwana.Widgets.Menus.MenuItemWidget.ShortcutText
get

Gets gesture-generated text, or the legacy display-only shortcut text.

Definition at line 82 of file MenuItemWidget.cs.

◆ SubMenu

MenuDropDownWidget? Gondwana.Widgets.Menus.MenuItemWidget.SubMenu
get

Gets the child dropdown, if this item owns a submenu.

Definition at line 96 of file MenuItemWidget.cs.

◆ Text

string Gondwana.Widgets.Menus.MenuItemWidget.Text
get

Gets the command label.

Definition at line 78 of file MenuItemWidget.cs.

Event Documentation

◆ Invoked

Action<MenuItemWidget>? Gondwana.Widgets.Menus.MenuItemWidget.Invoked

Occurs after state changes and hierarchy closure, before the command callback.

Definition at line 27 of file MenuItemWidget.cs.