diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/ButtonState.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/ButtonState.java new file mode 100644 index 0000000..ad8db76 --- /dev/null +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/ButtonState.java @@ -0,0 +1,39 @@ +package de.extio.game_engine.renderer.g2d.control.components; + +public class ButtonState { + + private volatile boolean toggled; + + private volatile boolean pressed; + + private volatile boolean hovered; + + public boolean isToggled() { + return this.toggled; + } + + public void setToggled(final boolean toggled) { + this.toggled = toggled; + } + + public boolean isPressed() { + return this.pressed; + } + + public void setPressed(final boolean pressed) { + this.pressed = pressed; + } + + public boolean isHovered() { + return this.hovered; + } + + public void setHovered(final boolean hovered) { + this.hovered = hovered; + } + + public void toggleToggled() { + this.toggled = !this.toggled; + } + +} diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomAbstractButton.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomAbstractButton.java index a995b0d..780bc28 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomAbstractButton.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomAbstractButton.java @@ -37,17 +37,9 @@ public abstract class CustomAbstractButton extends Component { } }; - protected static final int STATE_NORMAL = 0; - - protected static final int STATE_TOGGLED = 1; - - protected static final int STATE_PRESSED = 2; - - protected static final int STATE_HOVERED = 4; - protected String caption; - protected int state = STATE_NORMAL; + protected final ButtonState state = new ButtonState(); protected int fontSize; @@ -82,17 +74,11 @@ public abstract class CustomAbstractButton extends Component { } public boolean isToggled() { - return (this.state & STATE_TOGGLED) != 0; + return this.state.isToggled(); } public void setToggled(final boolean toggled) { - if (toggled) { - this.state |= STATE_TOGGLED; - } - else { - this.state &= ~STATE_TOGGLED; - } - + this.state.setToggled(toggled); this.dirty = true; } @@ -142,7 +128,7 @@ public abstract class CustomAbstractButton extends Component { return; } - CustomAbstractButton.this.state |= STATE_PRESSED; + CustomAbstractButton.this.state.setPressed(true); CustomAbstractButton.this.dirty = true; e.consume(); } @@ -154,13 +140,13 @@ public abstract class CustomAbstractButton extends Component { return; } - CustomAbstractButton.this.state &= ~STATE_PRESSED; + CustomAbstractButton.this.state.setPressed(false); if (CustomAbstractButton.this.toggle) { - CustomAbstractButton.this.state ^= STATE_TOGGLED; + CustomAbstractButton.this.state.toggleToggled(); } CustomAbstractButton.this.dirty = true; - listener.actionPerformed(new ActionEvent(this, CustomAbstractButton.this.state & STATE_TOGGLED, null)); + listener.actionPerformed(new ActionEvent(this, CustomAbstractButton.this.state.isToggled() ? 1 : 0, null)); e.consume(); } @@ -171,7 +157,7 @@ public abstract class CustomAbstractButton extends Component { return; } - CustomAbstractButton.this.state |= STATE_HOVERED; + CustomAbstractButton.this.state.setHovered(true); CustomAbstractButton.this.dirty = true; CustomAbstractButton.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY()); e.consume(); @@ -180,7 +166,7 @@ public abstract class CustomAbstractButton extends Component { @Override public void mouseExited(final MouseEvent e) { CustomAbstractButton.this.lastMousePosition = null; - CustomAbstractButton.this.state &= ~STATE_HOVERED; + CustomAbstractButton.this.state.setHovered(false); CustomAbstractButton.this.dirty = true; e.consume(); } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomButton.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomButton.java index 627a9d3..03acc41 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomButton.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomButton.java @@ -29,7 +29,7 @@ public class CustomButton extends CustomAbstractButton { final var patternRenderer = this.themeManager.getPatternRenderer(theme.getPatternRendererName()); if (patternRenderer != null) { - patternRenderer.drawButton(g2d, 0, 0, this.getWidth(), this.getHeight(), this.isEnabled(), this.state, this.backgroundColor, this.scaleFactor, theme); + patternRenderer.drawButton(g2d, 0, 0, this.getWidth(), this.getHeight(), this.isEnabled(), this.state.isPressed(), this.state.isHovered(), this.state.isToggled(), this.backgroundColor, this.scaleFactor, theme); } final var bgrStrength = (this.getWidth() < 48 || this.getHeight() < 48) ? 0 : 2; @@ -41,10 +41,10 @@ public class CustomButton extends CustomAbstractButton { g2d.drawImage(this.icon, 4 + bgrStrength, 4 + bgrStrength, this.getWidth() - 4 - bgrStrength, this.getHeight() - 4 - bgrStrength, 0, 0, this.icon.getWidth(), this.icon.getHeight(), null); } else if (this.caption != null) { - if ((this.state & STATE_HOVERED) != 0) { + if (this.state.isHovered()) { g2d.setColor(theme.getTextNormal().adjustBrightness(theme.getHoverBrightnessAdjustment()).toColor()); } - else if ((this.state & STATE_TOGGLED) != 0) { + else if (this.state.isToggled()) { g2d.setColor(theme.getTextNormal().adjustBrightness(theme.getHoverBrightnessAdjustment()).toColor()); } else if (this.isEnabled()) { diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSwitch.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSwitch.java index 0772d47..162b719 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSwitch.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSwitch.java @@ -32,21 +32,21 @@ public class CustomSwitch extends CustomAbstractButton { final var dimY = this.getHeight() - 1; final var dimX = (int) (dimY * 1.5); - if ((this.state & STATE_TOGGLED) == 0) { + if (!this.state.isToggled()) { if (patternRenderer != null) { - patternRenderer.drawButton(g2d, 6, 4, (int) (dimX / 1.5) - 6, this.getHeight() - 9, this.isEnabled(), this.state, null, this.scaleFactor, theme); + patternRenderer.drawButton(g2d, 6, 4, (int) (dimX / 1.5) - 6, this.getHeight() - 9, this.isEnabled(), this.state.isPressed(), this.state.isHovered(), this.state.isToggled(), null, this.scaleFactor, theme); } } else { if (patternRenderer != null) { - patternRenderer.drawButton(g2d, dimX - (int) (dimX / 1.5) - 3, 4, (int) (dimX / 1.5) - 6, this.getHeight() - 9, this.isEnabled(), this.state, null, this.scaleFactor, theme); + patternRenderer.drawButton(g2d, dimX - (int) (dimX / 1.5) - 3, 4, (int) (dimX / 1.5) - 6, this.getHeight() - 9, this.isEnabled(), this.state.isPressed(), this.state.isHovered(), this.state.isToggled(), null, this.scaleFactor, theme); } } - if ((this.state & STATE_HOVERED) != 0) { + if (this.state.isHovered()) { g2d.setColor(theme.getTextNormal().adjustBrightness(theme.getHoverBrightnessAdjustment()).toColor()); } - else if ((this.state & STATE_TOGGLED) != 0) { + else if (this.state.isToggled()) { g2d.setColor(theme.getTextNormal().adjustBrightness(theme.getHoverBrightnessAdjustment()).toColor()); } else if (this.isEnabled()) { @@ -65,7 +65,7 @@ public class CustomSwitch extends CustomAbstractButton { this.caption); if (this.drawBorder) { - final var borderColor1 = (this.state & STATE_HOVERED) != 0 ? theme.getSelectionPrimary().toColor() : theme.getBorderOuter().toColor(); + final var borderColor1 = this.state.isHovered() ? theme.getSelectionPrimary().toColor() : theme.getBorderOuter().toColor(); if (patternRenderer != null) { patternRenderer.drawDecorativeBorder(g2d, 0, 0, this.getWidth() - 1, this.getHeight() - 1, 2, borderColor1); diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomWindowCloseButton.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomWindowCloseButton.java index 95098dd..dd0bf68 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomWindowCloseButton.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomWindowCloseButton.java @@ -27,7 +27,7 @@ public class CustomWindowCloseButton extends CustomAbstractButton { final var patternRenderer = this.themeManager.getPatternRenderer(theme.getPatternRendererName()); if (patternRenderer != null) { - patternRenderer.drawCloseButton(g2d, this.getWidth(), this.getHeight(), this.isEnabled(), this.state, this.backgroundColor, this.scaleFactor, theme); + patternRenderer.drawCloseButton(g2d, this.getWidth(), this.getHeight(), this.isEnabled(), this.state.isPressed(), this.state.isHovered(), this.state.isToggled(), this.backgroundColor, this.scaleFactor, theme); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/BevelPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/BevelPatternRenderer.java index a55d24e..55e05a6 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/BevelPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/BevelPatternRenderer.java @@ -53,9 +53,7 @@ public class BevelPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_PRESSED = 2; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { // Button background final Color btnBg = backgroundColor != null ? backgroundColor : theme.getBackgroundNormal().toColor(); @@ -129,23 +127,19 @@ public class BevelPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -155,16 +149,16 @@ public class BevelPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -178,10 +172,9 @@ public class BevelPatternRenderer implements PatternRenderer { if (bevelStrength < 1) bevelStrength = 1; - final boolean pressed = (state & STATE_PRESSED) != 0; - final Color highlight = (state & STATE_HOVERED) != 0 ? theme.getSelectionPrimary().toColor() : theme.getBorderOuter().toColor(); + final Color highlight = hovered ? theme.getSelectionPrimary().toColor() : theme.getBorderOuter().toColor(); final Color shadow = enabled ? - (state & STATE_HOVERED) != 0 ? theme.getSelectionSecondary().toColor() : theme.getBorderInner().toColor() : + hovered ? theme.getSelectionSecondary().toColor() : theme.getBorderInner().toColor() : theme.getBorderInnerDisabled().toColor(); drawBevel(g2d, x, y, width, height, bevelStrength, !pressed, highlight, shadow); diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/BlueprintPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/BlueprintPatternRenderer.java index d4c993b..03c8230 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/BlueprintPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/BlueprintPatternRenderer.java @@ -84,9 +84,7 @@ public class BlueprintPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_PRESSED = 2; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { // Button background (transparent or slightly lighter blue) Color btnBg = backgroundColor; @@ -143,23 +141,19 @@ public class BlueprintPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -169,16 +163,16 @@ public class BlueprintPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -201,7 +195,7 @@ public class BlueprintPatternRenderer implements PatternRenderer { } final var borderStrength = Math.max(1, (int) (2 * scaleFactor)); - final var borderColor = (state & STATE_HOVERED) != 0 ? theme.getSelectionPrimary().toColor() : + final var borderColor = hovered ? theme.getSelectionPrimary().toColor() : enabled ? theme.getBorderOuter().toColor() : theme.getBorderInnerDisabled().toColor(); this.drawDecorativeBorder(g2d, x, y, width, height, borderStrength, borderColor); } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ChroniclePatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ChroniclePatternRenderer.java index d38befe..a18f9f6 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ChroniclePatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ChroniclePatternRenderer.java @@ -92,14 +92,7 @@ public class ChroniclePatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_HOVERED = 4; - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - - final boolean hovered = (state & STATE_HOVERED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean toggled = (state & STATE_TOGGLED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { Color base = backgroundColor; if (base == null) { @@ -199,15 +192,7 @@ public class ChroniclePatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ContemporaryPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ContemporaryPatternRenderer.java index 4de3a9f..02da871 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ContemporaryPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ContemporaryPatternRenderer.java @@ -109,14 +109,7 @@ public class ContemporaryPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_HOVERED = 4; - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - - final boolean hovered = (state & STATE_HOVERED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean toggled = (state & STATE_TOGGLED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { Color base = backgroundColor; if (base == null) { @@ -219,15 +212,7 @@ public class ContemporaryPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/DreamPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/DreamPatternRenderer.java index df0794e..319cfb5 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/DreamPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/DreamPatternRenderer.java @@ -46,13 +46,8 @@ public class DreamPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); Color bg = backgroundColor; if (bg == null) { @@ -131,27 +126,19 @@ public class DreamPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -161,16 +148,16 @@ public class DreamPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/FantasyPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/FantasyPatternRenderer.java index 8278a2d..3931372 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/FantasyPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/FantasyPatternRenderer.java @@ -55,13 +55,8 @@ public class FantasyPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); Color bg = backgroundColor; if (bg == null) { @@ -141,27 +136,19 @@ public class FantasyPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -171,16 +158,16 @@ public class FantasyPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/MetroPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/MetroPatternRenderer.java index c868a9f..441fd0b 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/MetroPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/MetroPatternRenderer.java @@ -68,13 +68,8 @@ public class MetroPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); Color bg = backgroundColor; if (bg == null) { @@ -143,27 +138,19 @@ public class MetroPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -173,16 +160,16 @@ public class MetroPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ModernPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ModernPatternRenderer.java index 9a916e3..8f9b6f2 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/ModernPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/ModernPatternRenderer.java @@ -48,13 +48,8 @@ public class ModernPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); Color bgColor = backgroundColor; if (bgColor == null) { @@ -133,27 +128,19 @@ public class ModernPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -163,16 +150,16 @@ public class ModernPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/PatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/PatternRenderer.java index 6e0bc0a..53594c9 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/PatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/PatternRenderer.java @@ -60,12 +60,14 @@ public interface PatternRenderer { * @param width Width of the button * @param height Height of the button * @param enabled Whether the button is enabled - * @param state Button state flags (hovered, pressed, toggled) + * @param pressed Whether the button is pressed + * @param hovered Whether the button is hovered + * @param toggled Whether the button is toggled * @param backgroundColor Optional background color override (null to use theme defaults) * @param scaleFactor UI scale factor * @param theme Theme to use for colors */ - void drawCloseButton(Graphics2D g2d, int width, int height, boolean enabled, int state, Color backgroundColor, double scaleFactor, Theme theme); + void drawCloseButton(Graphics2D g2d, int width, int height, boolean enabled, boolean pressed, boolean hovered, boolean toggled, Color backgroundColor, double scaleFactor, Theme theme); /** * Draws a background pattern for the UI on layer BACKGROUND1 @@ -85,10 +87,12 @@ public interface PatternRenderer { * @param width Width of the button * @param height Height of the button * @param enabled Whether the button is enabled - * @param state Button state flags (normal, hovered, pressed, toggled) + * @param pressed Whether the button is pressed + * @param hovered Whether the button is hovered + * @param toggled Whether the button is toggled * @param backgroundColor Optional background color override (null to use theme defaults) * @param scaleFactor UI scale factor * @param theme Theme to use for colors */ - void drawButton(Graphics2D g2d, int x, int y, int width, int height, boolean enabled, int state, Color backgroundColor, double scaleFactor, Theme theme); + void drawButton(Graphics2D g2d, int x, int y, int width, int height, boolean enabled, boolean pressed, boolean hovered, boolean toggled, Color backgroundColor, double scaleFactor, Theme theme); } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/SpacecraftPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/SpacecraftPatternRenderer.java index c05d405..c8f6e4b 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/SpacecraftPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/SpacecraftPatternRenderer.java @@ -64,13 +64,8 @@ public class SpacecraftPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); Color bgColor = null; if (pressed) { @@ -165,23 +160,19 @@ public class SpacecraftPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -191,16 +182,16 @@ public class SpacecraftPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -211,7 +202,7 @@ public class SpacecraftPatternRenderer implements PatternRenderer { g2d.fillRect(x, y, width, height); final var borderStrength = Math.max(2, (int) (3 * scaleFactor)); - final var borderColor = (state & STATE_HOVERED) != 0 ? theme.getSelectionPrimary().toColor() : + final var borderColor = hovered ? theme.getSelectionPrimary().toColor() : enabled ? theme.getBorderInner().toColor() : theme.getBorderInnerDisabled().toColor(); this.drawDecorativeBorder(g2d, x, y, width, height, borderStrength, borderColor); } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/SteampunkPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/SteampunkPatternRenderer.java index 06af79f..ab6ddad 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/SteampunkPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/SteampunkPatternRenderer.java @@ -85,13 +85,8 @@ public class SteampunkPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); final var base = (backgroundColor != null) ? backgroundColor : theme.getBorderInner().toColor(); final var hsb = Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), null); @@ -196,27 +191,19 @@ public class SteampunkPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -226,16 +213,16 @@ public class SteampunkPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/UrbanPatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/UrbanPatternRenderer.java index 2de2788..6ed98c7 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/UrbanPatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/UrbanPatternRenderer.java @@ -54,13 +54,8 @@ public class UrbanPatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); final var base = (backgroundColor != null) ? backgroundColor : theme.getBorderInner().toColor(); final var hsb = Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), null); @@ -124,27 +119,19 @@ public class UrbanPatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -154,16 +141,16 @@ public class UrbanPatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/theme/VintagePatternRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/theme/VintagePatternRenderer.java index 9dc1d0d..5fe12ff 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/theme/VintagePatternRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/theme/VintagePatternRenderer.java @@ -87,13 +87,8 @@ public class VintagePatternRenderer implements PatternRenderer { } @Override - public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final var STATE_HOVERED = 4; - final var STATE_TOGGLED = 1; - final var STATE_PRESSED = 2; - - final var highlight = (state & (STATE_HOVERED | STATE_TOGGLED)) != 0; - final var pressed = (state & STATE_PRESSED) != 0; + public void drawCloseButton(final Graphics2D g2d, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { + final var highlight = (hovered || toggled); final var size = Math.max(2, (int) (3 * scaleFactor)); @@ -167,27 +162,19 @@ public class VintagePatternRenderer implements PatternRenderer { } @Override - public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final int state, final Color backgroundColor, final double scaleFactor, final Theme theme) { - final int STATE_TOGGLED = 1; - final int STATE_PRESSED = 2; - final int STATE_HOVERED = 4; - - final boolean toggled = (state & STATE_TOGGLED) != 0; - final boolean pressed = (state & STATE_PRESSED) != 0; - final boolean hovered = (state & STATE_HOVERED) != 0; - + public void drawButton(final Graphics2D g2d, final int x, final int y, final int width, final int height, final boolean enabled, final boolean pressed, final boolean hovered, final boolean toggled, final Color backgroundColor, final double scaleFactor, final Theme theme) { float h, s, b; if (backgroundColor == null) { - final var baseColor = (state & STATE_TOGGLED) == 0 ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); + final var baseColor = !toggled ? theme.getBackgroundNormal() : theme.getBackgroundSelected(); h = baseColor.getHue(); s = baseColor.getSaturation(); b = baseColor.getBrightness(); - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } } @@ -197,16 +184,16 @@ public class VintagePatternRenderer implements PatternRenderer { h = hsb[0]; s = hsb[1]; - if ((state & STATE_TOGGLED) == 0) { + if (!toggled) { b = 0.30F; } else { b = 0.50F; } - if ((state & STATE_PRESSED) != 0) { + if (pressed) { b += theme.getPressedBrightnessAdjustment(); } - else if ((state & STATE_HOVERED) != 0) { + else if (hovered) { b += theme.getHoverBrightnessAdjustment(); } }