package org.ege.widget;
import okj.easy.core.Timer;
import okj.easy.core.eAdmin;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
public abstract class Dialog extends Window {
public static int DIALOG_NUMBER = 0;
Attributes mAttr;
boolean isStarting = true;
float mAutoHideTime = -1;
public Dialog (Skin skin) {
this("", skin.get(DialogStyle.class));
}
public Dialog (String title, Skin skin) {
this(title, skin.get(DialogStyle.class));
}
public Dialog (String windowtitle, DialogStyle style) {
super(windowtitle, style);
mAttr = style.attr;
setBounds(mAttr.startX, mAttr.startY, mAttr.width, mAttr.height);
}
public Dialog setAutoHide (float time) {
mAutoHideTime = time;
return this;
}
protected abstract void init (final Dialog d);
public void show (Layout layout) {
DIALOG_NUMBER++;
init(this);
setZIndex(Integer.MAX_VALUE);
layout.addActor(this);
if (mAutoHideTime > 0)
eAdmin.egame.schedule(new Timer.Task() {
@Override
public void run () {
hide();
}
}, mAutoHideTime);
}
public void hide () {
DIALOG_NUMBER--;
clear();
remove();
}
public Dialog setFontColor (Color color) {
style.titleFont.setColor(color);
return this;
}
public Dialog setFontColor (float r, float g, float b, float a) {
style.titleFont.setColor(r, g, b, a);
return this;
}
public float getDstX () {
if (mAttr == null)
return getX();
return mAttr.x;
}
public float getDstY () {
if (mAttr == null)
return getY();
return mAttr.y;
}
public float getStartX () {
if (mAttr == null)
return getX();
return mAttr.startX;
}
public float getStartY () {
if (mAttr == null)
return getY();
return mAttr.startY;
}
public static class DialogStyle extends WindowStyle {
public Attributes attr;
}
}