diff --git a/src/main/java/com/cleanroommc/modularui/widgets/ColorPickerDialog.java b/src/main/java/com/cleanroommc/modularui/widgets/ColorPickerDialog.java index 8d23e381e..b08c1c8fc 100644 --- a/src/main/java/com/cleanroommc/modularui/widgets/ColorPickerDialog.java +++ b/src/main/java/com/cleanroommc/modularui/widgets/ColorPickerDialog.java @@ -57,13 +57,11 @@ public ColorPickerDialog(String name, Consumer resultConsumer, int star .left(5).right(5).height(14) .child(new PageButton(0, controller) .sizeRel(0.5f, 1f) - .background(true, GuiTextures.BUTTON_CLEAN) - .background(false, GuiTextures.SLOT_FLUID) + .invertSelected(true) .overlay(IKey.str("RGB"))) .child(new PageButton(1, controller) .sizeRel(0.5f, 1f) - .background(true, GuiTextures.BUTTON_CLEAN) - .background(false, GuiTextures.SLOT_FLUID) + .invertSelected(true) .overlay(IKey.str("HSV")))) .child(new Row().widthRel(1f).height(12).marginTop(4) .child(IKey.str("Hex: ").asWidget().heightRel(1f)) diff --git a/src/main/java/com/cleanroommc/modularui/widgets/PageButton.java b/src/main/java/com/cleanroommc/modularui/widgets/PageButton.java index 05a0cc206..9e33b4ee0 100644 --- a/src/main/java/com/cleanroommc/modularui/widgets/PageButton.java +++ b/src/main/java/com/cleanroommc/modularui/widgets/PageButton.java @@ -16,6 +16,7 @@ public class PageButton extends Widget implements Interactable { private final int index; private final PagedWidget.Controller controller; private IDrawable inactiveTexture = null; + private boolean invert = false; public PageButton(int index, PagedWidget.Controller controller) { this.index = index; @@ -26,7 +27,7 @@ public PageButton(int index, PagedWidget.Controller controller) { @Override public WidgetTheme getWidgetThemeInternal(ITheme theme) { WidgetThemeSelectable widgetTheme = theme.getToggleButtonTheme(); - return isActive() ? widgetTheme : widgetTheme.getSelected(); + return isActive() ^ invertSelected() ? widgetTheme : widgetTheme.getSelected(); } @Override @@ -63,9 +64,18 @@ public PageButton background(boolean active, IDrawable... background) { } public PageButton tab(TabTexture texture, int location) { - return background(false, texture.get(location, false)) - .background(true, texture.get(location, true)) + return background(invertSelected(), texture.get(location, invertSelected())) + .background(!invertSelected(), texture.get(location, !invertSelected())) .disableHoverBackground() .size(texture.getWidth(), texture.getHeight()); } + + public PageButton invertSelected(boolean invert) { + this.invert = invert; + return getThis(); + } + + public boolean invertSelected() { + return this.invert; + } } diff --git a/src/main/java/com/cleanroommc/modularui/widgets/ToggleButton.java b/src/main/java/com/cleanroommc/modularui/widgets/ToggleButton.java index 454df3934..8df958ce3 100644 --- a/src/main/java/com/cleanroommc/modularui/widgets/ToggleButton.java +++ b/src/main/java/com/cleanroommc/modularui/widgets/ToggleButton.java @@ -11,6 +11,8 @@ public class ToggleButton extends AbstractCycleButtonWidget { + private boolean invert = false; + public ToggleButton() { stateCount(2); } @@ -18,7 +20,7 @@ public ToggleButton() { @Override public WidgetTheme getWidgetThemeInternal(ITheme theme) { WidgetThemeSelectable widgetTheme = theme.getToggleButtonTheme(); - return isValueSelected() ? widgetTheme.getSelected() : widgetTheme; + return isValueSelected() ^ invertSelected() ? widgetTheme.getSelected() : widgetTheme; } public boolean isValueSelected() { @@ -82,4 +84,13 @@ public ToggleButton tooltip(boolean selected, Consumer builder) { public ToggleButton tooltipBuilder(boolean selected, Consumer builder) { return super.tooltipBuilder(selected ? 1 : 0, builder); } + + public ToggleButton invertSelected(boolean invert) { + this.invert = invert; + return getThis(); + } + + public boolean invertSelected() { + return this.invert; + } }