Render focused button's focus image in the menu
Buttons with a focus image now swap to it while selected, giving visible feedback when navigating with the arrow keys.
This commit is contained in:
@@ -8,6 +8,11 @@ public interface IDisplay {
|
|||||||
|
|
||||||
Object getAnimImage();
|
Object getAnimImage();
|
||||||
|
|
||||||
|
/** The image shown while this object has input focus, or {@code null}. */
|
||||||
|
default Object getFocusImage() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
int getX();
|
int getX();
|
||||||
|
|
||||||
int getY();
|
int getY();
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ public class ButtonObject extends BasePositionObject {
|
|||||||
return image.getImage();
|
return image.getImage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getFocusImage() {
|
||||||
|
return focus.getImage();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setFocus() {
|
public void setFocus() {
|
||||||
trigger(onFocusIn);
|
trigger(onFocusIn);
|
||||||
|
|||||||
@@ -112,7 +112,12 @@ public final class RcoRenderer implements Display {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void draw(GraphicsContext g, IDisplay display) {
|
private void draw(GraphicsContext g, IDisplay display) {
|
||||||
Image image = decode(display.getImage());
|
Object source = display.getImage();
|
||||||
|
if (display == focus && display.getFocusImage() != null) {
|
||||||
|
source = display.getFocusImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
Image image = decode(source);
|
||||||
if (image == null) {
|
if (image == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user