Window close should have an close callback listener
Opened this issue · 1 comments
ronjunevaldoz commented
Assume using kotlin
addCloseButton(onClose = {
println("window closed")
})
public void addCloseButton () {
Label titleLabel = getTitleLabel();
Table titleTable = getTitleTable();
VisImageButton closeButton = new VisImageButton("close-window");
titleTable.add(closeButton).padRight(-getPadRight() + 0.7f);
closeButton.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
close();
}
});
closeButton.addListener(new ClickListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
event.cancel();
return true;
}
});
if (titleLabel.getLabelAlign() == Align.center && titleTable.getChildren().size == 2)
titleTable.getCell(titleLabel).padLeft(closeButton.getWidth() * 2);
}
czyzby commented
Callback support would probably be the most convenient approach, especially with Java 8+ or Kotlin. For now, the workaround would be to extend the class and override the protected void close
method. Remember to call super
if you want the default fade-out behavior.