GearDisplay.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using FairyGUI.Utils;
  3. namespace FairyGUI
  4. {
  5. /// <summary>
  6. /// Gear is a connection between object and controller.
  7. /// </summary>
  8. public class GearDisplay : GearBase
  9. {
  10. /// <summary>
  11. /// Pages involed in this gear.
  12. /// </summary>
  13. public string[] pages { get; set; }
  14. int _visible;
  15. uint _displayLockToken;
  16. public GearDisplay(GObject owner)
  17. : base(owner)
  18. {
  19. _displayLockToken = 1;
  20. }
  21. override protected void AddStatus(string pageId, ByteBuffer buffer)
  22. {
  23. }
  24. override protected void Init()
  25. {
  26. pages = null;
  27. }
  28. override public void Apply()
  29. {
  30. _displayLockToken++;
  31. if (_displayLockToken == 0)
  32. _displayLockToken = 1;
  33. if (pages == null || pages.Length == 0
  34. || Array.IndexOf(pages, _controller.selectedPageId) != -1)
  35. _visible = 1;
  36. else
  37. _visible = 0;
  38. }
  39. override public void UpdateState()
  40. {
  41. }
  42. public uint AddLock()
  43. {
  44. _visible++;
  45. return _displayLockToken;
  46. }
  47. public void ReleaseLock(uint token)
  48. {
  49. if (token == _displayLockToken)
  50. _visible--;
  51. }
  52. public bool connected
  53. {
  54. get { return _controller == null || _visible > 0; }
  55. }
  56. }
  57. }