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.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using UnityEngine;
  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. button.AddToClassList("Checked");
  36. else
  37. button.RemoveFromClassList("Checked");
  38. button.SetChecked(check);
  39. }
  40. }
  41. public void CollapseToolBar(bool collapse)
  42. {
  43. if (collapse)
  44. AddToClassList("Collapse");
  45. else
  46. RemoveFromClassList("Collapse");
  47. }
  48. protected void RestoreButtonTooltips(string uxmlPath, string toolbarId)
  49. {
  50. var clone = GetClone(uxmlPath, toolbarId);
  51. var clonedButtons = clone.Query<Button>().ToList();
  52. var originalButtons = this.Query<Button>().ToList();
  53. Assert.AreEqual(originalButtons.Count, clonedButtons.Count);
  54. for (var i = 0; i < clonedButtons.Count; ++i)
  55. {
  56. originalButtons[i].tooltip = clonedButtons[i].tooltip;
  57. originalButtons[i].LocalizeTextInChildren();
  58. }
  59. }
  60. }
  61. }