1
0

ChangelogButton.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Content.Client.Stylesheets;
  2. using Robust.Client.UserInterface.Controls;
  3. namespace Content.Client.Changelog
  4. {
  5. public sealed class ChangelogButton : Button
  6. {
  7. [Dependency] private readonly ChangelogManager _changelogManager = default!;
  8. public ChangelogButton()
  9. {
  10. IoCManager.InjectDependencies(this);
  11. // So that measuring before opening returns a correct height,
  12. // and the window has the correct size when opened.
  13. Text = " ";
  14. }
  15. protected override void EnteredTree()
  16. {
  17. base.EnteredTree();
  18. _changelogManager.NewChangelogEntriesChanged += UpdateStuff;
  19. UpdateStuff();
  20. }
  21. protected override void ExitedTree()
  22. {
  23. base.ExitedTree();
  24. _changelogManager.NewChangelogEntriesChanged -= UpdateStuff;
  25. }
  26. private void UpdateStuff()
  27. {
  28. if (_changelogManager.NewChangelogEntries)
  29. {
  30. Text = Loc.GetString("changelog-button-new-entries");
  31. StyleClasses.Add(StyleBase.ButtonCaution);
  32. }
  33. else
  34. {
  35. Text = Loc.GetString("changelog-button");
  36. StyleClasses.Remove(StyleBase.ButtonCaution);
  37. }
  38. }
  39. }
  40. }