57 lines
1.1 KiB
Java
57 lines
1.1 KiB
Java
package io.gitlab.jfronny.inceptum.windows;
|
|
|
|
import imgui.flag.ImGuiWindowFlags;
|
|
import imgui.type.ImBoolean;
|
|
import io.gitlab.jfronny.inceptum.InceptumGui;
|
|
|
|
import java.io.Closeable;
|
|
|
|
public abstract class Window implements Closeable {
|
|
private final String name;
|
|
private final ImBoolean openState = new ImBoolean(true);
|
|
private State state = State.New;
|
|
|
|
public Window(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public void preFirstDraw() {
|
|
}
|
|
public abstract void draw();
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public void close() {
|
|
state = State.Closed;
|
|
openState.set(false);
|
|
InceptumGui.WINDOWS.remove(this);
|
|
}
|
|
|
|
public boolean isNew() {
|
|
if (state == State.New) {
|
|
state = State.Open;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean isClosed() {
|
|
return state == State.Closed;
|
|
}
|
|
|
|
public int getFlags() {
|
|
return ImGuiWindowFlags.AlwaysAutoResize;
|
|
}
|
|
|
|
public ImBoolean getOpenState() {
|
|
return openState;
|
|
}
|
|
|
|
public enum State {
|
|
New, Open, Closed
|
|
}
|
|
}
|