From 2b2bbbf49aa286089c939e4babac5525429f33b6 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Fri, 10 Jul 2015 12:00:05 +0200 Subject: [PATCH] Add hint to GuiTextField --- .../gui/element/AbstractGuiTextField.java | 30 ++++++++++++++++++- .../minecraft/gui/element/IGuiTextField.java | 5 ++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTextField.java b/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTextField.java index 42fc05ff..8a419259 100644 --- a/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTextField.java +++ b/src/main/java/de/johni0702/minecraft/gui/element/AbstractGuiTextField.java @@ -22,6 +22,7 @@ package de.johni0702.minecraft.gui.element; +import com.google.common.base.Strings; import de.johni0702.minecraft.gui.GuiRenderer; import de.johni0702.minecraft.gui.RenderInfo; import de.johni0702.minecraft.gui.container.GuiContainer; @@ -29,7 +30,9 @@ import de.johni0702.minecraft.gui.function.Clickable; import de.johni0702.minecraft.gui.function.Focusable; import de.johni0702.minecraft.gui.function.Tickable; import de.johni0702.minecraft.gui.function.Typeable; +import lombok.Getter; import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; import org.lwjgl.input.Keyboard; import org.lwjgl.util.ReadableDimension; import org.lwjgl.util.ReadablePoint; @@ -43,6 +46,9 @@ public abstract class AbstractGuiTextField> private Focusable next, previous; + @Getter + private String hint; + public AbstractGuiTextField() { this.wrapped = new net.minecraft.client.gui.GuiTextField(0, Minecraft.getMinecraft().fontRendererObj, 0, 0, 0, 0); } @@ -59,7 +65,18 @@ public abstract class AbstractGuiTextField> wrapped.yPosition = position.getY(); wrapped.width = size.getWidth(); wrapped.height = size.getHeight(); - wrapped.drawTextBox(); + + if (wrapped.text.isEmpty() && !isFocused() && !Strings.isNullOrEmpty(hint)) { + wrapped.setEnabled(false); + wrapped.setDisabledTextColour(0xff404040); + wrapped.text = hint; + wrapped.drawTextBox(); + wrapped.text = ""; + wrapped.setDisabledTextColour(0xff707070); + wrapped.setEnabled(isEnabled()); + } else { + wrapped.drawTextBox(); + } } @Override @@ -196,4 +213,15 @@ public abstract class AbstractGuiTextField> this.textChanged = textChanged; return getThis(); } + + @Override + public T setHint(String hint) { + this.hint = hint; + return getThis(); + } + + @Override + public T setI18nHint(String hint, Object... args) { + return setHint(I18n.format(hint)); + } } diff --git a/src/main/java/de/johni0702/minecraft/gui/element/IGuiTextField.java b/src/main/java/de/johni0702/minecraft/gui/element/IGuiTextField.java index cbfa6ad1..499af025 100644 --- a/src/main/java/de/johni0702/minecraft/gui/element/IGuiTextField.java +++ b/src/main/java/de/johni0702/minecraft/gui/element/IGuiTextField.java @@ -33,4 +33,9 @@ public interface IGuiTextField> extends GuiElement T onEnter(Runnable onEnter); T onTextChanged(Runnable textChanged); + + String getHint(); + T setHint(String hint); + + T setI18nHint(String hint, Object... args); }