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.
69 lines
1.5 KiB
69 lines
1.5 KiB
3 years ago
|
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; }
|
||
|
}
|
||
|
}
|
||
|
}
|