Skip to content

Class Tab

Definition

Namespace: StardewUI.Widgets
Assembly: StardewUI.dll

A view with tab appearance, used to navigate sections of a larger complex menu.

[StardewUI.GenerateDescriptor]
public class Tab : StardewUI.Widgets.ComponentView<T>

Inheritance
ObjectDecoratorView<T>ComponentView<T> ⇦ Tab

Remarks

Tabs activate when clicked; multiple tabs can be assigned to the same Group, each with a unique GroupKey, in order to deactivate other tabs when any one tab is activated.

Members

Constructors

Name Description
Tab()

Properties

Name Description
Active Whether or not the tab is considered active (selected).
ActiveOffset The drawing offset to apply when the tab is Active.
ActualBounds The bounds of this view relative to the origin (0, 0).
(Inherited from DecoratorView<T>)
Background Background image to draw behind the tab's Content, which provides the tab appearance.
BackgroundRotation Rotation of the Background; does not apply to Content.
ClipOrigin Origin position for the ClipSize.
(Inherited from DecoratorView<T>)
ClipSize Size of the clipping rectangle, outside which content will not be displayed.
(Inherited from DecoratorView<T>)
Content Content to draw inside the tab's border.
ContentBounds The true bounds of this view's content; i.e. ActualBounds excluding margins.
(Inherited from DecoratorView<T>)
ContentMargin Margin to apply to the frame containing the Content, i.e. distance between the tab's visual border and the inner image, text, etc.
FloatingBounds Contains the bounds of all floating elements in this view tree, including the current view and all descendants.
(Inherited from DecoratorView<T>)
Group The selection group, if any, to which this tab belongs.
GroupKey The unique key per Group that identifies this tab.
IsFocusable Whether or not the view can receive controller focus, i.e. the stick/d-pad controlled cursor can move to this view. Not generally applicable for mouse controls.
(Inherited from DecoratorView<T>)
Layout The current layout parameters, which determine how Measure(Vector2) will behave.
(Inherited from DecoratorView<T>)
Name Simple name for this view, used in log/debug output; does not affect behavior.
(Inherited from DecoratorView<T>)
Opacity Opacity (alpha level) of the view.
(Inherited from DecoratorView<T>)
OuterSize The true computed layout size resulting from a single Measure(Vector2) pass.
(Inherited from DecoratorView<T>)
PointerEventsEnabled Whether this view should receive pointer events like Click or Drag.
(Inherited from DecoratorView<T>)
PointerStyle Pointer style to use when this view is hovered.
(Inherited from DecoratorView<T>)
ScrollWithChildren If set to an axis, specifies that when any child of the view is scrolled into view (using ScrollIntoView(IEnumerable<ViewChild>, Vector2)), then this entire view should be scrolled along with it.
(Inherited from DecoratorView<T>)
Tags The user-defined tags for this view.
(Inherited from DecoratorView<T>)
Tooltip Tooltip data to display on hover, if any.
(Inherited from DecoratorView<T>)
Transform Local transformation to apply to this view, including any children and floating elements.
(Inherited from DecoratorView<T>)
TransformOrigin Relative origin position for any Transform on this view.
(Inherited from DecoratorView<T>)
View (Inherited from ComponentView<T>)
Visibility Drawing visibility for this view.
(Inherited from DecoratorView<T>)
ZIndex Z order for this view within its direct parent. Higher indices draw later (on top).
(Inherited from DecoratorView<T>)

Methods

Name Description
ContainsPoint(Vector2) Checks if a given point, relative to the view's origin, is within its bounds.
(Inherited from DecoratorView<T>)
CreateView() Creates and returns the root view.
(Overrides ComponentView<T>.CreateView())
Dispose() (Overrides DecoratorView<T>.Dispose())
Draw(ISpriteBatch) Draws the content for this view.
(Overrides DecoratorView<T>.Draw(ISpriteBatch))
FocusSearch(Vector2, Direction) Finds the next focusable component in a given direction that does not overlap with a current position.
(Inherited from DecoratorView<T>)
GetChildAt(Vector2, Boolean, Boolean) Finds the child at a given position.
(Inherited from DecoratorView<T>)
GetChildPosition(IView) Computes or retrieves the position of a given direct child.
(Inherited from DecoratorView<T>)
GetChildren(Boolean) Gets the current children of this view.
(Inherited from DecoratorView<T>)
GetChildrenAt(Vector2) Finds all children at a given position.
(Inherited from DecoratorView<T>)
GetDefaultFocusChild() Gets the direct child that should contain cursor focus when a menu or overlay containing this view is first opened.
(Inherited from DecoratorView<T>)
HasOutOfBoundsContent() Checks if the view has content or elements that are all or partially outside the ActualBounds.
(Inherited from DecoratorView<T>)
IsDirty() Checks whether or not the view is dirty - i.e. requires a new layout with a full Measure(Vector2).
(Inherited from DecoratorView<T>)
IsVisible(Vector2?) Checks if the view is effectively visible, i.e. if it has anything to draw.
(Inherited from DecoratorView<T>)
Measure(Vector2) Performs layout on this view, updating its OuterSize, ActualBounds and ContentBounds, and arranging any children in their respective positions.
(Inherited from DecoratorView<T>)
OnButtonPress(ButtonEventArgs) Called when a button press is received while this view is in the focus path.
(Inherited from DecoratorView<T>)
OnButtonRepeat(ButtonEventArgs) Called when a button press is first received, and at recurring intervals thereafter, for as long as the button is held and this view remains in the focus path.
(Inherited from DecoratorView<T>)
OnClick(ClickEventArgs) Called when a click is received within this view's bounds.
(Overrides DecoratorView<T>.OnClick(ClickEventArgs))
OnDrag(PointerEventArgs) Called when the view is being dragged (mouse moved while left button held).
(Inherited from DecoratorView<T>)
OnDrop(PointerEventArgs) Called when the mouse button is released after at least one OnDrag(PointerEventArgs).
(Inherited from DecoratorView<T>)
OnLayout() Runs whenever layout occurs as a result of the UI elements changing.
(Inherited from DecoratorView<T>)
OnPointerMove(PointerMoveEventArgs) Called when a pointer movement related to this view occurs.
(Inherited from DecoratorView<T>)
OnPropertyChanged(PropertyChangedEventArgs) Raises the PropertyChanged event.
(Inherited from DecoratorView<T>)
OnPropertyChanged(string) Raises the PropertyChanged event.
(Inherited from DecoratorView<T>)
OnUpdate(TimeSpan) Runs on every update tick.
(Inherited from DecoratorView<T>)
OnWheel(WheelEventArgs) Called when a wheel event is received within this view's bounds.
(Inherited from DecoratorView<T>)
RegisterDecoratedProperty<TValue>(DecoratedProperty<T, TValue>) Registers a DecoratedProperty<T, TValue>.
(Inherited from DecoratorView<T>)
ScrollIntoView(IEnumerable<ViewChild>, Vector2) Attempts to scroll the specified target into view, including all of its ancestors, if not fully in view.
(Inherited from DecoratorView<T>)

Events

Name Description
Activate Event raised when Active becomes true.
ButtonPress Event raised when any button on any input device is pressed.
(Inherited from DecoratorView<T>)
ButtonRepeat Event raised when a button is being held while the view is in focus, and has been held long enough since the initial ButtonPress or the previous ButtonRepeat to trigger a repeated press.
(Inherited from DecoratorView<T>)
Click Event raised when the view receives a click initiated from any button.
(Inherited from DecoratorView<T>)
Deactivate Event raised when Active becomes false.
Drag Event raised when the view is being dragged using the mouse.
(Inherited from DecoratorView<T>)
DragEnd Event raised when mouse dragging is stopped, i.e. when the button is released. Always raised after the last Drag, and only once per drag operation.
(Inherited from DecoratorView<T>)
DragStart Event raised when mouse dragging is first activated. Always raised before the first Drag, and only once per drag operation.
(Inherited from DecoratorView<T>)
LeftClick Event raised when the view receives a click initiated from the left mouse button, or the controller's action button (A).
(Inherited from DecoratorView<T>)
PointerEnter Event raised when the pointer enters the view.
(Inherited from DecoratorView<T>)
PointerLeave Event raised when the pointer exits the view.
(Inherited from DecoratorView<T>)
PointerMove Event raised when the pointer moves within the view.
(Inherited from DecoratorView<T>)
PropertyChanged (Inherited from DecoratorView<T>)
RightClick Event raised when the view receives a click initiated from the right mouse button, or the controller's tool-use button (X).
(Inherited from DecoratorView<T>)
Wheel Event raised when the scroll wheel moves.
(Inherited from DecoratorView<T>)

Details

Constructors

Tab()

public Tab();

Properties

Active

Whether or not the tab is considered active (selected).

public bool Active { get; set; }
Property Value

Boolean

Remarks

Active tabs have an offset appearance, normally used to indicate their "pressed" status in relation to other, neighboring tabs. The offset can be adjusted with ActiveOffset.


ActiveOffset

The drawing offset to apply when the tab is Active.

public Microsoft.Xna.Framework.Vector2 ActiveOffset { get; set; }
Property Value

Vector2


Background

Background image to draw behind the tab's Content, which provides the tab appearance.

public StardewUI.Graphics.Sprite Background { get; set; }
Property Value

Sprite


BackgroundRotation

Rotation of the Background; does not apply to Content.

public StardewUI.Graphics.SimpleRotation? BackgroundRotation { get; set; }
Property Value

Nullable<SimpleRotation>


Content

Content to draw inside the tab's border.

public StardewUI.IView Content { get; set; }
Property Value

IView


ContentMargin

Margin to apply to the frame containing the Content, i.e. distance between the tab's visual border and the inner image, text, etc.

public StardewUI.Layout.Edges ContentMargin { get; set; }
Property Value

Edges

Remarks

When using the default Background, this is automatically set up to match its border size. If a different background is used, the margin may need to be adjusted.


Group

The selection group, if any, to which this tab belongs.

public StardewUI.Widgets.SelectionGroup Group { get; set; }
Property Value

SelectionGroup

Remarks

Assigning multiple tabs to the same group guarantees that only one can be Active at a time. If this tab becomes active, any previously-active tab will become inactive.

To participate in the group, a non-empty GroupKey must also be specified.


GroupKey

The unique key per Group that identifies this tab.

public string GroupKey { get; set; }
Property Value

string


Methods

CreateView()

Creates and returns the root view.

protected override StardewUI.Widgets.Panel CreateView();
Returns

Panel


Dispose()

public override void Dispose();

Draw(ISpriteBatch)

Draws the content for this view.

public override void Draw(StardewUI.Graphics.ISpriteBatch b);
Parameters

b   ISpriteBatch
Sprite batch to hold the drawing output.

Remarks

No positional argument is included because ISpriteBatch handles its own transformations; the top-left coordinates of this view are always (0, 0).


OnClick(ClickEventArgs)

Called when a click is received within this view's bounds.

public override void OnClick(StardewUI.Events.ClickEventArgs e);
Parameters

e   ClickEventArgs
The event data.


Events

Activate

Event raised when Active becomes true.

public event System.EventHandler? Activate;
Event Type

EventHandler


Deactivate

Event raised when Active becomes false.

public event System.EventHandler? Deactivate;
Event Type

EventHandler