IncomingChangesNotificationPanel.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using UnityEditor;
  2. using PlasticGui.WorkspaceWindow;
  3. namespace Unity.PlasticSCM.Editor.Developer
  4. {
  5. internal class IncomingChangesNotificationPanel :
  6. IIncomingChangesNotificationPanel,
  7. CheckIncomingChanges.IUpdateIncomingChanges
  8. {
  9. bool IIncomingChangesNotificationPanel.IsVisible
  10. {
  11. get { return mIsVisible; }
  12. }
  13. NotificationPanelData IIncomingChangesNotificationPanel.Data
  14. {
  15. get { return mPanelData; }
  16. }
  17. internal IncomingChangesNotificationPanel(
  18. PlasticWindow plasticWindow)
  19. {
  20. mPlasticWindow = plasticWindow;
  21. }
  22. void CheckIncomingChanges.IUpdateIncomingChanges.Hide()
  23. {
  24. mPlasticWindow.SetupWindowTitle(false);
  25. mPanelData.Clear();
  26. mIsVisible = false;
  27. mPlasticWindow.Repaint();
  28. }
  29. void CheckIncomingChanges.IUpdateIncomingChanges.Show(
  30. string infoText,
  31. string actionText,
  32. string tooltipText,
  33. CheckIncomingChanges.Severity severity,
  34. CheckIncomingChanges.Action action)
  35. {
  36. mPlasticWindow.SetupWindowTitle(true);
  37. UpdateData(
  38. mPanelData, infoText, actionText,
  39. tooltipText, severity, action);
  40. mIsVisible = true;
  41. mPlasticWindow.Repaint();
  42. }
  43. static void UpdateData(
  44. NotificationPanelData data,
  45. string infoText,
  46. string actionText,
  47. string tooltipText,
  48. CheckIncomingChanges.Severity severity,
  49. CheckIncomingChanges.Action action)
  50. {
  51. data.HasUpdateAction =
  52. action == CheckIncomingChanges.Action.Update;
  53. data.InfoText = infoText;
  54. data.ActionText = actionText;
  55. data.TooltipText = tooltipText;
  56. data.NotificationStyle =
  57. severity == CheckIncomingChanges.Severity.Info ?
  58. NotificationPanelData.StyleType.Green :
  59. NotificationPanelData.StyleType.Red;
  60. }
  61. bool mIsVisible;
  62. NotificationPanelData mPanelData = new NotificationPanelData();
  63. PlasticWindow mPlasticWindow;
  64. }
  65. }