69 lines
1.5 KiB
C#
69 lines
1.5 KiB
C#
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; }
|
|
}
|
|
}
|
|
}
|