using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Remontor.Connector
{
    internal class DobleMonOne : IModeMon
    {
        [DllImport("user32.dll")]
        static extern bool MoveWindow(IntPtr Handle, int x, int y, int w, int h, bool repaint);
        private int over = 0;
        private bool Chanded = true;
        public DobleMonOne() {
          
        }
        public override void Set()
        {
            Chanded = true;
            SConnector.FormMain.WindowState = SConnector.WindowState;
            SConnector.FormMain.Location = new System.Drawing.Point(SConnector.x, SConnector.y);
            SConnector.FormMain.Width = SConnector.Width;
            SConnector.FormMain.Height = SConnector.Height;
            Chanded = false;
        }
        public override void Resize(Process Proc, Control View)
        { 
            if (Chanded) return;
            if (over == 0)
            {
                over = 1;
            }
            else
            {
                over = 0;
            }
           
            Chanded = true;
            if(SConnector.FormMain.WindowState == FormWindowState.Normal)
            {
                SConnector.Width = SConnector.FormMain.Width;
                SConnector.Height = SConnector.FormMain.Height;
                SConnector.x = SConnector.FormMain.Location.X;
                SConnector.y = SConnector.FormMain.Location.Y;
            }
            SConnector.WindowState = SConnector.FormMain.WindowState;
            Chanded = false;
            MoveWindow(Proc.MainWindowHandle, View.Bounds.X, View.Bounds.Y + 9, View.Bounds.Width * 2, View.Bounds.Height - 9 + over, true);
        }
        public override IModeMon Change(IModeMon Mode)
        {
            if (Mode == this) return this;
            return Mode;
        }
    }
}
