using Pulsar.Server.Models;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace Pulsar.Server.Controls
{
    public class Line : Control
    {
        public enum Alignment
        {
            Horizontal,
            Vertical
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public Alignment LineAlignment { get; set; }

        public Line()
        {
            this.TabStop = false;
            this.BackColor = GetBackgroundColor();
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.DrawLine(new Pen(new SolidBrush(Color.LightGray)), new Point(5, 5),
                LineAlignment == Alignment.Horizontal ? new Point(500, 5) : new Point(5, 500));
        }

        protected override void OnPaintBackground(PaintEventArgs e)
        {
            using (var brush = new SolidBrush(GetBackgroundColor()))
            {
                e.Graphics.FillRectangle(brush, ClientRectangle);
            }
        }

        private Color GetBackgroundColor()
        {
            if (Settings.DarkMode)
            {
                return Color.FromArgb(43, 43, 43);
            }
            else
            {
                return this.BackColor;
            }
        }
    }
}