diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/CheckBoxWidget.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/CheckBoxWidget.java index 40c67e704..3ee0faeca 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/CheckBoxWidget.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/CheckBoxWidget.java @@ -2,15 +2,42 @@ package com.raoulvdberge.refinedstorage.screen.widget; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.client.config.GuiCheckBox; +import net.minecraftforge.fml.client.config.GuiUtils; +// @Volatile: Copied from Forge 1.12. Remove this if GuiCheckBox gets ported over correctly. public class CheckBoxWidget extends GuiCheckBox { + private static final int BOX_WIDTH = 13; + private IPressable onPress; + private String displayString; public CheckBoxWidget(int xPos, int yPos, String displayString, boolean isChecked, IPressable onPress) { super(xPos, yPos, displayString, isChecked); this.onPress = onPress; - this.width = Minecraft.getInstance().fontRenderer.getStringWidth(displayString) + 2 + 11 + 20; + this.displayString = displayString; + this.width = Minecraft.getInstance().fontRenderer.getStringWidth(displayString) + BOX_WIDTH + 3; + } + + @Override + public void renderButton(int mouseX, int mouseY, float partial) { + if (visible) { + GuiUtils.drawContinuousTexturedBox(WIDGETS_LOCATION, x, y, 0, 46, BOX_WIDTH, height, 200, 20, 2, 3, 2, 2, 0); + + int color = 14737632; + + if (packedFGColor != 0) { + color = packedFGColor; + } else if (!active) { + color = 10526880; + } + + if (isChecked()) { + drawCenteredString(Minecraft.getInstance().fontRenderer, "x", x + BOX_WIDTH / 2 + 1, y + 1, 14737632); + } + + drawString(Minecraft.getInstance().fontRenderer, displayString, x + BOX_WIDTH + 2, y + 2, color); + } } @Override