using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FWHandler
{
    public static class Window
    {
        public static WindowHandler Find(string name, int repeatingTime = 0)
        {
          return HandlerProvider.WindowHandler.Find(name, repeatingTime);
        }
        public static WindowHandler Click(string name, int id, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.Click(name,id, repeatingTime);
        }
        public static WindowHandler Find(string name, int id, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.Find(name, id, repeatingTime);
        }
        public static WindowHandler FindChildrens(string name, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.FindChildrens(name, repeatingTime);
        }
        public static WindowHandler FindDescendants(string name, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.FindDescendants(name, repeatingTime);
        }
        public static WindowHandler SelectId(int id)
        {
            return HandlerProvider.WindowHandler.SelectSpecificId(id);
        }
        public static WindowHandler DoubleClick(string name, int id, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.DoubleClick(name, id, repeatingTime);
        }
        public static WindowHandler RightClick(string name, int id, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.RightClick(name, id, repeatingTime);
        }
        public static void Maximize()
        {
            HandlerProvider.WindowHandler.Maximize();
        }
        public static void Minimaze()
        {
            HandlerProvider.WindowHandler.Minimaze();
        }

        public static bool ElementExists(string value, int repeatingTime = 0)
        {
            if (HandlerProvider.WindowHandler.ElementExists(value, repeatingTime) == true)
            {
                return true;
            }
            return false;
        }
        public static bool ElementIsVisible(string value, int repeatingTime = 0)
        {
            if (HandlerProvider.WindowHandler.ElementIsVisible(value, repeatingTime) == true)
            {
                return true;
            }
            return false;
        }
        public static bool ElementIsVisible(string value, int id, int repeatingTime = 0)
        {
            if (HandlerProvider.WindowHandler.ElementIsVisible(value, id, repeatingTime) == true)
            {
                return true;
            }
            return false;
        }
        public static string ElementGetName(string value, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.ElementGetName(value, repeatingTime);
        }
        public static string ElementGetName(string value, int id, int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.ElementGetName(value, id, repeatingTime);
        }
        public static string GetWindowName(int repeatingTime = 0)
        {
            return HandlerProvider.WindowHandler.GetWindowName(repeatingTime);
        }
        public static double GetWidth()
        {
            return HandlerProvider.WindowHandler.GetWidth();
        }
        public static double GetHeight()
        {
            return HandlerProvider.WindowHandler.GetHeight();
        }

        public static ButtonHandler Button { get; } = HandlerProvider.WindowHandler.Button;
        public static CheckBoxHandler CheckBox{ get; } = HandlerProvider.WindowHandler.CheckBox;
        public static TextBoxHandler TextBox{ get; } = HandlerProvider.WindowHandler.TextBox;
        public static LabelHandler Label { get; } = HandlerProvider.WindowHandler.Label;
        public static RadioButtonHandler RadioButton { get; } = HandlerProvider.WindowHandler.RadioButton;

    }
}
