SceneManagerTitleBar.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using UnityEngine;
  2. namespace COM3D2.MeidoPhotoStudio.Plugin
  3. {
  4. internal class SceneManagerTitleBarPane : BasePane
  5. {
  6. public event System.EventHandler closeChange;
  7. private SceneManager sceneManager;
  8. private Button kankyoToggle;
  9. private Button refreshButton;
  10. private Dropdown sortDropdown;
  11. private Toggle descendingToggle;
  12. private Button closeButton;
  13. private string sortLabel;
  14. public SceneManagerTitleBarPane(SceneManager sceneManager)
  15. {
  16. this.sceneManager = sceneManager;
  17. kankyoToggle = new Button("Backgrounds");
  18. kankyoToggle.ControlEvent += (s, a) => sceneManager.ToggleKankyoMode();
  19. refreshButton = new Button("Refresh");
  20. refreshButton.ControlEvent += (s, a) => sceneManager.Refresh();
  21. sortDropdown = new Dropdown(new[] { "Name", "Date Created", "Date Modified" });
  22. sortDropdown.SelectionChange += (s, a) =>
  23. {
  24. SceneManager.SortMode sortMode = (SceneManager.SortMode)sortDropdown.SelectedItemIndex;
  25. if (sceneManager.CurrentSortMode == sortMode) return;
  26. sceneManager.SortScenes(sortMode);
  27. };
  28. descendingToggle = new Toggle("Descending", sceneManager.SortDescending);
  29. descendingToggle.ControlEvent += (s, a) =>
  30. {
  31. sceneManager.SortDescending = descendingToggle.Value;
  32. sceneManager.SortScenes(sceneManager.CurrentSortMode);
  33. };
  34. closeButton = new Button("X");
  35. closeButton.ControlEvent += (s, a) => closeChange?.Invoke(this, System.EventArgs.Empty);
  36. sortLabel = "Sort";
  37. }
  38. public override void Draw()
  39. {
  40. GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
  41. buttonStyle.fontSize = Utility.GetPix(12);
  42. GUILayoutOption buttonHeight = GUILayout.Height(Utility.GetPix(20));
  43. GUILayout.BeginHorizontal();
  44. GUILayout.BeginHorizontal(GUILayout.Width(Utility.GetPix(SceneManagerDirectoryPane.listWidth)));
  45. Color originalColour = GUI.backgroundColor;
  46. if (sceneManager.KankyoMode) GUI.backgroundColor = Color.green;
  47. kankyoToggle.Draw(buttonStyle, buttonHeight);
  48. GUI.backgroundColor = originalColour;
  49. GUILayout.FlexibleSpace();
  50. refreshButton.Draw(buttonStyle, buttonHeight);
  51. GUILayout.EndHorizontal();
  52. GUILayout.BeginHorizontal();
  53. GUILayout.Space(Utility.GetPix(15));
  54. GUIStyle labelStyle = new GUIStyle(GUI.skin.label);
  55. labelStyle.fontSize = buttonStyle.fontSize;
  56. GUILayout.Label(sortLabel, labelStyle);
  57. GUIStyle dropdownStyle = new GUIStyle(DropdownHelper.DefaultDropdownStyle);
  58. dropdownStyle.fontSize = buttonStyle.fontSize;
  59. sortDropdown.Draw(buttonStyle, dropdownStyle, buttonHeight, GUILayout.Width(Utility.GetPix(100)));
  60. GUIStyle toggleStyle = new GUIStyle(GUI.skin.toggle);
  61. toggleStyle.fontSize = buttonStyle.fontSize;
  62. descendingToggle.Draw(toggleStyle);
  63. GUILayout.FlexibleSpace();
  64. closeButton.Draw();
  65. GUILayout.EndHorizontal();
  66. GUILayout.EndHorizontal();
  67. }
  68. }
  69. }