Class TContextMenuPanel
java.lang.Object
io.github.thecsdev.tcdcommons.api.client.gui.TElement
io.github.thecsdev.tcdcommons.api.client.gui.panel.TPanelElement
io.github.thecsdev.tcdcommons.api.client.gui.panel.menu.TMenuPanel
io.github.thecsdev.tcdcommons.api.client.gui.panel.menu.TContextMenuPanel
- All Implemented Interfaces:
TParentElement
,ITooltipProvider
,IEnableStateProvider
-
Nested Class Summary
Nested classes/interfaces inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.menu.TMenuPanel
TMenuPanel.TMenuPanelEvent_ReAlignChildren
Nested classes/interfaces inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.TPanelElement
TPanelElement.TPanelElementEvent_Scrolled
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 final TElement.TElementEvent_ParentChanged
protected final int
protected final int
protected final TElement
Fields inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.menu.TMenuPanel
ehChildAR, eRealignChildren
Fields inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.TPanelElement
backgroundColor, COLOR_BACKGROUND, COLOR_OUTLINE, COLOR_OUTLINE_FOCUSED, eScrolledHorizontally, eScrolledVertically, outlineColor, SCROLL_BOTH, SCROLL_HORIZONTAL, SCROLL_VERTICAL, scrollDragX, scrollDragY, scrollFlags, scrollPadding, scrollSensitivity, scrollVelocityX, scrollVelocityY, smoothScroll, smoothScrollSpeed, topmosts
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
ConstructorDescriptionTContextMenuPanel
(TElement target) Creates a newTContextMenuPanel
for a givenTContextMenuPanel
. -
Method Summary
Modifier and TypeMethodDescriptionaddButton
(net.minecraft.text.Text text, Consumer<TButtonWidget> onClick) Creates and adds a newTMenuPanelButton
with the given text and on-click action.final boolean
canBeAddedTo
(TParentElement futureParent) Returns true if thisTElement
is okay with being added to a givenTParentElement
.final boolean
close()
Closes thisTContextMenuPanel
by removing it from theTElement.getParent()
element.final boolean
Checks if thisTContextMenuPanel
or one of its children is focused or not.static @Nullable TContextMenuPanel
findHoveredContextMenu
(TScreen targetScreen) Tries to find any hoveredTContextMenuPanel
s for a givenTScreen
.final TElement
boolean
input
(TInputContext inputContext, TInputContext.InputDiscoveryPhase inputPhase) An input handler that handles inputs on all possibleTInputContext.InputDiscoveryPhase
s.final boolean
isOpen()
Returns true ifTElement.getParent()
is not null.final void
Called inTMenuPanel.realignChildren()
.
Place the child re-aligning logic here.final boolean
open()
protected void
Automatically invoked byehParentChanged
.
Aligns thisTContextMenuPanel
for thetarget
element.
Usually invoked when thisTContextMenuPanel
is shown on the screen.static boolean
tryCloseAContextMenu
(TScreen targetScreen) Looks for aTContextMenuPanel
in a targetTScreen
, and if one is found, it gets closed.Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.menu.TMenuPanel
addSeparator, realignChildren, setScrollFlags, setScrollPadding
Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.panel.TPanelElement
__getHorizontalSeCnvElm, __getVerticalSeCnvElm, applyScrollDrag, getBackgroundColor, getHorizontalScrollAmount, getHorizontalScrollKnobSize01, getOutlineColor, getScrollFlags, getScrollPadding, getScrollSensitivity, getSmoothScroll, getVerticalScrollAmount, getVerticalScrollKnobSize01, hasScrollFlag, input, inputHorizontalScroll, inputScroll, inputScroll, inputSmoothScroll, inputSmoothScroll, inputVerticalScroll, isScrollable, postRender, render, renderSmoothScroll, scrollToChild, setBackgroundColor, setHorizontalScrollAmount, setOutlineColor, setScrollSensitivity, setSmoothScroll, setVerticalScrollAmount
Methods inherited from class io.github.thecsdev.tcdcommons.api.client.gui.TElement
createContextMenu, getAlpha, getChildren, getEnabled, getHeight, getItemRenderer, getParent, getParentTElement, getParentTScreen, getTextRenderer, getTooltip, getTooltipPositioner, getWidth, getX, getY, getZIndex, getZOffset, isDragging, isEnabled, isEnabledAndVisible, isFocusable, isFocused, isFocusedOrHovered, isHoverable, isHovered, isVisible, move, moveChildren, next, previous, setAlpha, setPosition, setPosition, setSize, setSize, setTooltip, setZOffset, tick, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.github.thecsdev.tcdcommons.api.client.gui.TParentElement
addChild, addChild, clearChildren, findChild, findLastChild, findParent, findParentTElement, forEachChild, getEndX, getEndY, removeChild, removeChild
-
Field Details
-
target
-
initWidh
protected final int initWidh -
initHeight
protected final int initHeight -
eOpened
-
eClosed
-
ehParentChanged
-
-
Constructor Details
-
TContextMenuPanel
Creates a newTContextMenuPanel
for a givenTContextMenuPanel
.- Parameters:
target
- TheTElement
thisTContextMenuPanel
is for.
-
-
Method Details
-
getTarget
-
canBeAddedTo
Description copied from class:TElement
Returns true if thisTElement
is okay with being added to a givenTParentElement
.- Overrides:
canBeAddedTo
in classTElement
- Parameters:
futureParent
- TheTParentElement
that is being checked.
-
addButton
Description copied from class:TMenuPanel
Creates and adds a newTMenuPanelButton
with the given text and on-click action.- Overrides:
addButton
in classTMenuPanel
- Parameters:
text
- The menu itemText
.onClick
- The on-click action for the menu item.- Returns:
- The created and added
TMenuPanelButton
.
-
input
Description copied from interface:TParentElement
An input handler that handles inputs on all possibleTInputContext.InputDiscoveryPhase
s.- Specified by:
input
in interfaceTParentElement
- Overrides:
input
in classTPanelElement
- Parameters:
inputContext
- TheTInputContext
containing information about a given input.inputPhase
- The currentTInputContext.InputDiscoveryPhase
.- See Also:
-
open
public final boolean open()- Returns:
- this
-
close
public final boolean close()Closes thisTContextMenuPanel
by removing it from theTElement.getParent()
element. -
isOpen
public final boolean isOpen()Returns true ifTElement.getParent()
is not null. -
closeIfNotFocused
public final boolean closeIfNotFocused()Checks if thisTContextMenuPanel
or one of its children is focused or not. If not, thenclose()
will be called. -
realignPositionToTarget
protected void realignPositionToTarget()Automatically invoked byehParentChanged
.
Aligns thisTContextMenuPanel
for thetarget
element.
Usually invoked when thisTContextMenuPanel
is shown on the screen. -
onRealignChildren
public final void onRealignChildren()Description copied from class:TMenuPanel
Called inTMenuPanel.realignChildren()
.
Place the child re-aligning logic here.- Specified by:
onRealignChildren
in classTMenuPanel
-
findHoveredContextMenu
Tries to find any hoveredTContextMenuPanel
s for a givenTScreen
.- Parameters:
targetScreen
- The targetTScreen
.
-
tryCloseAContextMenu
Looks for aTContextMenuPanel
in a targetTScreen
, and if one is found, it gets closed.- Parameters:
targetScreen
- The targetTScreen
.- Returns:
- True if a
TContextMenuPanel
was found and closed.
-