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

namespace FSI.BT.Tools.SystemTrayMenu.Settings
{
    public class Interface
    {
        public interface IInterface
        {

            string HotKey { get; set; }

            [Option(DefaultValue = "false")]
            bool IsUpgraded { get; set; }

            [Option(DefaultValue = "")]
            string PathDirectory { get; set; }

            [Option(DefaultValue = "false")]
            bool SetFolderByWindowsContextMenu { get; set; }

            [Option(DefaultValue = "false")]
            bool SaveLogFileInApplicationDirectory { get; set; }

            [Option(DefaultValue = "false")]
            bool IsAutostartActivated { get; set; }

            [Option(DefaultValue = "false")]
            bool CheckForUpdates { get; set; }

            [Option(DefaultValue = "")]
            string CurrentCultureInfoName { get; set; }

            [Option(DefaultValue = "100")]
            int SizeInPercent { get; set; }

            [Option(DefaultValue = "100")]
            int IconSizeInPercent { get; set; }

            [Option(DefaultValue = "150")]
            int RowHeighteInPercentageTouch { get; set; }

            [Option(DefaultValue = "100")]
            int RowHeighteInPercentage { get; set; }

            [Option(DefaultValue = "100")]
            int WidthMaxInPercent { get; set; }

            [Option(DefaultValue = "100")]
            int HeightMaxInPercent { get; set; }

            [Option(DefaultValue = "true")]
            bool AppearAtTheBottomLeft { get; set; }

            [Option(DefaultValue = "false")]
            bool UseCustomLocation { get; set; }

            [Option(DefaultValue = "600")]
            int CustomLocationX { get; set; }

            [Option(DefaultValue = "600")]
            int CustomLocationY { get; set; }

            [Option(DefaultValue = "false")]
            bool AppearAtMouseLocation { get; set; }

            [Option(DefaultValue = "true")]
            bool AppearNextToPreviousMenu { get; set; }

            [Option(DefaultValue = "150")]
            int OverlappingOffsetPixels { get; set; }

            [Option(DefaultValue = "true")]
            bool ResolveLinksToFolders { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowInTaskbar { get; set; }

            [Option(DefaultValue = "false")]
            bool SendHotkeyInsteadKillOtherInstances { get; set; }

            [Option(DefaultValue = "false")]
            bool SupportGamepad { get; set; }

            [Option(DefaultValue = "true")]
            bool OpenItemWithOneClick { get; set; }

            [Option(DefaultValue = "false")]
            bool OpenDirectoryWithOneClick { get; set; }

            [Option(DefaultValue = "false")]
            bool DragDropItemsEnabledTouch { get; set; }

            [Option(DefaultValue = "true")]
            bool SwipeScrollingEnabledTouch { get; set; }

            [Option(DefaultValue = "true")]
            bool DragDropItemsEnabled { get; set; }

            [Option(DefaultValue = "false")]
            bool SwipeScrollingEnabled { get; set; }

            [Option(DefaultValue = "")]
            string PathIcoDirectory { get; set; }

            [Option(DefaultValue = "true")]
            bool SortByTypeAndNameWindowsExplorerSort { get; set; }

            [Option(DefaultValue = "false")]
            bool SortByTypeAndDate { get; set; }

            [Option(DefaultValue = "false")]
            bool SortByFileExtensionAndName { get; set; }

            [Option(DefaultValue = "false")]
            bool SortByName { get; set; }

            [Option(DefaultValue = "false")]
            bool SortByDate { get; set; }

            [Option(DefaultValue = "true")]
            bool SystemSettingsShowHiddenFiles { get; set; }

            [Option(DefaultValue = "false")]
            bool NeverShowHiddenFiles { get; set; }

            [Option(DefaultValue = "false")]
            bool AlwaysShowHiddenFiles { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowOnlyAsSearchResult { get; set; }

            [Option(DefaultValue = "")]
            string PathsAddToMainMenu { get; set; }

            [Option(DefaultValue = "false")]
            bool GenerateShortcutsToDrives { get; set; }

            [Option(DefaultValue = "100")]
            int TimeUntilOpens { get; set; }

            [Option(DefaultValue = "true")]
            bool StaysOpenWhenItemClicked { get; set; }

            [Option(DefaultValue = "true")]
            bool StaysOpenWhenFocusLost { get; set; }

            [Option(DefaultValue = "400")]
            int TimeUntilCloses { get; set; }


            [Option(DefaultValue = "true")]
            bool StaysOpenWhenFocusLostAfterEnterPressed { get; set; }

            [Option(DefaultValue = "200")]
            int TimeUntilClosesAfterEnterPressed { get; set; }

            [Option(DefaultValue = "200")]
            int ClearCacheIfMoreThanThisNumberOfItems { get; set; }

            [Option(DefaultValue = "")]
            string SearchPattern { get; set; }

            [Option(DefaultValue = "false")]
            bool UseIconFromRootFolder { get; set; }

            [Option(DefaultValue = "false")]
            bool RoundCorners { get; set; }

            [Option(DefaultValue = "true")]
            bool IsDarkModeAlwaysOn { get; set; }

            [Option(DefaultValue = "false")]
            bool UseFading { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowLinkOverlay { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowDirectoryTitleAtTop { get; set; }

            [Option(DefaultValue = "true")]
            bool ShowSearchBar { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowFunctionKeyOpenFolder { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowFunctionKeyPinMenu { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowFunctionKeySettings { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowFunctionKeyRestart { get; set; }

            [Option(DefaultValue = "false")]
            bool ShowCountOfElementsBelow { get; set; }

            [Option(DefaultValue = "#CCE8FF")]
            string SColorSelectedItemearchPattern { get; set; }

            [Option(DefaultValue = "#CCE8FF")]
            string ColorSelectedItem { get; set; }

            [Option(DefaultValue = "#333333")]
            string ColorDarkModeSelecetedItem { get; set; }

            [Option(DefaultValue = "#99D1FF")]
            string ColorSelectedItemBorder { get; set; }

            [Option(DefaultValue = "#141D4B")]
            string ColorDarkModeSelectedItemBorder { get; set; }

            [Option(DefaultValue = "#C2F5DE")]
            string ColorOpenFolder { get; set; }

            [Option(DefaultValue = "#14412A")]
            string ColorDarkModeOpenFolder { get; set; }

            [Option(DefaultValue = "#99FFA5")]
            string ColorOpenFolderBorder { get; set; }

            [Option(DefaultValue = "#144B55")]
            string ColorDarkModeOpenFolderBorder { get; set; }

            [Option(DefaultValue = "#ffffff")]
            string ColorSearchField { get; set; }

            [Option(DefaultValue = "#191919")]
            string ColorDarkModeSearchField { get; set; }

            [Option(DefaultValue = "#ffffff")]
            string ColorBackground { get; set; }

            [Option(DefaultValue = "#202020")]
            string ColorDarkModeBackground { get; set; }

            [Option(DefaultValue = "#000000")]
            string ColorBackgroundBorder { get; set; }

            [Option(DefaultValue = "#000000")]
            string ColorDarkModeBackgroundBorder { get; set; }

            [Option(DefaultValue = "#606060")]
            string ColorArrow { get; set; }

            [Option(DefaultValue = "#dadada")]
            string ColorArrowHoverBackground { get; set; }

            [Option(DefaultValue = "#000000")]
            string ColorArrowHover { get; set; }

            [Option(DefaultValue = "#ffffff")]
            string ColorArrowClick { get; set; }

            [Option(DefaultValue = "#606060")]
            string ColorArrowClickBackground { get; set; }

            [Option(DefaultValue = "#dadada")]
            string ColorSliderArrowsAndTrackHover { get; set; }

            [Option(DefaultValue = "#cdcdcd")]
            string ColorSlider { get; set; }

            [Option(DefaultValue = "#a6a6a6")]
            string ColorSliderHover { get; set; }

            [Option(DefaultValue = "#606060")]
            string ColorSliderDragging { get; set; }

            [Option(DefaultValue = "#f0f0f0")]
            string ColorScrollbarBackground { get; set; }

            [Option(DefaultValue = "#676767")]
            string ColorArrowDarkMode { get; set; }

            [Option(DefaultValue = "#373737")]
            string ColorArrowHoverBackgroundDarkMode { get; set; }

            [Option(DefaultValue = "#676767")]
            string ColorArrowHoverDarkMode { get; set; }

            [Option(DefaultValue = "#171717")]
            string ColorArrowClickDarkMode { get; set; }

            [Option(DefaultValue = "#a6a6a6")]
            string ColorArrowClickBackgroundDarkMode { get; set; }

            [Option(DefaultValue = "#4d4d4d")]
            string ColorSliderArrowsAndTrackHoverDarkMode { get; set; }

            [Option(DefaultValue = "#4d4d4d")]
            string ColorSliderDarkMode { get; set; }

            [Option(DefaultValue = "#7a7a7a")]
            string ColorSliderHoverDarkMode { get; set; }

            [Option(DefaultValue = "#a6a6a6")]
            string ColorSliderDraggingDarkMode { get; set; }

            [Option(DefaultValue = "#171717")]
            string ColorScrollbarBackgroundDarkMode { get; set; }

            [Option(DefaultValue = "#95a0a6")]
            string ColorIcons { get; set; }

            [Option(DefaultValue = "#95a0a6")]
            string ColorDarkModeIcons { get; set; }

        }
    }
}
