Improve event handling in few lib components
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.lib.gui;
|
package com.bartlomiejpluta.base.lib.gui;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
import com.bartlomiejpluta.base.api.gui.Component;
|
import com.bartlomiejpluta.base.api.gui.Component;
|
||||||
import com.bartlomiejpluta.base.api.gui.GUI;
|
import com.bartlomiejpluta.base.api.gui.GUI;
|
||||||
|
|
||||||
@@ -46,6 +47,15 @@ public abstract class BaseComponent extends BaseWidget implements Component {
|
|||||||
focused = true;
|
focused = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
if(!focused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
super.handleEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void blur() {
|
public void blur() {
|
||||||
focused = false;
|
focused = false;
|
||||||
|
|||||||
@@ -98,6 +98,12 @@ public abstract class BaseContainer extends BaseComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void blurChildren() {
|
||||||
|
for (var child : children) {
|
||||||
|
child.blur();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
// Populate event downstream
|
// Populate event downstream
|
||||||
|
|||||||
@@ -82,6 +82,10 @@ public abstract class BaseWindow extends BaseWidget implements Window {
|
|||||||
if (content != null) {
|
if (content != null) {
|
||||||
content.handleEvent(event);
|
content.handleEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!event.isConsumed()) {
|
||||||
|
super.handleEvent(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -94,10 +98,12 @@ public abstract class BaseWindow extends BaseWidget implements Window {
|
|||||||
@Override
|
@Override
|
||||||
public void onOpen(WindowManager manager, Object[] args) {
|
public void onOpen(WindowManager manager, Object[] args) {
|
||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
|
content.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClose(WindowManager manager) {
|
public void onClose(WindowManager manager) {
|
||||||
this.manager = null;
|
this.manager = null;
|
||||||
|
content.blur();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ public class HGridOptionChoice extends HGridLayout {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
if(!focused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var index = rows * selectedColumn + selectedRow;
|
var index = rows * selectedColumn + selectedRow;
|
||||||
if (index < children.size()) {
|
if (index < children.size()) {
|
||||||
selectedComponent = children.get(index);
|
selectedComponent = children.get(index);
|
||||||
@@ -90,84 +94,96 @@ public class HGridOptionChoice extends HGridLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNextV();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i / rows == selectedColumn) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedRow = (++selectedRow) % size;
|
|
||||||
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPreviousV();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i / rows == selectedColumn) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedRow = ((--selectedRow) + size) % size;
|
|
||||||
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNextH();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i % rows == selectedRow) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedColumn = (++selectedColumn) % size;
|
|
||||||
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPreviousH();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i % rows == selectedRow) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedColumn = ((--selectedColumn) + size) % size;
|
|
||||||
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectPreviousH() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i % rows == selectedRow) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedColumn = ((--selectedColumn) + size) % size;
|
||||||
|
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNextH() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i % rows == selectedRow) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedColumn = (++selectedColumn) % size;
|
||||||
|
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectPreviousV() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i / rows == selectedColumn) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedRow = ((--selectedRow) + size) % size;
|
||||||
|
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNextV() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i / rows == selectedColumn) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedRow = (++selectedRow) % size;
|
||||||
|
selectedComponent = children.get(rows * selectedColumn + selectedRow);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ public class HOptionChoice extends HLayout {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
if(!focused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (selected < children.size()) {
|
if (selected < children.size()) {
|
||||||
selectedComponent = children.get(selected);
|
selectedComponent = children.get(selected);
|
||||||
selectedComponent.handleEvent(event);
|
selectedComponent.handleEvent(event);
|
||||||
@@ -75,31 +79,37 @@ public class HOptionChoice extends HLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNext();
|
||||||
selected = (++selected) % children.size();
|
|
||||||
selectedComponent = children.get(selected);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if (onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPrevious();
|
||||||
var size = children.size();
|
|
||||||
selected = (((--selected) % size) + size) % size;
|
|
||||||
selectedComponent = children.get(selected);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if (onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectPrevious() {
|
||||||
|
blurChildren();
|
||||||
|
var size = children.size();
|
||||||
|
selected = (((--selected) % size) + size) % size;
|
||||||
|
selectedComponent = children.get(selected);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if (onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNext() {
|
||||||
|
blurChildren();
|
||||||
|
selected = (++selected) % children.size();
|
||||||
|
selectedComponent = children.get(selected);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if (onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ public class VGridOptionChoice extends VGridLayout {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
if(!focused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var index = columns * selectedRow + selectedColumn;
|
var index = columns * selectedRow + selectedColumn;
|
||||||
if (index < children.size()) {
|
if (index < children.size()) {
|
||||||
selectedComponent = children.get(index);
|
selectedComponent = children.get(index);
|
||||||
@@ -90,84 +94,96 @@ public class VGridOptionChoice extends VGridLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNextV();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i % columns == selectedColumn) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedRow = (++selectedRow) % size;
|
|
||||||
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPreviousV();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i % columns == selectedColumn) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedRow = ((--selectedRow) + size) % size;
|
|
||||||
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_RIGHT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNextH();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i / columns == selectedRow) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedColumn = (++selectedColumn) % size;
|
|
||||||
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_LEFT && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPreviousH();
|
||||||
|
|
||||||
int size = 0;
|
|
||||||
for (int i = 0; i < children.size(); ++i) {
|
|
||||||
if (i / columns == selectedRow) ++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
selectedColumn = ((--selectedColumn) + size) % size;
|
|
||||||
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectPreviousH() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i / columns == selectedRow) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedColumn = ((--selectedColumn) + size) % size;
|
||||||
|
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNextH() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i / columns == selectedRow) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedColumn = (++selectedColumn) % size;
|
||||||
|
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectPreviousV() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i % columns == selectedColumn) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedRow = ((--selectedRow) + size) % size;
|
||||||
|
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNextV() {
|
||||||
|
blurChildren();
|
||||||
|
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < children.size(); ++i) {
|
||||||
|
if (i % columns == selectedColumn) ++size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
selectedRow = (++selectedRow) % size;
|
||||||
|
selectedComponent = children.get(columns * selectedRow + selectedColumn);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ public class VOptionChoice extends VLayout {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
if(!focused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (selected < children.size()) {
|
if (selected < children.size()) {
|
||||||
selectedComponent = children.get(selected);
|
selectedComponent = children.get(selected);
|
||||||
selectedComponent.handleEvent(event);
|
selectedComponent.handleEvent(event);
|
||||||
@@ -75,31 +79,37 @@ public class VOptionChoice extends VLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
if (event.getKey() == Key.KEY_DOWN && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectNext();
|
||||||
selected = (++selected) % children.size();
|
|
||||||
selectedComponent = children.get(selected);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
} else if (event.getKey() == Key.KEY_UP && ACTIONS.contains(event.getAction())) {
|
||||||
blur();
|
selectPrevious();
|
||||||
var size = children.size();
|
|
||||||
selected = (((--selected) % size) + size) % size;
|
|
||||||
selectedComponent = children.get(selected);
|
|
||||||
selectedComponent.focus();
|
|
||||||
|
|
||||||
if(onSelect != null) {
|
|
||||||
onSelect.accept(selectedComponent);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.consume();
|
event.consume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectPrevious() {
|
||||||
|
blurChildren();
|
||||||
|
var size = children.size();
|
||||||
|
selected = (((--selected) % size) + size) % size;
|
||||||
|
selectedComponent = children.get(selected);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectNext() {
|
||||||
|
blurChildren();
|
||||||
|
selected = (++selected) % children.size();
|
||||||
|
selectedComponent = children.get(selected);
|
||||||
|
selectedComponent.focus();
|
||||||
|
|
||||||
|
if(onSelect != null) {
|
||||||
|
onSelect.accept(selectedComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
|
|||||||
Reference in New Issue
Block a user