using System.Drawing;
using System.Windows.Forms;

namespace Optimizer
{
    public sealed class MoonCheckList : CheckedListBox
    {
        public MoonCheckList()
        {
            DoubleBuffered = true;
        }

        protected override void OnDrawItem(DrawItemEventArgs e)
        {
            Color foreColor = Color.White;
            Color accentColor = OptionsHelper.ForegroundColor;

            if (this.Items.Count > 0)
            {
                if (e.Index >= 0)
                {
                    foreColor = GetItemChecked(e.Index) ? accentColor : foreColor;
                }
                else
                {
                    foreColor = e.ForeColor;
                }
            }

            var tweakedEventArgs = new DrawItemEventArgs(
                e.Graphics,
                e.Font,
                e.Bounds,
                e.Index,
                e.State,
                foreColor,
                e.BackColor);

            base.OnDrawItem(tweakedEventArgs);
        }
    }
}
