package com.drakulo.games.ais.ui.component.window;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import com.drakulo.games.ais.core.Settings;
import com.drakulo.games.ais.ui.I18n;
import com.drakulo.games.ais.ui.UIHelper;
import com.drakulo.games.ais.ui.component.ActionHandler;
import com.drakulo.games.ais.ui.component.UIComponent;
import com.drakulo.games.ais.ui.component.button.Button;
import com.drakulo.games.ais.ui.component.button.TextButton;
/**
* Renders a simple centered window
*
* @author Drakulo
*
*/
public abstract class CenteredWindow extends UIComponent {
/** The window Title */
protected String title;
/** Close button */
private TextButton closeButton;
protected CenteredWindow(int width, int height) {
setSize(width, height);
final int buttonX = this.getOX() + this.width / 2
- Button.DEFAULT_WIDTH / 2;
final int buttonY = this.getOY() + this.height - Button.DEFAULT_HEIGHT
- 5;
this.closeButton = new TextButton(I18n.get("global.close"), buttonX, buttonY);
this.closeButton.setActionHandler(new ActionHandler() {
@Override
public void run() {
hide();
}
});
}
@Override
public void render(Graphics g) throws SlickException {
// Rendering of the background
UIHelper.drawBox(g, this.ox, this.oy, this.width, this.height);
// Render the close button
this.closeButton.render(g);
}
@Override
public void update(Input input) throws SlickException {
this.closeButton.update(input);
}
protected void setSize(int width, int height) {
this.width = width;
this.height = height;
this.ox = Settings.WIDTH / 2 - width / 2;
this.oy = Settings.HEIGHT / 2 - height / 2;
}
}