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.
68 lines
1.5 KiB
68 lines
1.5 KiB
using System; |
|
using FairyGUI.Utils; |
|
|
|
namespace FairyGUI |
|
{ |
|
/// <summary> |
|
/// Gear is a connection between object and controller. |
|
/// </summary> |
|
public class GearDisplay : GearBase |
|
{ |
|
/// <summary> |
|
/// Pages involed in this gear. |
|
/// </summary> |
|
public string[] pages { get; set; } |
|
|
|
int _visible; |
|
uint _displayLockToken; |
|
|
|
public GearDisplay(GObject owner) |
|
: base(owner) |
|
{ |
|
_displayLockToken = 1; |
|
} |
|
|
|
override protected void AddStatus(string pageId, ByteBuffer buffer) |
|
{ |
|
} |
|
|
|
override protected void Init() |
|
{ |
|
pages = null; |
|
} |
|
|
|
override public void Apply() |
|
{ |
|
_displayLockToken++; |
|
if (_displayLockToken == 0) |
|
_displayLockToken = 1; |
|
|
|
if (pages == null || pages.Length == 0 |
|
|| Array.IndexOf(pages, _controller.selectedPageId) != -1) |
|
_visible = 1; |
|
else |
|
_visible = 0; |
|
} |
|
|
|
override public void UpdateState() |
|
{ |
|
} |
|
|
|
public uint AddLock() |
|
{ |
|
_visible++; |
|
return _displayLockToken; |
|
} |
|
|
|
public void ReleaseLock(uint token) |
|
{ |
|
if (token == _displayLockToken) |
|
_visible--; |
|
} |
|
|
|
public bool connected |
|
{ |
|
get { return _controller == null || _visible > 0; } |
|
} |
|
} |
|
}
|
|
|