public wndSettings(EcsSettings s, StaticPinvokeLolClient pilc, Action <string> DisplayMessage)
            : this()
        {
            if (s == null || pilc == null || DisplayMessage == null)
            {
                throw new ArgumentNullException();
            }

            _s = s;
            _displayMessage = DisplayMessage;
            _pilc           = pilc;

            _s.ChampionSearchbarChanged += _s_ChampionSearchbarChanged;
            _s.ClientOverlayChanged     += _s_ClientOverlayChanged;
            _s.TeamChatChanged          += _s_TeamChatChanged;

            double dotNetVersion = DotnetRegistryVersion();

            if (dotNetVersion < 4.5)
            {
                gbBasicRequirements.Visibility = System.Windows.Visibility.Visible;
                spDotNetVersion.Visibility     = System.Windows.Visibility.Visible;
                lblDotNetVersion.Content      += " " + dotNetVersion;
            }

            if (!isRunFromProgramFiles())
            {
                gbBasicRequirements.Visibility = System.Windows.Visibility.Visible;
                lblProgramFiles.Visibility     = Visibility.Visible;
                lblProgramFiles.Content        = "Not run from " + Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
            }

            txtApiKey.Text = s.UserApiKey;
            chkShowMainFormOnLaunch.IsChecked = s.ShowMainFormOnLaunch;
            chkStartLeagueWithECS.IsChecked   = s.StartLeagueWithEcs;
            txtLeaguePath.Text = s.LeaguePath;

            lblChampionSearchBar.Content += " " + _s.ChampionSearchbarRelativePos.ToString();
            lblClientOverlay.Content     += " " + _s.ClientOverlayRelativePos.ToString();
            lblTeamChat.Content          += " " + _s.TeamChatRelativePos.ToString();

            lblApplicationpath.Content += " " + StaticSerializer.applicationPath();
            lblAppDataPath.Content     += " " + StaticSerializer.userAppDataPath();

            if (pilc.ClientState == LolClientState.NoClient && !File.Exists(StaticSerializer.FullPath_ClientImage))
            {
                btnConfigClientOverlay.IsEnabled = false;
            }

            pilc.LolClientStateChanged += pilc_LolClientStateChanged;

            DispatcherTimer dptm = new DispatcherTimer(DispatcherPriority.Loaded);

            dptm.Interval = new TimeSpan(0, 0, 5);
            dptm.Tick    += dptm_Tick;
            dptm.Start();
        }
 private void lblApplicationAppData_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     Process.Start(StaticSerializer.userAppDataPath());
 }