TabsPane.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using UnityEngine;
  3. namespace COM3D2.MeidoPhotoStudio.Plugin
  4. {
  5. public class TabsPane : BasePane
  6. {
  7. private static SelectionGrid Tabs;
  8. private static Constants.Window selectedTab;
  9. public static Constants.Window SelectedTab
  10. {
  11. get => selectedTab;
  12. set => Tabs.SelectedItem = (int)value;
  13. }
  14. public static event EventHandler TabChange;
  15. private static new bool updating;
  16. private static readonly string[] tabNames = { "call", "pose", "face", "bg", "bg2" };
  17. static TabsPane()
  18. {
  19. Translation.ReloadTranslationEvent += (s, a) => ReloadTranslation();
  20. Tabs = new SelectionGrid(Translation.GetArray("tabs", tabNames));
  21. Tabs.ControlEvent += (s, a) => OnChangeTab();
  22. }
  23. protected static new void ReloadTranslation()
  24. {
  25. updating = true;
  26. Tabs.SetItems(Translation.GetArray("tabs", tabNames), Tabs.SelectedItem);
  27. updating = false;
  28. }
  29. private static void OnChangeTab()
  30. {
  31. if (updating) return;
  32. selectedTab = (Constants.Window)Tabs.SelectedItem;
  33. TabChange?.Invoke(null, EventArgs.Empty);
  34. }
  35. public static void Draw()
  36. {
  37. Tabs.Draw(GUILayout.ExpandWidth(false));
  38. MiscGUI.BlackLine();
  39. }
  40. }
  41. }