using System;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace CodeImp.DoomBuilder.Controls
{
	[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip)]
	public class ToolStripNumericUpDown : ToolStripControlHost
	{
		public event EventHandler ValueChanged;
		
		public decimal Value { get { return nud.Value; } set { nud.Value = value; } }
		public decimal Minimum { get { return nud.Minimum; } set { nud.Minimum = value; } }
		public decimal Maximum { get { return nud.Maximum; } set { nud.Maximum = value; } }
		public decimal Increment { get { return nud.Increment; } set { nud.Increment = value; } }

		private NumericUpDown nud;

		public ToolStripNumericUpDown() : base(new NumericUpDown()) { }

        protected override void OnSubscribeControlEvents(Control control)
        {
            base.OnSubscribeControlEvents(control);
	        nud = control as NumericUpDown;
	        nud.ValueChanged += OnValueChanged;
        }

        protected override void OnUnsubscribeControlEvents(Control control)
        {
            base.OnUnsubscribeControlEvents(control);
			nud.ValueChanged -= OnValueChanged;
        }

        public void OnValueChanged(object sender, EventArgs e)
        {
            if(ValueChanged != null) ValueChanged(this, e);
        }
	}
}