@@ -0,0 +1,1740 @@
+package aeronicamc.mods.mxtune.gui.widget;%0A%0Aimport net.minecraft.client.Minecraft;%0Aimport net.minecraft.client.gui.FontRenderer;%0Aimport net.minecraft.client.gui.widget.TextFieldWidget;%0Aimport net.minecraft.util.text.ITextComponent;%0Aimport net.minecraft.util.text.StringTextComponent;%0A%0Aimport javax.annotation.Nullable;%0A%0Apublic class MXTextFieldWidget extends TextFieldWidget%0A%7B%0A    protected int padding = 0;%0A    public MXTextFieldWidget(int pMaxLength)%0A    %7B%0A        super(Minecraft.getInstance().font, 0, 0, 0, 0, new StringTextComponent(%22%22));%0A        this.setMaxLength(pMaxLength);%0A    %7D%0A%0A    public MXTextFieldWidget(FontRenderer pFont, int pX, int pY, int pWidth, int pHeight, ITextComponent pMessage)%0A    %7B%0A        super(pFont, pX, pY, pWidth, pHeight, pMessage);%0A    %7D%0A%0A    public MXTextFieldWidget(FontRenderer pFont, int pX, int pY, int pWidth, int pHeight, @Nullable TextFieldWidget p_i232259_6_, ITextComponent pMessage)%0A    %7B%0A        super(pFont, pX, pY, pWidth, pHeight, p_i232259_6_, pMessage);%0A    %7D%0A%0A    public void setPosition(int pX, int pY)%0A    %7B%0A        this.x = pX;%0A        this.y = pY;%0A    %7D%0A%0A    public void setLayout(int pX, int pY, int pWidth, int pHeight)%0A    %7B%0A        this.x = pX;%0A        this.y = pY;%0A        this.width = pWidth;%0A        this.height = pHeight;%0A    %7D%0A%0A    public int getLeft()%0A    %7B%0A        return this.x;%0A    %7D%0A%0A    public int getTop()%0A    %7B%0A        return this.y;%0A    %7D%0A%0A    public int getRight()%0A    %7B%0A        return this.x + this.width + padding;%0A    %7D%0A%0A    public int getBottom()%0A    %7B%0A        return this.y + this.height + padding;%0A    %7D%0A%0A    public int getPadding()%0A    %7B%0A        return padding;%0A    %7D%0A%0A    public void setPadding(int padding)%0A    %7B%0A        this.padding = padding;%0A    %7D%0A%7D%0A

Extend vanilla text widget to allow persistent use. Keeps state across screen resizing.