gdxapp4d/main-gdxapp/src/main/love/distributedrebirth/gdxapp/desktop/DeskAppScreen.java
2022-02-13 19:29:46 +01:00

75 lines
1.7 KiB
Java

package love.distributedrebirth.gdxapp.desktop;
import java.util.ArrayList;
import java.util.List;
import imgui.ImGui;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DeskAppScreen {
private final String name;
private final List<DeskApp> deskApps;
private DeskApp currentDeskApp;
private final List<DeskAppScreenListener> deskAppListeners;
public DeskAppScreen(String name) {
this.name = name;
this.deskApps = new ArrayList<>();
this.deskAppListeners = new ArrayList<>();
}
public String getName() {
return name;
}
public void addDeskApp(DeskApp deskApp) {
deskApps.add(deskApp);
setCurrentDeskApp(deskApp);
}
public void removeDeskApp(DeskApp deskApp) {
deskApps.remove(deskApp);
}
public List<DeskApp> getDeskApps() {
return deskApps;
}
public DeskApp getCurrentDeskApp() {
return currentDeskApp;
}
public void setCurrentDeskApp(DeskApp currentDeskApp) {
this.currentDeskApp = currentDeskApp;
for (DeskAppScreenListener listener: deskAppListeners) {
listener.selectDeskApp(currentDeskApp);
}
}
public void addDeskAppListener(DeskAppScreenListener listener) {
deskAppListeners.add(listener);
}
public final void renderMenu() {
for (DeskApp app: deskApps) {
if (ImGui.menuItem(app.getName())) {
//selectScreen(....class);
}
}
}
public final void render(float delta) {
for (DeskApp app: deskApps) {
DeskAppRenderer appMain = app.getContours().getContour(DeskAppContourSection.MAIN);
if (appMain != null) {
appMain.render();
}
}
renderBackground();
}
protected void renderBackground() {
}
}