____tbvns____ 6 місяців тому
батько
коміт
c109c400c7

+ 4 - 1
.idea/material_theme_project_new.xml

@@ -3,7 +3,10 @@
   <component name="MaterialThemeProjectNewConfig">
   <component name="MaterialThemeProjectNewConfig">
     <option name="metadata">
     <option name="metadata">
       <MTProjectMetadataState>
       <MTProjectMetadataState>
-        <option name="userId" value="23d1b501:19285a205fe:-7fa7" />
+        <option name="migrated" value="true" />
+        <option name="pristineConfig" value="false" />
+        <option name="userId" value="-10cef2ec:18d8de64de8:-8000" />
+        <option name="version" value="8.13.2" />
       </MTProjectMetadataState>
       </MTProjectMetadataState>
     </option>
     </option>
   </component>
   </component>

+ 50 - 0
ui/src/main/java/xyz/tbvns/ui/LevelEditor/MainWindow.java

@@ -0,0 +1,50 @@
+package xyz.tbvns.ui.LevelEditor;
+
+import javafx.scene.Scene;
+import javafx.scene.control.*;
+import javafx.scene.layout.FlowPane;
+import javafx.scene.layout.Pane;
+import javafx.stage.Stage;
+import xyz.tbvns.ui.Main;
+
+public class MainWindow {
+    public static void open(Stage stage) {
+        stage.hide();
+        Scene scene = new Scene(pane());
+        stage.setScene(scene);
+        Main.setUpResizeEditMenu(scene);
+        stage.show();
+    }
+
+    public static Pane pane() {
+        FlowPane pane = new FlowPane();
+        pane.getChildren().add(toolBar());
+        pane.getChildren().add(tabPane());
+
+
+        return pane;
+    }
+
+    public static TabPane tabPane;
+    public static TabPane tabPane() {
+        TabPane pane = new TabPane();
+        tabPane = pane;
+
+        Label label = new Label("tab 1");
+        Label label1 = new Label("tab 2");
+
+        pane.getTabs().add(new Tab("tab 1 !", label));
+        pane.getTabs().add(new Tab("tab 2 !", label1));
+
+        return pane;
+    }
+
+    public static MenuBar menuBar;
+    public static MenuBar toolBar() {
+        MenuBar menuBar = new MenuBar();
+        MainWindow.menuBar = menuBar;
+        menuBar.getMenus().addAll(new Menu("hello"), new Menu("world"), new Menu("hello"), new Menu("world"), new Menu("hello"), new Menu("world"));
+
+        return menuBar;
+    }
+}

+ 2 - 0
ui/src/main/java/xyz/tbvns/ui/LevelSelectScreen.java

@@ -11,6 +11,7 @@ import javafx.scene.text.Font;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import xyz.tbvns.core.DataManager;
 import xyz.tbvns.core.DataManager;
 import xyz.tbvns.core.Objects.Level;
 import xyz.tbvns.core.Objects.Level;
+import xyz.tbvns.ui.LevelEditor.MainWindow;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -69,6 +70,7 @@ public class LevelSelectScreen {
         pane.setOnMouseClicked(mouseEvent -> {
         pane.setOnMouseClicked(mouseEvent -> {
             if (selected == index) {
             if (selected == index) {
                 log.info("Launched level {}", level.getName());
                 log.info("Launched level {}", level.getName());
+                MainWindow.open(Main.getStage());
             }
             }
             selected = index;
             selected = index;
             for (Node node : pane.getParent().getChildrenUnmodifiable()) {
             for (Node node : pane.getParent().getChildrenUnmodifiable()) {

+ 29 - 8
ui/src/main/java/xyz/tbvns/ui/Main.java

@@ -1,11 +1,13 @@
 package xyz.tbvns.ui;
 package xyz.tbvns.ui;
 
 
 import javafx.application.Application;
 import javafx.application.Application;
+import javafx.beans.InvalidationListener;
 import javafx.scene.Node;
 import javafx.scene.Node;
 import javafx.scene.Scene;
 import javafx.scene.Scene;
 import javafx.scene.layout.GridPane;
 import javafx.scene.layout.GridPane;
 import javafx.scene.layout.Pane;
 import javafx.scene.layout.Pane;
 import javafx.stage.Stage;
 import javafx.stage.Stage;
+import lombok.Getter;
 import lombok.Lombok;
 import lombok.Lombok;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FileUtils;
@@ -15,6 +17,7 @@ import xyz.tbvns.core.Decoder;
 import xyz.tbvns.core.FilesLocations;
 import xyz.tbvns.core.FilesLocations;
 import xyz.tbvns.core.Objects.Level;
 import xyz.tbvns.core.Objects.Level;
 import xyz.tbvns.core.XmlUtils;
 import xyz.tbvns.core.XmlUtils;
+import xyz.tbvns.ui.LevelEditor.MainWindow;
 
 
 import java.io.File;
 import java.io.File;
 import java.util.Arrays;
 import java.util.Arrays;
@@ -25,14 +28,28 @@ public class Main extends Application {
         launch(args);
         launch(args);
     }
     }
 
 
+
+    @Getter private static Stage stage;
     @Override
     @Override
     public void start(Stage stage) throws Exception {
     public void start(Stage stage) throws Exception {
+        Main.stage = stage;
+
         log.info("Detected os: {}", new SystemInfo().getOperatingSystem().getFamily());
         log.info("Detected os: {}", new SystemInfo().getOperatingSystem().getFamily());
         log.info("GD Path for this os: {}", FilesLocations.getGeometryDashFolder());
         log.info("GD Path for this os: {}", FilesLocations.getGeometryDashFolder());
 
 
         Pane levelSelect = LevelSelectScreen.pane();
         Pane levelSelect = LevelSelectScreen.pane();
         Scene scene = new Scene(levelSelect);
         Scene scene = new Scene(levelSelect);
+        setUpResizeSelectMenu(scene);
+
+        stage.setScene(scene);
+        stage.setTitle("PowerGD - Set of useful tools for creators");
+        stage.setMinWidth(levelSelect.getMinWidth());
+        stage.setMinHeight(levelSelect.getMinHeight());
+
+        stage.show();
+    }
 
 
+    public static void setUpResizeSelectMenu(Scene scene) {
         scene.widthProperty().addListener((observableValue, number, t1) -> {
         scene.widthProperty().addListener((observableValue, number, t1) -> {
             LevelSelectScreen.label.setPrefWidth(t1.floatValue() - 20);
             LevelSelectScreen.label.setPrefWidth(t1.floatValue() - 20);
             LevelSelectScreen.scrollPane.setPrefWidth(t1.floatValue() - 20);
             LevelSelectScreen.scrollPane.setPrefWidth(t1.floatValue() - 20);
@@ -45,17 +62,21 @@ public class Main extends Application {
         scene.heightProperty().addListener((observableValue, number, t1) -> {
         scene.heightProperty().addListener((observableValue, number, t1) -> {
             LevelSelectScreen.scrollPane.setPrefHeight(
             LevelSelectScreen.scrollPane.setPrefHeight(
                     t1.floatValue() + 5 -
                     t1.floatValue() + 5 -
-                    LevelSelectScreen.label.getHeight() -
-                    LevelSelectScreen.label.getInsets().getTop() -
-                    LevelSelectScreen.label.getInsets().getBottom()
+                            LevelSelectScreen.label.getHeight() -
+                            LevelSelectScreen.label.getInsets().getTop() -
+                            LevelSelectScreen.label.getInsets().getBottom()
             );
             );
         });
         });
+    }
 
 
-        stage.setScene(scene);
-        stage.setTitle("PowerGD - Set of useful tools for creators");
-        stage.setMinWidth(levelSelect.getMinWidth());
-        stage.setMinHeight(levelSelect.getMinHeight());
+    public static void setUpResizeEditMenu(Scene scene) {
+        scene.widthProperty().addListener((observableValue, number, t1) -> {
+            MainWindow.menuBar.setPrefWidth(t1.floatValue());
+            MainWindow.tabPane.setPrefWidth(t1.floatValue());
+        });
 
 
-        stage.show();
+        scene.heightProperty().addListener((observableValue, number, t1) -> {
+            MainWindow.tabPane.setPrefHeight(t1.floatValue() - MainWindow.menuBar.getHeight());
+        });
     }
     }
 }
 }