No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Toolbar.cs 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using UnityEditor.U2D.Common;
  2. using UnityEngine.Assertions;
  3. using UnityEngine.U2D.Common;
  4. using UnityEngine.UIElements;
  5. namespace UnityEditor.U2D.Animation
  6. {
  7. internal class Toolbar : VisualElement
  8. {
  9. private const string k_UssPath = "SkinningModule/ToolbarStyle.uss";
  10. public class ToolbarFactory : UxmlFactory<Toolbar, ToolbarUxmlTraits> {}
  11. public class ToolbarUxmlTraits : UxmlTraits {}
  12. protected ShortcutUtility m_ShortcutUtility;
  13. protected static Toolbar GetClone(string uxmlPath, string toolbarId)
  14. {
  15. var visualTree = ResourceLoader.Load<VisualTreeAsset>(uxmlPath);
  16. return visualTree.CloneTree().Q<Toolbar>(toolbarId);
  17. }
  18. public Toolbar()
  19. {
  20. AddToClassList("Toolbar");
  21. styleSheets.Add(ResourceLoader.Load<StyleSheet>(k_UssPath));
  22. if (EditorGUIUtility.isProSkin)
  23. AddToClassList("Dark");
  24. }
  25. public void SetButtonChecked(Button toCheck)
  26. {
  27. var buttons = this.Query<Button>();
  28. buttons.ForEach((button) => { button.SetChecked(button == toCheck); });
  29. }
  30. protected void SetButtonChecked(Button button, bool check)
  31. {
  32. if (button.IsChecked() != check)
  33. {
  34. if (check)
  35. {
  36. button.AddToClassList("Checked");
  37. button.Focus();
  38. }
  39. else
  40. button.RemoveFromClassList("Checked");
  41. button.SetChecked(check);
  42. }
  43. }
  44. public void CollapseToolBar(bool collapse)
  45. {
  46. if (collapse)
  47. AddToClassList("Collapse");
  48. else
  49. RemoveFromClassList("Collapse");
  50. }
  51. protected void RestoreButtonTooltips(string uxmlPath, string toolbarId)
  52. {
  53. var clone = GetClone(uxmlPath, toolbarId);
  54. var clonedButtons = clone.Query<Button>().ToList();
  55. var originalButtons = this.Query<Button>().ToList();
  56. Assert.AreEqual(originalButtons.Count, clonedButtons.Count);
  57. for (var i = 0; i < clonedButtons.Count; ++i)
  58. {
  59. originalButtons[i].tooltip = clonedButtons[i].tooltip;
  60. originalButtons[i].LocalizeTextInChildren();
  61. }
  62. }
  63. }
  64. }