From 5b7fdb549cb5761706db6b16f97c8c634b001b8e Mon Sep 17 00:00:00 2001 From: Zorbatron <46525467+Zorbatron@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:03:19 -0500 Subject: [PATCH] Add shortcut method to toggle panel open or closed --- .../cleanroommc/modularui/api/IPanelHandler.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/cleanroommc/modularui/api/IPanelHandler.java b/src/main/java/com/cleanroommc/modularui/api/IPanelHandler.java index 276c23f19..abe9372be 100644 --- a/src/main/java/com/cleanroommc/modularui/api/IPanelHandler.java +++ b/src/main/java/com/cleanroommc/modularui/api/IPanelHandler.java @@ -61,6 +61,21 @@ static IPanelHandler simple(ModularPanel parent, SecondaryPanel.IPanelBuilder pr @ApiStatus.OverrideOnly void closePanelInternal(); + /** + * Toggles this panel open or closed. Delegates to {@link #openPanel()} and {@link #closePanel()}. + * + * @return {@code true} if the panel was opened, {@code false} if it was closed + */ + default boolean togglePanel() { + if (isPanelOpen()) { + closePanel(); + return false; + } else { + openPanel(); + return true; + } + } + /** * Deletes the current cached panel. Should not be used frequently. * This only works on panels which don't have {@link ItemSlotSH} sync handlers.