#if FRAMEWORK20
using System.Drawing;
using System.Windows.Forms;
namespace DevComponents.DotNetBar.Schedule
{
    /// 
    /// DayRect array management class
    /// 
    public class ItemRects
    {
        #region Private variables
        private ItemRect[] _ItemRects;
        #endregion
        /// 
        /// Constructor
        /// 
        /// 
        /// Rectangle array length
        public ItemRects(BaseItem baseItem, int length)
        {
            _ItemRects = new ItemRect[length];
            for (int i = 0; i < length; i++)
                _ItemRects[i] = new ItemRect(baseItem);
        }
        #region Public properties
        /// 
        /// Gets the Rectangle array
        /// 
        public ItemRect[] Rects
        {
            get { return (_ItemRects); }
        }
        /// 
        /// Gets  and sets a specific array Rectangle
        /// 
        /// Rectangle index to get
        /// Rectangle
        public ItemRect this[int index]
        {
            get { return (_ItemRects[index]); }
            set { _ItemRects[index] = value; }
        }
        #endregion
    }
    /// 
    /// Simple DayRect class
    /// 
    public class ItemRect
    {
        #region Private variables
        private BaseItem _BaseItem;     // BaseItem
        private Rectangle _Bounds;      // Bounds
        private bool _IsSelected;       // Rect selection
        #endregion
        /// 
        /// Constructor
        /// 
        /// BaseItem
        public ItemRect(BaseItem baseItem)
        {
            _BaseItem = baseItem;
        }
        #region Public properties
        /// 
        /// Gets and sets the bounding rect
        /// 
        public Rectangle Bounds
        {
            get { return (_Bounds); }
            set { _Bounds = value; }
        }
        /// 
        /// Gets and sets the rect selection status
        /// 
        public bool IsSelected
        {
            get { return (_IsSelected); }
            set
            {
                if (_IsSelected != value)
                {
                    _IsSelected = value;
                    Invalidate();
                }
            }
        }
        #endregion
        #region Public methods
        /// 
        /// Invalidates the given rectangle
        /// 
        public void Invalidate()
        {
            if (_BaseItem != null)
            {
                Control c = (Control)_BaseItem.GetContainerControl(true);
                if (c != null)
                    c.Invalidate(_Bounds);
            }
        }
        #endregion
    }
}
#endif