package com.badlogic.gdx.ai.tests.utils.scene2d;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
/** A text button to pause/resume tests. The cover actor (if any) is made visible when the button is checked, invisible otherwise.
*
* @author davebaol */
public class PauseButton extends TextButton {
private static final String PAUSE_AI = "Pause AI";
private static final String RESUME_AI = "Resume AI";
public PauseButton (Skin skin) {
this(null, skin);
}
public PauseButton (Actor cover, Skin skin) {
super(PAUSE_AI, skin.get(TextButtonStyle.class));
initialize(cover);
}
public PauseButton (Skin skin, String styleName) {
this(null, skin, styleName);
}
public PauseButton (Actor cover, Skin skin, String styleName) {
super(PAUSE_AI, skin.get(styleName, TextButtonStyle.class));
initialize(cover);
}
public PauseButton (TextButtonStyle style) {
this(null, style);
}
public PauseButton (Actor cover, TextButtonStyle style) {
super(PAUSE_AI, style);
initialize(cover);
}
private void initialize (final Actor cover) {
this.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
boolean pause = isChecked();
setText(pause ? RESUME_AI : PAUSE_AI);
if (cover != null) cover.setVisible(pause);
}
});
}
}