Class TSelectWidget<T extends TSelectWidget.Entry>
java.lang.Object
io.github.thecsdev.tcdcommons.api.client.gui.TElement
io.github.thecsdev.tcdcommons.api.client.gui.widget.TClickableWidget
io.github.thecsdev.tcdcommons.api.client.gui.widget.TButtonWidget
io.github.thecsdev.tcdcommons.api.client.gui.widget.TSelectWidget<T>
- All Implemented Interfaces:
TParentElement
,ITooltipProvider
,IEnableStateProvider
,IEnableStateProviderSetter
,ITextProvider
,ITextProviderSetter
,Iterable<T>
- Direct Known Subclasses:
TSelectEnumWidget
,TSelectFileFilterWidget
public class TSelectWidget<T extends TSelectWidget.Entry>
extends TButtonWidget
implements Iterable<T>
A
TButtonWidget
that features a dropdown item selection menu.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Represents aTSelectWidget
dropdown menu entry.static final class
A simpleTSelectWidget.Entry
implementation featuring getters and setters.static interface
Nested classes/interfaces inherited from class io.github.thecsdev.tcdcommons.api.client.gui.widget.TClickableWidget
TClickableWidget.TClickableWidgetEvent_Clicked
Nested classes/interfaces inherited from class io.github.thecsdev.tcdcommons.api.client.gui.TElement
TElement.TElementEvent_ChildAR, TElement.TElementEvent_ContextMenu, TElement.TElementEvent_Moved, TElement.TElementEvent_ParentChanged, TElement.TElementEvent_Resized
-
Field Summary
Modifier and TypeFieldDescriptionprotected @Nullable TContextMenuPanel
static final net.minecraft.text.Text
protected final TElement.TElementEvent_ContextMenu
This is where theTSelectWidget
keeps track of all selectableTSelectWidget.Entry
s added to this element.protected T
static final UITexture
static final UITexture
Fields inherited from class io.github.thecsdev.tcdcommons.api.client.gui.widget.TButtonWidget
icon, iconColor, onClick, text
Fields inherited from class io.github.thecsdev.tcdcommons.api.client.gui.widget.TClickableWidget
BUTTON_TEXTURE_SLICE_SIZE, BUTTON_TEXTURES, eClicked, enabled, T_WIDGETS_TEXTURE
Fields inherited from class io.github.thecsdev.tcdcommons.api.client.gui.TElement
alpha, eChildAdded, eChildRemoved, eContextMenu, eMoved, eParentChanged, eResized, height, SP_ALL, SP_INVOKE_EVENT, SP_MOVE_CHILDREN, SP_RELATIVE, SP_UPDATE_TOPMOST, SS_ALL, SS_INVOKE_EVENT, SS_UPDATE_TOPMOST, tooltip, tooltipPositioner, width, x, y, zOffset
Fields inherited from interface io.github.thecsdev.tcdcommons.api.client.gui.TParentElement
MAX_CHILD_NESTING_DEPTH
-
Constructor Summary
ConstructorDescriptionTSelectWidget
(int x, int y, int width, int height, net.minecraft.text.Text text, T... entryTypeClassGetter) TSelectWidget
(int x, int y, int width, int height, T... entryTypeClassGetter) -
Method Summary
Modifier and TypeMethodDescriptionfinal boolean
A utility method that creates and returns a newTContextMenuPanel
instance for thisTElement
.final T
Returns theTSelectWidget.Entry
that is currently selected, ornull
if noTSelectWidget.Entry
is selected at the moment.iterator()
protected void
onClick()
Called when thisTClickableWidget
is clicked, either by a mouse or a keyboard input, or byTClickableWidget.click(boolean)
.protected void
final boolean
removeEntry
(T entry) Removes anTSelectWidget.Entry
from thisTSelectWidget
.void
render
(TDrawContext pencil) Renders this GUI element on the screen.final void
setSelected
(T selected) Sets anTSelectWidget.Entry
as the "selected"TSelectWidget.Entry
.final void
setSelected
(T selected, boolean invokeEvent) Sets anTSelectWidget.Entry
as the "selected"TSelectWidget.Entry
.void
tick()
Used for periodic updates for thisTElement
.Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.widget.TButtonWidget
getIcon, getIconColor, getOnClick, getText, renderBackground, renderIcon, setIcon, setIconColor, setIconColor, setOnClick, setText
Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.widget.TClickableWidget
click, getEnabled, input, isFocusable, setEnabled
Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.TElement
canBeAddedTo, getAlpha, getChildren, getHeight, getItemRenderer, getParent, getParentTElement, getParentTScreen, getTextRenderer, getTooltip, getTooltipPositioner, getWidth, getX, getY, getZIndex, getZOffset, isDragging, isEnabled, isEnabledAndVisible, isFocused, isFocusedOrHovered, isHoverable, isHovered, isVisible, move, moveChildren, next, postRender, previous, setAlpha, setPosition, setPosition, setSize, setSize, setTooltip, setZOffset, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface io.github.thecsdev.tcdcommons.api.client.gui.TParentElement
addChild, addChild, clearChildren, findChild, findLastChild, findParent, findParentTElement, forEachChild, getEndX, getEndY, input, removeChild, removeChild
-
Field Details
-
DEFAULT_LABEL
public static final net.minecraft.text.Text DEFAULT_LABEL -
TEX_OPENED
-
TEX_CLOSED
-
entryType
-
entries
This is where theTSelectWidget
keeps track of all selectableTSelectWidget.Entry
s added to this element. -
selected
-
contextMenu
-
ehContextMenu
-
eSelectionChanged
public final TEvent<TSelectWidget.TSelectWidgetEvent_SelectionChanged<T extends TSelectWidget.Entry>> eSelectionChanged
-
-
Constructor Details
-
TSelectWidget
-
TSelectWidget
@SafeVarargs public TSelectWidget(int x, int y, int width, int height, net.minecraft.text.Text text, T... entryTypeClassGetter)
-
-
Method Details
-
tick
public void tick()Description copied from class:TElement
Used for periodic updates for thisTElement
. -
getEntryType
-
iterator
- Specified by:
iterator
in interfaceIterable<T extends TSelectWidget.Entry>
-
render
Description copied from interface:TParentElement
Renders this GUI element on the screen.- Specified by:
render
in interfaceTParentElement
- Overrides:
render
in classTButtonWidget
- Parameters:
pencil
- TheTDrawContext
.
-
onClick
protected void onClick()Called when thisTClickableWidget
is clicked, either by a mouse or a keyboard input, or byTClickableWidget.click(boolean)
.For
TSelectWidget
, it also creates the context menu usingcreateContextMenu()
, and then the context menu is opened.- Overrides:
onClick
in classTButtonWidget
-
createContextMenu
A utility method that creates and returns a newTContextMenuPanel
instance for thisTElement
. Use this to create your own custom context menus for thisTElement
.For
TSelectWidget
, aTContextMenuPanel
must always be created, and this method must never returnnull
.- Overrides:
createContextMenu
in classTElement
- Returns:
- A
TContextMenuPanel
for thisTElement
, ornull
if thisTElement
does not support context menus.
-
addEntry
- Parameters:
entry
- TheTSelectWidget.Entry
to add.- See Also:
-
removeEntry
Removes anTSelectWidget.Entry
from thisTSelectWidget
.- Parameters:
entry
- TheTSelectWidget.Entry
to remove.
-
getSelected
Returns theTSelectWidget.Entry
that is currently selected, ornull
if noTSelectWidget.Entry
is selected at the moment. -
setSelected
Sets anTSelectWidget.Entry
as the "selected"TSelectWidget.Entry
.- Parameters:
selected
- TheTSelectWidget.Entry
to set as "selected".- Throws:
IllegalArgumentException
- If ThisTSelectWidget
does not contain theTSelectWidget.Entry
.- See Also:
-
setSelected
public final void setSelected(@Nullable T selected, boolean invokeEvent) throws IllegalArgumentException Sets anTSelectWidget.Entry
as the "selected"TSelectWidget.Entry
.- Parameters:
selected
- TheTSelectWidget.Entry
to set as "selected".invokeEvent
- Whether or noteSelectionChanged
should be invoked.- Throws:
IllegalArgumentException
- If ThisTSelectWidget
does not contain theTSelectWidget.Entry
.- See Also:
-
onSelectionChanged
protected void onSelectionChanged()
-