Browse Source

Add save manager window resizing

habeebweeb 4 years ago
parent
commit
17c66338e4

+ 50 - 8
MultipleMaids/CM3D2/MultipleMaids/Plugin/MultipleMaids.Gui.cs

@@ -132,17 +132,44 @@ namespace CM3D2.MultipleMaids.Plugin
                 }
                 else if (sceneFlg)
                 {
-                    if (manageSave)
+                    if (manageSaveFlag)
                     {
                         saveModalRect = GUI.ModalWindow(9999, saveModalRect, SaveManagerModal, "", style);
                     }
 
                     saveManagerRect = GUI.Window(131, saveManagerRect, SaveManagerWindow, "", style);
 
+                    int resizeHandleSize = GetPix(15);
+                    resizeManagerRect.x = saveManagerRect.x + saveManagerRect.width - resizeHandleSize;
+                    resizeManagerRect.y = saveManagerRect.y + saveManagerRect.height - resizeHandleSize;
+
+                    resizeManagerRect.width = resizeManagerRect.height = resizeHandleSize;
+
+
+
+                    if (!resizeManager && Input.GetMouseButtonDown(0) && resizeManagerRect.Contains(Event.current.mousePosition))
+                    {
+                        resizeManager = true;
+                    }
+
+                    if (resizeManager)
+                    {
+                        float rectWidth = Event.current.mousePosition.x - saveManagerRect.x;
+                        float rectHeight = Event.current.mousePosition.y - saveManagerRect.y;
+
+                        saveManagerRect.width = Mathf.Max(GetPix(480), rectWidth);
+                        saveManagerRect.height = Mathf.Max(GetPix(260), rectHeight);
+
+                        if (Input.GetMouseButtonUp(0))
+                        {
+                            resizeManager = false;
+                        }
+                    }
+
                     if (Input.mouseScrollDelta.y != 0f)
                     {
                         if (saveManagerRect.Contains(Event.current.mousePosition)
-                            || (manageSave && saveModalRect.Contains(Event.current.mousePosition)))
+                            || (manageSaveFlag && saveModalRect.Contains(Event.current.mousePosition)))
                         {
                             GameMain.Instance.MainCamera.SetControl(false);
                             Input.ResetInputAxes();
@@ -9106,13 +9133,23 @@ namespace CM3D2.MultipleMaids.Plugin
             listStyle.alignment = TextAnchor.MiddleLeft;
             GUIStyle textFieldStyle = new GUIStyle("textfield");
             textFieldStyle.alignment = TextAnchor.MiddleLeft;
+            GUIStyle resizeHandleStyle = new GUIStyle("label");
+            resizeHandleStyle.fontSize = GetPix(25);
+            resizeHandleStyle.alignment = TextAnchor.MiddleCenter;
 
             // Window variables
             int windowPadding = GetPix(10);
             int windowPaddingY = GetPix(20);
             int buttonSize = GetPix(25);
 
-            if (createSaveFlag || loadSaveFlag || manageSave)
+            GUI.Label(new Rect(
+                saveManagerRect.width - GetPix(15),
+                saveManagerRect.height - GetPix(17),
+                GetPix(20),
+                GetPix(20)
+            ), "□", resizeHandleStyle);
+
+            if (createSaveFlag || loadSaveFlag || manageSaveFlag)
             {
                 GUI.enabled = false;
             }
@@ -9298,7 +9335,7 @@ namespace CM3D2.MultipleMaids.Plugin
                         , imageHeight), saveScenes[i].screenshot, saveImageStyle))
                     {
                         selectedSave = i;
-                        manageSave = true;
+                        manageSaveFlag = true;
                     }
 
                     i--;
@@ -9321,7 +9358,12 @@ namespace CM3D2.MultipleMaids.Plugin
                 }
             }
 
-            GUI.DragWindow();
+            if (!resizeManager)
+            {
+                GUI.DragWindow(new Rect(0, 0,
+                saveManagerRect.width - windowPaddingY,
+                saveManagerRect.height - windowPaddingY));
+            }
         }
 
         private void SaveManagerModal(int winID)
@@ -9389,7 +9431,7 @@ namespace CM3D2.MultipleMaids.Plugin
                 buttonHeight
             ), "Overwrite", saveControlStyle))
             {
-                manageSave = false;
+                manageSaveFlag = false;
                 createSaveFlag = true;
                 overwriteFlag = true;
 
@@ -9403,7 +9445,7 @@ namespace CM3D2.MultipleMaids.Plugin
                 buttonHeight
             ), "Load", saveControlStyle))
             {
-                manageSave = false;
+                manageSaveFlag = false;
                 loadSaveFlag = true;
                 loadScene = 1;
             }
@@ -9415,7 +9457,7 @@ namespace CM3D2.MultipleMaids.Plugin
                 buttonHeight
             ), "Cancel", saveControlStyle))
             {
-                manageSave = false;
+                manageSaveFlag = false;
             }
 
             GUI.DragWindow();

+ 3 - 2
MultipleMaids/SaveManager.cs

@@ -19,20 +19,21 @@ namespace CM3D2.MultipleMaids.Plugin
         private Texture2D frame;
         private Rect saveManagerRect;
         private Rect saveModalRect;
+        private Rect resizeManagerRect;
         private Vector2 saveManagerScrollPos = Vector2.zero;
         private Vector2 dirListScrollPos = Vector2.zero;
         private bool saveManagerInitialize = false;
         private bool loadSaveFlag = false;
         private bool overwriteFlag = false;
         private bool createSaveFlag = false;
-        private bool manageSave = false;
+        private bool manageSaveFlag = false;
         private bool createDirectory = false;
+        private bool resizeManager = false;
         private int selectedSave = 0;
         private int selectedDirectory = 0;
         private string currentDirectory = "";
         private string textFieldValue = "";
 
-
         public void InitializeSaveManager()
         {
             frame = MakeTex(2, 2, Color.white);