using System;
using FairyGUI.Utils;
namespace FairyGUI
{
    /// 
    /// Gear is a connection between object and controller.
    /// 
    public class GearDisplay2 : GearBase
    {
        /// 
        /// Pages involed in this gear.
        /// 
        public string[] pages { get; set; }
        public int condition;
        int _visible;
        public GearDisplay2(GObject owner)
            : base(owner)
        {
        }
        override protected void AddStatus(string pageId, ByteBuffer buffer)
        {
        }
        override protected void Init()
        {
            pages = null;
        }
        override public void Apply()
        {
            if (pages == null || pages.Length == 0
                || Array.IndexOf(pages, _controller.selectedPageId) != -1)
                _visible = 1;
            else
                _visible = 0;
        }
        override public void UpdateState()
        {
        }
        public bool Evaluate(bool connected)
        {
            bool v = _controller == null || _visible > 0;
            if (this.condition == 0)
                v = v && connected;
            else
                v = v || connected;
            return v;
        }
    }
}