diff options
author | isXander <xandersmith2008@gmail.com> | 2023-03-15 18:07:44 +0000 |
---|---|---|
committer | isXander <xandersmith2008@gmail.com> | 2023-03-15 18:07:44 +0000 |
commit | c02229186aa13b1d699e2d00d24865260f158a54 (patch) | |
tree | 253a1b6adb72ef4299bc256b03482dd4b79d41c1 /src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java | |
parent | c8a86cff89aa9072b6917c628406d3a06f4934ae (diff) | |
parent | e51e9bc95e2e271c8d55b063f9117eda0a100ab0 (diff) | |
download | YetAnotherConfigLib-c02229186aa13b1d699e2d00d24865260f158a54.tar.gz YetAnotherConfigLib-c02229186aa13b1d699e2d00d24865260f158a54.tar.bz2 YetAnotherConfigLib-c02229186aa13b1d699e2d00d24865260f158a54.zip |
Merge branch 'update/1.19.4' into 1.19.x/dev
# Conflicts:
# build.gradle.kts
Diffstat (limited to 'src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java')
-rw-r--r-- | src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java b/src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java index 0017b59..1dfae0b 100644 --- a/src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java +++ b/src/client/java/dev/isxander/yacl/gui/controllers/LabelController.java @@ -6,12 +6,18 @@ import dev.isxander.yacl.api.Option; import dev.isxander.yacl.api.utils.Dimension; import dev.isxander.yacl.gui.AbstractWidget; import dev.isxander.yacl.gui.YACLScreen; +import net.minecraft.client.gui.ComponentPath; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.gui.components.MultiLineLabel; +import net.minecraft.client.gui.narration.NarratedElementType; +import net.minecraft.client.gui.narration.NarrationElementOutput; +import net.minecraft.client.gui.navigation.FocusNavigationEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; import net.minecraft.network.chat.Style; import net.minecraft.util.FormattedCharSequence; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -50,6 +56,7 @@ public class LabelController implements Controller<Component> { public class LabelControllerElement extends AbstractWidget { private List<FormattedCharSequence> wrappedText; protected MultiLineLabel wrappedTooltip; + protected boolean focused; protected final YACLScreen screen; @@ -70,6 +77,13 @@ public class LabelController implements Controller<Component> { textRenderer.drawShadow(matrices, text, getDimension().x() + getXPadding(), y + getYPadding(), option().available() ? -1 : 0xFFA0A0A0); y += textRenderer.lineHeight; } + + if (isFocused()) { + GuiComponent.fill(matrices, getDimension().x() - 1, getDimension().y() - 1, getDimension().xLimit() + 1, getDimension().y(), -1); + GuiComponent.fill(matrices, getDimension().x() - 1, getDimension().y() - 1, getDimension().x(), getDimension().yLimit() + 1, -1); + GuiComponent.fill(matrices, getDimension().x() - 1, getDimension().yLimit(), getDimension().xLimit() + 1, getDimension().yLimit() + 1, -1); + GuiComponent.fill(matrices, getDimension().xLimit(), getDimension().y() - 1, getDimension().xLimit() + 1, getDimension().yLimit() + 1, -1); + } } @Override @@ -147,5 +161,33 @@ public class LabelController implements Controller<Component> { public boolean matchesSearch(String query) { return formatValue().getString().toLowerCase().contains(query.toLowerCase()); } + + @Nullable + @Override + public ComponentPath nextFocusPath(FocusNavigationEvent focusNavigationEvent) { + if (!option().available()) + return null; + return !this.isFocused() ? ComponentPath.leaf(this) : null; + } + + @Override + public boolean isFocused() { + return focused; + } + + @Override + public void setFocused(boolean focused) { + this.focused = focused; + } + + @Override + public void updateNarration(NarrationElementOutput builder) { + builder.add(NarratedElementType.TITLE, formatValue()); + } + + @Override + public NarrationPriority narrationPriority() { + return NarrationPriority.FOCUSED; + } } } |