using System;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.PickerBox;

namespace FizzyLauncher
{
    public class OptionsForm : TDialogForm
    {
        private System.Windows.Forms.Label label1;
        private TButton button1;
        private TYesNoPickerBox pickerBox1;
        private System.Windows.Forms.Label label6;
        private TYesNoPickerBox pickerBox2;
        private System.Windows.Forms.Label label7;
        private System.Windows.Forms.Label label8;
        private TPickerBox pickerBox3;
        private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
        private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
        private TTextBox textBox1;
        private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
        private TYesNoPickerBox pickerBox4;
        private Label label2;
        private TYesNoPickerBox pickerBox5;
        private Label label3;
        protected MainForm parentForm = null;


        public OptionsForm(MainForm parent) : base()
        {
            InitializeComponent();

            parentForm = parent;

            pickerBox3.ComboBox.Items.Clear();
            foreach (string item in Enum.GetNames(typeof(AppSession.AutoSaveOption)))
            {
                pickerBox3.ComboBox.Items.Add(item);
            }

            if (pickerBox3.ComboBox.Items.Count > 0) pickerBox3.ComboBox.SelectedIndex = 0;

        }

        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
            this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
            this.pickerBox1 = new TYesNoPickerBox();
            this.label6 = new System.Windows.Forms.Label();
            this.pickerBox2 = new TYesNoPickerBox();
            this.label7 = new System.Windows.Forms.Label();
            this.label8 = new System.Windows.Forms.Label();
            this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TPickerBox();
            this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
            this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
            this.tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
            this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
            this.pickerBox4 = new TYesNoPickerBox();
            this.label2 = new System.Windows.Forms.Label();
            this.pickerBox5 = new TYesNoPickerBox();
            this.label3 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.BackColor = System.Drawing.Color.Transparent;
            this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label1.Location = new System.Drawing.Point(10, 235);
            this.label1.Margin = new System.Windows.Forms.Padding(0);
            this.label1.Name = "label1";
            this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label1.Size = new System.Drawing.Size(109, 34);
            this.label1.TabIndex = 153;
            this.label1.Text = "Custom Command";
            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // button1
            // 
            this.button1.AcceptButton = null;
            this.button1.ActiveImage = null;
            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            this.button1.BackColor = System.Drawing.Color.Transparent;
            this.button1.HoverImage = null;
            this.button1.IdleImage = null;
            this.button1.LabelText = "&Save";
            this.button1.Location = new System.Drawing.Point(241, 469);
            this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
            this.button1.Name = "button1";
            this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.button1.Size = new System.Drawing.Size(128, 32);
            this.button1.TabIndex = 6;
            this.button1.TabStop = false;
            this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
            // 
            // pickerBox1
            // 
            this.pickerBox1.AcceptButton = null;
            this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.pickerBox1.BackColor = System.Drawing.Color.Transparent;
            this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.pickerBox1.Location = new System.Drawing.Point(285, 127);
            this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
            this.pickerBox1.Name = "pickerBox1";
            this.pickerBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.pickerBox1.Size = new System.Drawing.Size(84, 35);
            this.pickerBox1.TabIndex = 2;
            this.pickerBox1.TabStop = false;
            this.pickerBox1.Value = true;
            // 
            // label6
            // 
            this.label6.AutoSize = true;
            this.label6.BackColor = System.Drawing.Color.Transparent;
            this.label6.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label6.Location = new System.Drawing.Point(10, 127);
            this.label6.Margin = new System.Windows.Forms.Padding(0);
            this.label6.Name = "label6";
            this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label6.Size = new System.Drawing.Size(145, 34);
            this.label6.TabIndex = 182;
            this.label6.Text = "Auto Position On Start-Up";
            this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // pickerBox2
            // 
            this.pickerBox2.AcceptButton = null;
            this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.pickerBox2.BackColor = System.Drawing.Color.Transparent;
            this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.pickerBox2.Location = new System.Drawing.Point(285, 168);
            this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
            this.pickerBox2.Name = "pickerBox2";
            this.pickerBox2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.pickerBox2.Size = new System.Drawing.Size(84, 35);
            this.pickerBox2.TabIndex = 3;
            this.pickerBox2.TabStop = false;
            this.pickerBox2.Value = true;
            // 
            // label7
            // 
            this.label7.AutoSize = true;
            this.label7.BackColor = System.Drawing.Color.Transparent;
            this.label7.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label7.Location = new System.Drawing.Point(10, 168);
            this.label7.Margin = new System.Windows.Forms.Padding(0);
            this.label7.Name = "label7";
            this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label7.Size = new System.Drawing.Size(89, 34);
            this.label7.TabIndex = 184;
            this.label7.Text = "Always-On-Top";
            this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label8
            // 
            this.label8.AutoSize = true;
            this.label8.BackColor = System.Drawing.Color.Transparent;
            this.label8.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label8.Location = new System.Drawing.Point(10, 21);
            this.label8.Margin = new System.Windows.Forms.Padding(0);
            this.label8.Name = "label8";
            this.label8.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label8.Size = new System.Drawing.Size(60, 34);
            this.label8.TabIndex = 186;
            this.label8.Text = "Auto Save";
            this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // pickerBox3
            // 
            this.pickerBox3.AcceptButton = null;
            this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.pickerBox3.BackColor = System.Drawing.Color.Transparent;
            this.pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.pickerBox3.Location = new System.Drawing.Point(285, 21);
            this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
            this.pickerBox3.Name = "pickerBox3";
            this.pickerBox3.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.pickerBox3.Size = new System.Drawing.Size(84, 35);
            this.pickerBox3.TabIndex = 0;
            this.pickerBox3.TabStop = false;
            // 
            // tHorizontalSeparator1
            // 
            this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
            this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
            this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
            this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
            this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
            this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
            this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
            this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
            this.tHorizontalSeparator1.TabIndex = 188;
            this.tHorizontalSeparator1.TabStop = false;
            // 
            // tHorizontalSeparator2
            // 
            this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
            this.tHorizontalSeparator2.Location = new System.Drawing.Point(10, 59);
            this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
            this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
            this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
            this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
            this.tHorizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
            this.tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
            this.tHorizontalSeparator2.TabIndex = 190;
            this.tHorizontalSeparator2.TabStop = false;
            // 
            // tHorizontalSeparator3
            // 
            this.tHorizontalSeparator3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
            this.tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
            this.tHorizontalSeparator3.Location = new System.Drawing.Point(10, 206);
            this.tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
            this.tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
            this.tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
            this.tHorizontalSeparator3.Name = "tHorizontalSeparator3";
            this.tHorizontalSeparator3.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
            this.tHorizontalSeparator3.Size = new System.Drawing.Size(364, 22);
            this.tHorizontalSeparator3.TabIndex = 191;
            this.tHorizontalSeparator3.TabStop = false;
            // 
            // textBox1
            // 
            this.textBox1.AcceptButton = null;
            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.textBox1.BackColor = System.Drawing.Color.Transparent;
            this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.textBox1.Location = new System.Drawing.Point(192, 234);
            this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
            this.textBox1.Name = "textBox1";
            this.textBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.textBox1.ReadOnly = false;
            this.textBox1.Size = new System.Drawing.Size(177, 35);
            this.textBox1.TabIndex = 4;
            this.textBox1.TabStop = false;
            this.textBox1.UseSystemPasswordChar = false;
            // 
            // pickerBox4
            // 
            this.pickerBox4.AcceptButton = null;
            this.pickerBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.pickerBox4.BackColor = System.Drawing.Color.Transparent;
            this.pickerBox4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.pickerBox4.Location = new System.Drawing.Point(285, 279);
            this.pickerBox4.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
            this.pickerBox4.Name = "pickerBox4";
            this.pickerBox4.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.pickerBox4.Size = new System.Drawing.Size(84, 35);
            this.pickerBox4.TabIndex = 5;
            this.pickerBox4.TabStop = false;
            this.pickerBox4.Value = true;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.BackColor = System.Drawing.Color.Transparent;
            this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label2.Location = new System.Drawing.Point(10, 279);
            this.label2.Margin = new System.Windows.Forms.Padding(0);
            this.label2.Name = "label2";
            this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label2.Size = new System.Drawing.Size(95, 34);
            this.label2.TabIndex = 193;
            this.label2.Text = "Ignore SSL Errors";
            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // pickerBox5
            // 
            this.pickerBox5.AcceptButton = null;
            this.pickerBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.pickerBox5.BackColor = System.Drawing.Color.Transparent;
            this.pickerBox5.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
            this.pickerBox5.Location = new System.Drawing.Point(285, 85);
            this.pickerBox5.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
            this.pickerBox5.Name = "pickerBox5";
            this.pickerBox5.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
            this.pickerBox5.Size = new System.Drawing.Size(84, 35);
            this.pickerBox5.TabIndex = 1;
            this.pickerBox5.TabStop = false;
            this.pickerBox5.Value = true;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.BackColor = System.Drawing.Color.Transparent;
            this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
            this.label3.Location = new System.Drawing.Point(10, 85);
            this.label3.Margin = new System.Windows.Forms.Padding(0);
            this.label3.Name = "label3";
            this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
            this.label3.Size = new System.Drawing.Size(112, 34);
            this.label3.TabIndex = 195;
            this.label3.Text = "Show Toolbar Menu";
            this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // OptionsForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(384, 521);
            this.Controls.Add(this.pickerBox5);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.pickerBox4);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.tHorizontalSeparator3);
            this.Controls.Add(this.tHorizontalSeparator2);
            this.Controls.Add(this.tHorizontalSeparator1);
            this.Controls.Add(this.pickerBox3);
            this.Controls.Add(this.label8);
            this.Controls.Add(this.pickerBox2);
            this.Controls.Add(this.label7);
            this.Controls.Add(this.pickerBox1);
            this.Controls.Add(this.label6);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.label1);
            this.MinimumSize = new System.Drawing.Size(400, 560);
            this.Name = "OptionsForm";
            this.Text = "Options";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);

            if (parentForm == null)
            {
                return;
            }

            if (parentForm.CurrentSession == null)
            {
                return;
            }

            pickerBox3.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave;
            pickerBox1.Value = parentForm.CurrentSession.EnableAutoPosition;
            pickerBox2.Value = parentForm.CurrentSession.AlwaysOnTop;
            textBox1.Text = parentForm.CurrentSession.RunCommand ?? string.Empty;
            pickerBox4.Value = parentForm.CurrentSession.IgnoreSSL;
            pickerBox5.Value = parentForm.CurrentSession.ShowToolbar;
        }

        private void button1_MouseClick(object sender, MouseEventArgs e)
        {
            if (parentForm != null)
            {
                if (parentForm.CurrentSession == null) parentForm.CurrentSession = new AppSession();

                parentForm.CurrentSession.AutoSave = (AppSession.AutoSaveOption)pickerBox3.ComboBox.SelectedIndex;
                parentForm.CurrentSession.EnableAutoPosition = pickerBox1.Value;
                parentForm.CurrentSession.AlwaysOnTop = pickerBox2.Value;
                parentForm.CurrentSession.RunCommand = textBox1.Text?.Trim();
                parentForm.CurrentSession.IgnoreSSL = pickerBox4.Value;
                parentForm.CurrentSession.ShowToolbar = pickerBox5.Value;
            }

            this.DialogResult = DialogResult.OK;
            this.Close();
        }

    }
}