Açıklama Yok
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.

ToolbarButton.cs 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using UnityEditor;
  2. using UnityEngine;
  3. using PlasticGui;
  4. using Unity.PlasticSCM.Editor;
  5. using Unity.PlasticSCM.Editor.UI;
  6. namespace Unity.Cloud.Collaborate
  7. {
  8. [InitializeOnLoad]
  9. internal static class ToolbarBootstrap
  10. {
  11. static ToolbarBootstrap()
  12. {
  13. CooldownWindowDelayer cooldownInitializeAction = new CooldownWindowDelayer(
  14. ToolbarButton.InitializeIfNeeded, UnityConstants.PLUGIN_DELAYED_INITIALIZE_INTERVAL);
  15. cooldownInitializeAction.Ping();
  16. }
  17. }
  18. internal class ToolbarButton : SubToolbar
  19. {
  20. internal static void InitializeIfNeeded()
  21. {
  22. if (CollabPlugin.IsEnabled())
  23. return;
  24. ToolbarButton toolbar = new ToolbarButton { Width = 32f };
  25. Toolbar.AddSubToolbar(toolbar);
  26. }
  27. ToolbarButton()
  28. {
  29. PlasticPlugin.OnNotificationUpdated += OnPlasticNotificationUpdated;
  30. }
  31. ~ToolbarButton()
  32. {
  33. PlasticPlugin.OnNotificationUpdated -= OnPlasticNotificationUpdated;
  34. }
  35. void OnPlasticNotificationUpdated()
  36. {
  37. Toolbar.RepaintToolbar();
  38. }
  39. public override void OnGUI(Rect rect)
  40. {
  41. using (new EditorGUI.DisabledScope(EditorApplication.isPlaying))
  42. {
  43. Texture icon = PlasticPlugin.GetPluginStatusIcon();
  44. EditorGUIUtility.SetIconSize(new Vector2(16, 16));
  45. mButtonGUIContent.image = icon;
  46. if (GUI.Button(rect, mButtonGUIContent, "AppCommand"))
  47. {
  48. PlasticPlugin.OpenPlasticWindowDisablingOfflineModeIfNeeded();
  49. }
  50. EditorGUIUtility.SetIconSize(Vector2.zero);
  51. }
  52. }
  53. static GUIContent mButtonGUIContent = new GUIContent(
  54. string.Empty, PlasticLocalization.GetString(
  55. PlasticLocalization.Name.PlasticSCM));
  56. }
  57. }