Bladeren bron

Change SelectionGrid variable -> SelectedItemIndex

habeebweeb 4 jaren geleden
bovenliggende
commit
0d328a667f

+ 19 - 14
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/GUI/Controls/SelectionGrid.cs

@@ -3,19 +3,19 @@ using UnityEngine;
 
 namespace COM3D2.MeidoPhotoStudio.Plugin
 {
-    public class SelectionGrid : BaseControl
+    internal class SelectionGrid : BaseControl
     {
         private SimpleToggle[] toggles;
-        private int selectedItem;
-        public int SelectedItem
+        private int selectedItemIndex;
+        public int SelectedItemIndex
         {
-            get => selectedItem;
+            get => selectedItemIndex;
             set
             {
-                this.selectedItem = Mathf.Clamp(value, 0, this.toggles.Length - 1);
+                this.selectedItemIndex = Mathf.Clamp(value, 0, this.toggles.Length - 1);
                 foreach (SimpleToggle toggle in toggles)
                 {
-                    toggle.value = toggle.toggleIndex == this.selectedItem;
+                    toggle.value = toggle.toggleIndex == this.selectedItemIndex;
                 }
                 OnControlEvent(EventArgs.Empty);
             }
@@ -23,7 +23,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
 
         public SelectionGrid(string[] items, int selected = 0)
         {
-            this.selectedItem = Mathf.Clamp(selected, 0, items.Length - 1);
+            this.selectedItemIndex = Mathf.Clamp(selected, 0, items.Length - 1);
             toggles = MakeToggles(items);
         }
 
@@ -32,21 +32,21 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             SimpleToggle[] toggles = new SimpleToggle[items.Length];
             for (int i = 0; i < items.Length; i++)
             {
-                SimpleToggle toggle = new SimpleToggle(items[i], i == SelectedItem);
+                SimpleToggle toggle = new SimpleToggle(items[i], i == SelectedItemIndex);
                 toggle.toggleIndex = i;
                 toggle.ControlEvent += (s, a) =>
                 {
                     int value = (s as SimpleToggle).toggleIndex;
-                    if (value != this.SelectedItem) this.SelectedItem = value;
+                    if (value != this.SelectedItemIndex) this.SelectedItemIndex = value;
                 };
                 toggles[i] = toggle;
             }
             return toggles;
         }
 
-        public void SetItems(string[] items, int selectedItem = 0)
+        public void SetItems(string[] items, int selectedItemIndex = -1)
         {
-            this.SelectedItem = Mathf.Clamp(selectedItem, 0, items.Length - 1);
+            if (selectedItemIndex < 0) selectedItemIndex = this.SelectedItemIndex;
             if (items.Length != toggles.Length)
             {
                 this.toggles = MakeToggles(items);
@@ -56,10 +56,11 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                 for (int i = 0; i < items.Length; i++)
                 {
                     string item = items[i];
-                    this.toggles[i].value = i == SelectedItem;
+                    this.toggles[i].value = i == SelectedItemIndex;
                     this.toggles[i].label = item;
                 }
             }
+            this.SelectedItemIndex = Mathf.Clamp(selectedItemIndex, 0, items.Length - 1);
         }
 
         public override void Draw(params GUILayoutOption[] layoutOptions)
@@ -90,8 +91,12 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                 bool value = GUILayout.Toggle(this.value, label, layoutOptions);
                 if (value != this.value)
                 {
-                    this.value = value;
-                    ControlEvent?.Invoke(this, EventArgs.Empty);
+                    if (value == false) this.value = true;
+                    else
+                    {
+                        this.value = value;
+                        ControlEvent?.Invoke(this, EventArgs.Empty);
+                    }
                 }
             }
         }

+ 8 - 9
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/GUI/Panes/BackgroundWindowPanes/LightsPane.cs

@@ -5,7 +5,7 @@ using UnityEngine;
 namespace COM3D2.MeidoPhotoStudio.Plugin
 {
     using static MPSLight;
-    class LightsPane : BasePane
+    internal class LightsPane : BasePane
     {
         private LightManager lightManager;
         private EnvironmentManager environmentManager;
@@ -23,7 +23,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         private MPSLightType currentLightType = MPSLightType.Normal;
         private string lightHeader;
         private static readonly Dictionary<LightProp, SliderProp> LightSliderProp =
-            new Dictionary<LightProp, SliderProp>
+            new Dictionary<LightProp, SliderProp>()
             {
                 [LightProp.LightRotX] = new SliderProp(0f, 360f, LightProperty.DefaultRotation.eulerAngles.x),
                 [LightProp.LightRotY] = new SliderProp(0f, 360f, LightProperty.DefaultRotation.eulerAngles.y),
@@ -170,7 +170,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         {
             if (updating) return;
 
-            currentLightType = (MPSLightType)this.lightTypeGrid.SelectedItem;
+            currentLightType = (MPSLightType)this.lightTypeGrid.SelectedItemIndex;
 
             LightType lightType;
             if (currentLightType == MPSLightType.Normal)
@@ -250,7 +250,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             this.updating = true;
             MPSLight currentLight = this.lightManager.CurrentLight;
             this.currentLightType = currentLight.SelectedLightType;
-            this.lightTypeGrid.SelectedItem = (int)this.currentLightType;
+            this.lightTypeGrid.SelectedItemIndex = (int)this.currentLightType;
             this.disableToggle.Value = currentLight.IsDisabled;
             this.LightSlider[LightProp.LightRotX].Value = currentLight.Rotation.eulerAngles.x;
             this.LightSlider[LightProp.LightRotY].Value = currentLight.Rotation.eulerAngles.y;
@@ -288,7 +288,6 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             this.lightTypeGrid.Draw(GUILayout.ExpandWidth(false));
             if (!isMain)
             {
-                GUILayout.FlexibleSpace();
                 GUI.enabled = true;
                 this.disableToggle.Draw();
             }
@@ -318,13 +317,14 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                 this.LightSlider[LightProp.SpotAngle].Draw();
             }
 
+            GUILayoutOption sliderWidth = MiscGUI.HalfSlider;
             GUILayout.BeginHorizontal();
-            this.LightSlider[LightProp.Red].Draw();
-            this.LightSlider[LightProp.Green].Draw();
+            this.LightSlider[LightProp.Red].Draw(sliderWidth);
+            this.LightSlider[LightProp.Green].Draw(sliderWidth);
             GUILayout.EndHorizontal();
 
             GUILayout.BeginHorizontal();
-            this.LightSlider[LightProp.Blue].Draw(GUILayout.Width(96));
+            this.LightSlider[LightProp.Blue].Draw(sliderWidth);
             if ((lightManager.SelectedLightIndex == 0) && (currentLightType == MPSLightType.Normal))
             {
                 this.colorToggle.Draw();
@@ -333,7 +333,6 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
 
             GUILayout.BeginHorizontal();
             this.resetPropsButton.Draw(GUILayout.ExpandWidth(false));
-            GUILayout.FlexibleSpace();
             this.resetPositionButton.Draw(GUILayout.ExpandWidth(false));
             GUILayout.EndHorizontal();
 

+ 4 - 4
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/GUI/Panes/OtherPanes/TabsPane.cs

@@ -3,14 +3,14 @@ using UnityEngine;
 
 namespace COM3D2.MeidoPhotoStudio.Plugin
 {
-    public class TabsPane : BasePane
+    internal class TabsPane : BasePane
     {
         private SelectionGrid Tabs;
         private Constants.Window selectedTab;
         public Constants.Window SelectedTab
         {
             get => selectedTab;
-            set => Tabs.SelectedItem = (int)value;
+            set => Tabs.SelectedItemIndex = (int)value;
 
         }
         public event EventHandler TabChange;
@@ -27,14 +27,14 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         protected override void ReloadTranslation()
         {
             updating = true;
-            Tabs.SetItems(Translation.GetArray("tabs", tabNames), Tabs.SelectedItem);
+            Tabs.SetItems(Translation.GetArray("tabs", tabNames), Tabs.SelectedItemIndex);
             updating = false;
         }
 
         private void OnChangeTab()
         {
             if (updating) return;
-            selectedTab = (Constants.Window)Tabs.SelectedItem;
+            selectedTab = (Constants.Window)Tabs.SelectedItemIndex;
             TabChange?.Invoke(null, EventArgs.Empty);
         }