Exemplo n.º 1
0
        /// <summary>
        /// A sinmple consturctor that initializes the object with the given values.
        /// </summary>
        /// <param name="settings">The settings group whose settings will be editable with this view.</param>
        public GeneralSettingsPage(GeneralSettingsGroup settings)
        {
            SettingsGroup = settings;
            InitializeComponent();

            cbxProgramUpdateCheckInterval.DataSource = Enum.GetValues(typeof(DaysInterval))
                                                       .Cast <DaysInterval>()
                                                       .Select(p => new { Value = (int)p, Key = p.ToString() })
                                                       .ToList();
            cbxProgramUpdateCheckInterval.DisplayMember = "Key";
            cbxProgramUpdateCheckInterval.ValueMember   = "Value";

            BindingHelper.CreateFullBinding(ckbCheckForUpdates, () => ckbCheckForUpdates.Checked, settings, () => settings.CheckForUpdatesOnStartup);
            BindingHelper.CreateFullBinding(ckbAddMissingInfo, () => ckbAddMissingInfo.Checked, settings, () => settings.AddMissingModInfo);
            BindingHelper.CreateFullBinding(ckbScanSubfolders, () => ckbScanSubfolders.Checked, settings, () => settings.ScanSubfoldersForMods);
            BindingHelper.CreateFullBinding(ckbOverrideLocalNames, () => ckbOverrideLocalNames.Checked, settings, () => settings.OverrideLocalModNames);
            BindingHelper.CreateFullBinding(ckbCloseManagerAfterGameLaunch, () => ckbCloseManagerAfterGameLaunch.Checked, settings, () => settings.CloseModManagerAfterGameLaunch);
            BindingHelper.CreateFullBinding(ckbShowSidePanel, () => ckbShowSidePanel.Checked, settings, () => settings.ShowSidePanel);
            BindingHelper.CreateFullBinding(ckbSkipReadmeFiles, () => ckbSkipReadmeFiles.Checked, settings, () => settings.SkipReadmeFiles);
            BindingHelper.CreateFullBinding(ckbHideModUpdateWarningIcon, () => ckbHideModUpdateWarningIcon.Checked, settings, () => settings.HideModUpdateWarningIcon);

            BindingHelper.CreateFullBinding(cbxProgramUpdateCheckInterval, () => cbxProgramUpdateCheckInterval.SelectedValue, settings, () => settings.UpdateCheckInterval);

            BindingHelper.CreateFullBinding(tbxTraceLogDirectory, () => tbxTraceLogDirectory.Text, settings, () => settings.TraceLogPath);
            BindingHelper.CreateFullBinding(tbxTempPathDirectory, () => tbxTempPathDirectory.Text, settings, () => settings.TempPath);

            ckbCloseManagerAfterGameLaunch.Text = string.Format(ckbCloseManagerAfterGameLaunch.Text, settings.EnvironmentInfo.Settings.ModManagerName);
        }
Exemplo n.º 2
0
        /// <summary>
        /// A simple constructor that initializes the object with the given dependencies.
        /// </summary>
        /// <param name="p_eifEnvironmentInfo">The application's envrionment info.</param>
        /// <param name="p_gmrInstalledGames">The registry of insalled games.</param>
        /// <param name="p_gmdGameMode">The game mode currently being managed.</param>
        /// <param name="p_mrpModRepository">The repository we are logging in to.</param>
        /// <param name="p_dmtMonitor">The download monitor to use to track task progress.</param>
        /// <param name="p_umgUpdateManager">The update manager to use to perform updates.</param>
        /// <param name="p_mmgModManager">The <see cref="ModManager"/> to use to manage mods.</param>
        /// <param name="p_pmgPluginManager">The <see cref="PluginManager"/> to use to manage plugins.</param>
        public MainFormVM(IEnvironmentInfo p_eifEnvironmentInfo, GameModeRegistry p_gmrInstalledGames, IGameMode p_gmdGameMode, IModRepository p_mrpModRepository, DownloadMonitor p_dmtMonitor, ActivateModsMonitor p_ammMonitor, UpdateManager p_umgUpdateManager, ModManager p_mmgModManager, IPluginManager p_pmgPluginManager)
        {
            EnvironmentInfo = p_eifEnvironmentInfo;
            GameMode        = p_gmdGameMode;
            GameMode.GameLauncher.GameLaunching += new CancelEventHandler(GameLauncher_GameLaunching);
            ModManager    = p_mmgModManager;
            ModRepository = p_mrpModRepository;
            UpdateManager = p_umgUpdateManager;
            ModManagerVM  = new ModManagerVM(p_mmgModManager, p_eifEnvironmentInfo.Settings, p_gmdGameMode.ModeTheme);
            if (GameMode.UsesPlugins)
            {
                PluginManagerVM = new PluginManagerVM(p_pmgPluginManager, p_eifEnvironmentInfo.Settings, p_gmdGameMode);
            }
            DownloadMonitorVM     = new DownloadMonitorVM(p_dmtMonitor, p_eifEnvironmentInfo.Settings, p_mmgModManager, p_mrpModRepository);
            ActivateModsMonitorVM = new ActivateModsMonitorVM(p_ammMonitor, p_eifEnvironmentInfo.Settings, p_mmgModManager);
            HelpInfo = new HelpInformation(p_eifEnvironmentInfo);

            GeneralSettingsGroup gsgGeneralSettings = new GeneralSettingsGroup(p_eifEnvironmentInfo);

            foreach (IModFormat mftFormat in p_mmgModManager.ModFormats)
            {
                gsgGeneralSettings.AddFileAssociation(mftFormat.Extension, mftFormat.Name);
            }

            ModOptionsSettingsGroup mosModOptions = new ModOptionsSettingsGroup(p_eifEnvironmentInfo);

            List <ISettingsGroupView> lstSettingGroups = new List <ISettingsGroupView>();

            lstSettingGroups.Add(new GeneralSettingsPage(gsgGeneralSettings));
            lstSettingGroups.Add(new ModOptionsPage(mosModOptions));
            DownloadSettingsGroup dsgDownloadSettings = new DownloadSettingsGroup(p_eifEnvironmentInfo, ModRepository);

            lstSettingGroups.Add(new DownloadSettingsPage(dsgDownloadSettings));

            if (p_gmdGameMode.SettingsGroupViews != null)
            {
                lstSettingGroups.AddRange(p_gmdGameMode.SettingsGroupViews);
            }

            SettingsFormVM = new SettingsFormVM(p_gmdGameMode, p_eifEnvironmentInfo, lstSettingGroups);

            UpdateCommand = new Command("Update", String.Format("Update {0}", EnvironmentInfo.Settings.ModManagerName), UpdateProgramme);
            LogoutCommand = new Command("Logout", "Logout", Logout);

            List <Command>             lstChangeGameModeCommands = new List <Command>();
            List <IGameModeDescriptor> lstSortedModes            = new List <IGameModeDescriptor>(p_gmrInstalledGames.RegisteredGameModes);

            lstSortedModes.Sort((x, y) => x.Name.CompareTo(y.Name));
            foreach (IGameModeDescriptor gmdInstalledGame in lstSortedModes)
            {
                string strId          = gmdInstalledGame.ModeId;
                string strName        = gmdInstalledGame.Name;
                string strDescription = String.Format("Change game to {0}", gmdInstalledGame.Name);
                Image  imgCommandIcon = new Icon(gmdInstalledGame.ModeTheme.Icon, 32, 32).ToBitmap();
                lstChangeGameModeCommands.Add(new Command(strId, strName, strDescription, imgCommandIcon, () => ChangeGameMode(strId), true));
            }
            lstChangeGameModeCommands.Add(new Command("Change Default Game...", "Change Default Game", () => ChangeGameMode(CHANGE_DEFAULT_GAME_MODE)));
            lstChangeGameModeCommands.Add(new Command("Rescan Installed Games...", "Rescan Installed Games", () => ChangeGameMode(RESCAN_INSTALLED_GAMES)));
            ChangeGameModeCommands = lstChangeGameModeCommands;
        }
Exemplo n.º 3
0
        public XRebirthGameMode(IEnvironmentInfo p_eifEnvironmentInfo, FileUtil p_futFileUtility)
            : base(p_eifEnvironmentInfo)
        {
            SettingsGroupViews = new List <ISettingsGroupView>();
            var gsgGeneralSettings = new GeneralSettingsGroup(p_eifEnvironmentInfo, this);

            ((List <ISettingsGroupView>)SettingsGroupViews).Add(new GeneralSettingsPage(gsgGeneralSettings));
        }
Exemplo n.º 4
0
        /// <summary>
        /// A simple constructor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_eifEnvironmentInfo">The application's environment info.</param>
        /// <param name="p_futFileUtility">The file utility class to be used by the game mode.</param>
        public StateOfDecayGameMode(IEnvironmentInfo p_eifEnvironmentInfo, FileUtil p_futFileUtility)
            : base(p_eifEnvironmentInfo)
        {
            SettingsGroupViews = new List <ISettingsGroupView>();
            GeneralSettingsGroup gsgGeneralSettings = new GeneralSettingsGroup(p_eifEnvironmentInfo, this);

            ((List <ISettingsGroupView>)SettingsGroupViews).Add(new Nexus.Client.Games.StateOfDecay.Settings.UI.GeneralSettingsPage(gsgGeneralSettings));
        }
        /// <summary>
        /// A sinmple consturctor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_gsgSettings">The settings group whose settings will be editable with this view.</param>
        public GeneralSettingsPage(GeneralSettingsGroup p_gsgSettings)
        {
            SettingsGroup = p_gsgSettings;
            InitializeComponent();

            cbxProgramUpdateCheckInterval.DataSource = Enum.GetValues(typeof(DaysInterval))
                                                       .Cast <DaysInterval>()
                                                       .Select(p => new { Value = (int)p, Key = p.ToString() })
                                                       .ToList();
            cbxProgramUpdateCheckInterval.DisplayMember = "Key";
            cbxProgramUpdateCheckInterval.ValueMember   = "Value";

            foreach (GeneralSettingsGroup.FileAssociationSetting fasFileAssociation in p_gsgSettings.FileAssociations)
            {
                CheckBox ckbFileAssociation = new CheckBox();
                ckbFileAssociation.Tag      = fasFileAssociation;
                ckbFileAssociation.Text     = String.Format("Associate with {0} (*{1}) files", fasFileAssociation.Description, fasFileAssociation.Extension);
                ckbFileAssociation.AutoSize = true;
                BindingHelper.CreateFullBinding(ckbFileAssociation, () => ckbFileAssociation.Checked, fasFileAssociation, () => fasFileAssociation.IsAssociated);
                flpFileAssociations.Controls.Add(ckbFileAssociation);
            }
            BindingHelper.CreateFullBinding(ckbShellExtensions, () => ckbShellExtensions.Checked, p_gsgSettings, () => p_gsgSettings.AddShellExtensions);
            BindingHelper.CreateFullBinding(ckbAssociateURL, () => ckbAssociateURL.Checked, p_gsgSettings, () => p_gsgSettings.AssociateNxmUrl);

            BindingHelper.CreateFullBinding(ckbCheckForUpdates, () => ckbCheckForUpdates.Checked, p_gsgSettings, () => p_gsgSettings.CheckForUpdatesOnStartup);
            BindingHelper.CreateFullBinding(ckbAddMissingInfo, () => ckbAddMissingInfo.Checked, p_gsgSettings, () => p_gsgSettings.AddMissingModInfo);
            BindingHelper.CreateFullBinding(ckbScanSubfolders, () => ckbScanSubfolders.Checked, p_gsgSettings, () => p_gsgSettings.ScanSubfoldersForMods);
            BindingHelper.CreateFullBinding(ckbOverrideLocalNames, () => ckbOverrideLocalNames.Checked, p_gsgSettings, () => p_gsgSettings.OverrideLocalModNames);
            BindingHelper.CreateFullBinding(ckbCloseManagerAfterGameLaunch, () => ckbCloseManagerAfterGameLaunch.Checked, p_gsgSettings, () => p_gsgSettings.CloseModManagerAfterGameLaunch);
            BindingHelper.CreateFullBinding(ckbShowSidePanel, () => ckbShowSidePanel.Checked, p_gsgSettings, () => p_gsgSettings.ShowSidePanel);
            BindingHelper.CreateFullBinding(ckbSkipReadmeFiles, () => ckbSkipReadmeFiles.Checked, p_gsgSettings, () => p_gsgSettings.SkipReadmeFiles);
            BindingHelper.CreateFullBinding(ckbHideModUpdateWarningIcon, () => ckbHideModUpdateWarningIcon.Checked, p_gsgSettings, () => p_gsgSettings.HideModUpdateWarningIcon);

            BindingHelper.CreateFullBinding(cbxProgramUpdateCheckInterval, () => cbxProgramUpdateCheckInterval.SelectedValue, p_gsgSettings, () => p_gsgSettings.UpdateCheckInterval);

            BindingHelper.CreateFullBinding(tbxTraceLogDirectory, () => tbxTraceLogDirectory.Text, p_gsgSettings, () => p_gsgSettings.TraceLogPath);
            BindingHelper.CreateFullBinding(tbxTempPathDirectory, () => tbxTempPathDirectory.Text, p_gsgSettings, () => p_gsgSettings.TempPath);

            try
            {
                if (!p_gsgSettings.CanAssociateFiles)
                {
                    gbxAssociations.Enabled = false;
                    ttpTip.SetToolTip(gbxAssociations, String.Format("Run {0} as Administrator to change these settings.", p_gsgSettings.EnvironmentInfo.Settings.ModManagerName));
                }
            }
            catch (MissingMethodException ex)
            {
                string strErrorMessage = string.Format("Looks like you have a broken or incomplete .Net Framework!" + Environment.NewLine +
                                                       "You need to install .NetFramework 4.5.2 or 4.6 . " + Environment.NewLine +
                                                       "You could alse be required to download the latest Windows updates" + Environment.NewLine + Environment.NewLine +
                                                       "{0} will be unable to run until you do that and will now close.", SettingsGroup.EnvironmentInfo.Settings.ModManagerName);
                MessageBox.Show(strErrorMessage, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                System.Environment.Exit(0);
            }

            ckbCloseManagerAfterGameLaunch.Text = String.Format(ckbCloseManagerAfterGameLaunch.Text, p_gsgSettings.EnvironmentInfo.Settings.ModManagerName);
        }
Exemplo n.º 6
0
        /// <summary>
        /// A sinmple consturctor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_gsgSettings">The settings group whose settings will be editable with this view.</param>
        public GeneralSettingsPage(GeneralSettingsGroup p_gsgSettings)
            : this()
        {
            SettingsGroup            = p_gsgSettings;
            rdcDirectories.ViewModel = p_gsgSettings.RequiredDirectoriesVM;

            BindingHelper.CreateFullBinding(tbxCommand, () => tbxCommand.Text, p_gsgSettings, () => p_gsgSettings.CustomLaunchCommand);
            BindingHelper.CreateFullBinding(tbxCommandArguments, () => tbxCommandArguments.Text, p_gsgSettings, () => p_gsgSettings.CustomLaunchCommandArguments);
        }
        /// <summary>
        /// A simple constructor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_eifEnvironmentInfo">The application's environment info.</param>
        /// <param name="p_futFileUtility">The file utility class to be used by the game mode.</param>
        public GamebryoGameModeBase(IEnvironmentInfo p_eifEnvironmentInfo, FileUtil p_futFileUtility)
            : base(p_eifEnvironmentInfo)
        {
            SettingsFiles = CreateSettingsFileContainer();
            SetupSettingsFiles();
            SettingsGroupViews = new List <ISettingsGroupView>();
            GeneralSettingsGroup gsgGeneralSettings = new GeneralSettingsGroup(p_eifEnvironmentInfo, this);

            ((List <ISettingsGroupView>)SettingsGroupViews).Add(new GeneralSettingsPage(gsgGeneralSettings));
            SetupPluginManagement(p_futFileUtility);
        }
        /// <summary>
        /// A sinmple consturctor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_gsgSettings">The settings group whose settings will be editable with this view.</param>
        public GeneralSettingsPage(GeneralSettingsGroup p_gsgSettings)
            : this()
        {
            SettingsGroup            = p_gsgSettings;
            rdcDirectories.ViewModel = p_gsgSettings.RequiredDirectoriesVM;

            lblWorkingDirectory.Text = String.Format(lblWorkingDirectory.Text, p_gsgSettings.Title);

            BindingHelper.CreateFullBinding(tbxWorkingDirectory, () => tbxWorkingDirectory.Text, p_gsgSettings, () => p_gsgSettings.InstallationPath);
            BindingHelper.CreateFullBinding(tbxCommand, () => tbxCommand.Text, p_gsgSettings, () => p_gsgSettings.CustomLaunchCommand);
            BindingHelper.CreateFullBinding(tbxCommandArguments, () => tbxCommandArguments.Text, p_gsgSettings, () => p_gsgSettings.CustomLaunchCommandArguments);
        }
Exemplo n.º 9
0
        /// <summary>
        /// A simple constructor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_eifEnvironmentInfo">The application's environment info.</param>
        /// <param name="p_futFileUtility">The file utility class to be used by the game mode.</param>
        public GamebryoGameModeBase(IEnvironmentInfo p_eifEnvironmentInfo, FileUtil p_futFileUtility)
            : base(p_eifEnvironmentInfo)
        {
            SettingsFiles = CreateSettingsFileContainer();
            SetupSettingsFiles();
            SettingsGroupViews = new List <ISettingsGroupView>();
            GeneralSettingsGroup gsgGeneralSettings = new GeneralSettingsGroup(p_eifEnvironmentInfo, this);

            ((List <ISettingsGroupView>)SettingsGroupViews).Add(new GeneralSettingsPage(gsgGeneralSettings));

            string strPath = p_eifEnvironmentInfo.ApplicationPersonalDataFolderPath;

            strPath    = Path.Combine(Path.Combine(strPath, "boss"), "masterlist.txt");
            BossSorter = new BossSorter(p_eifEnvironmentInfo, this, p_futFileUtility, strPath);
        }
Exemplo n.º 10
0
		/// <summary>
		/// A sinmple consturctor that initializes the object with the given values.
		/// </summary>
		/// <param name="p_gsgSettings">The settings group whose settings will be editable with this view.</param>
		public GeneralSettingsPage(GeneralSettingsGroup p_gsgSettings)
		{
			SettingsGroup = p_gsgSettings;
			InitializeComponent();

			cbxProgramUpdateCheckInterval.DataSource = Enum.GetValues(typeof(DaysInterval))
				.Cast<DaysInterval>()
				.Select(p => new { Value = (int)p, Key = p.ToString() })
				.ToList();
			cbxProgramUpdateCheckInterval.DisplayMember = "Key";
			cbxProgramUpdateCheckInterval.ValueMember = "Value";

			foreach (GeneralSettingsGroup.FileAssociationSetting fasFileAssociation in p_gsgSettings.FileAssociations)
			{
				CheckBox ckbFileAssociation = new CheckBox();
				ckbFileAssociation.Tag = fasFileAssociation;
				ckbFileAssociation.Text = String.Format("Associate with {0} (*{1}) files", fasFileAssociation.Description, fasFileAssociation.Extension);
				ckbFileAssociation.AutoSize = true;
				BindingHelper.CreateFullBinding(ckbFileAssociation, () => ckbFileAssociation.Checked, fasFileAssociation, () => fasFileAssociation.IsAssociated);
				flpFileAssociations.Controls.Add(ckbFileAssociation);
			}
			BindingHelper.CreateFullBinding(ckbShellExtensions, () => ckbShellExtensions.Checked, p_gsgSettings, () => p_gsgSettings.AddShellExtensions);
			BindingHelper.CreateFullBinding(ckbAssociateURL, () => ckbAssociateURL.Checked, p_gsgSettings, () => p_gsgSettings.AssociateNxmUrl);

			BindingHelper.CreateFullBinding(ckbCheckForUpdates, () => ckbCheckForUpdates.Checked, p_gsgSettings, () => p_gsgSettings.CheckForUpdatesOnStartup);
			BindingHelper.CreateFullBinding(ckbAddMissingInfo, () => ckbAddMissingInfo.Checked, p_gsgSettings, () => p_gsgSettings.AddMissingModInfo);
			BindingHelper.CreateFullBinding(ckbScanSubfolders, () => ckbScanSubfolders.Checked, p_gsgSettings, () => p_gsgSettings.ScanSubfoldersForMods);
			BindingHelper.CreateFullBinding(ckbCloseManagerAfterGameLaunch, () => ckbCloseManagerAfterGameLaunch.Checked, p_gsgSettings, () => p_gsgSettings.CloseModManagerAfterGameLaunch);
			BindingHelper.CreateFullBinding(ckbShowSidePanel, () => ckbShowSidePanel.Checked, p_gsgSettings, () => p_gsgSettings.ShowSidePanel);
			BindingHelper.CreateFullBinding(ckbSkipReadmeFiles, () => ckbSkipReadmeFiles.Checked, p_gsgSettings, () => p_gsgSettings.SkipReadmeFiles);
			BindingHelper.CreateFullBinding(ckbHideModUpdateWarningIcon, () => ckbHideModUpdateWarningIcon.Checked, p_gsgSettings, () => p_gsgSettings.HideModUpdateWarningIcon);

			BindingHelper.CreateFullBinding(cbxProgramUpdateCheckInterval, () => cbxProgramUpdateCheckInterval.SelectedValue, p_gsgSettings, () => p_gsgSettings.UpdateCheckInterval);

			BindingHelper.CreateFullBinding(tbxTraceLogDirectory, () => tbxTraceLogDirectory.Text, p_gsgSettings, () => p_gsgSettings.TraceLogPath);
			BindingHelper.CreateFullBinding(tbxTempPathDirectory, () => tbxTempPathDirectory.Text, p_gsgSettings, () => p_gsgSettings.TempPath);

			if (!p_gsgSettings.CanAssociateFiles)
			{
				gbxAssociations.Enabled = false;
				ttpTip.SetToolTip(gbxAssociations, String.Format("Run {0} as Administrator to change these settings.", p_gsgSettings.EnvironmentInfo.Settings.ModManagerName));
			}
			ckbCloseManagerAfterGameLaunch.Text = String.Format(ckbCloseManagerAfterGameLaunch.Text, p_gsgSettings.EnvironmentInfo.Settings.ModManagerName);
		}
Exemplo n.º 11
0
        /// <summary>
        /// A sinmple consturctor that initializes the object with the given values.
        /// </summary>
        /// <param name="p_gsgSettings">The settings group whose settings will be editable with this view.</param>
        public GeneralSettingsPage(GeneralSettingsGroup p_gsgSettings)
        {
            SettingsGroup = p_gsgSettings;
            InitializeComponent();

            cbxProgramUpdateCheckInterval.DataSource = Enum.GetValues(typeof(DaysInterval))
                                                       .Cast <DaysInterval>()
                                                       .Select(p => new { Value = (int)p, Key = p.ToString() })
                                                       .ToList();
            cbxProgramUpdateCheckInterval.DisplayMember = "Key";
            cbxProgramUpdateCheckInterval.ValueMember   = "Value";

            foreach (GeneralSettingsGroup.FileAssociationSetting fasFileAssociation in p_gsgSettings.FileAssociations)
            {
                CheckBox ckbFileAssociation = new CheckBox();
                ckbFileAssociation.Tag      = fasFileAssociation;
                ckbFileAssociation.Text     = String.Format("Associate with {0} (*{1}) files", fasFileAssociation.Description, fasFileAssociation.Extension);
                ckbFileAssociation.AutoSize = true;
                BindingHelper.CreateFullBinding(ckbFileAssociation, () => ckbFileAssociation.Checked, fasFileAssociation, () => fasFileAssociation.IsAssociated);
                flpFileAssociations.Controls.Add(ckbFileAssociation);
            }
            BindingHelper.CreateFullBinding(ckbShellExtensions, () => ckbShellExtensions.Checked, p_gsgSettings, () => p_gsgSettings.AddShellExtensions);
            BindingHelper.CreateFullBinding(ckbAssociateURL, () => ckbAssociateURL.Checked, p_gsgSettings, () => p_gsgSettings.AssociateNxmUrl);

            BindingHelper.CreateFullBinding(ckbCheckForUpdates, () => ckbCheckForUpdates.Checked, p_gsgSettings, () => p_gsgSettings.CheckForUpdatesOnStartup);
            BindingHelper.CreateFullBinding(ckbAddMissingInfo, () => ckbAddMissingInfo.Checked, p_gsgSettings, () => p_gsgSettings.AddMissingModInfo);
            BindingHelper.CreateFullBinding(ckbScanSubfolders, () => ckbScanSubfolders.Checked, p_gsgSettings, () => p_gsgSettings.ScanSubfoldersForMods);
            BindingHelper.CreateFullBinding(ckbCloseManagerAfterGameLaunch, () => ckbCloseManagerAfterGameLaunch.Checked, p_gsgSettings, () => p_gsgSettings.CloseModManagerAfterGameLaunch);
            BindingHelper.CreateFullBinding(ckbShowSidePanel, () => ckbShowSidePanel.Checked, p_gsgSettings, () => p_gsgSettings.ShowSidePanel);
            BindingHelper.CreateFullBinding(ckbSkipReadmeFiles, () => ckbSkipReadmeFiles.Checked, p_gsgSettings, () => p_gsgSettings.SkipReadmeFiles);
            BindingHelper.CreateFullBinding(ckbHideModUpdateWarningIcon, () => ckbHideModUpdateWarningIcon.Checked, p_gsgSettings, () => p_gsgSettings.HideModUpdateWarningIcon);

            BindingHelper.CreateFullBinding(cbxProgramUpdateCheckInterval, () => cbxProgramUpdateCheckInterval.SelectedValue, p_gsgSettings, () => p_gsgSettings.UpdateCheckInterval);

            BindingHelper.CreateFullBinding(tbxTraceLogDirectory, () => tbxTraceLogDirectory.Text, p_gsgSettings, () => p_gsgSettings.TraceLogPath);
            BindingHelper.CreateFullBinding(tbxTempPathDirectory, () => tbxTempPathDirectory.Text, p_gsgSettings, () => p_gsgSettings.TempPath);

            if (!p_gsgSettings.CanAssociateFiles)
            {
                gbxAssociations.Enabled = false;
                ttpTip.SetToolTip(gbxAssociations, String.Format("Run {0} as Administrator to change these settings.", p_gsgSettings.EnvironmentInfo.Settings.ModManagerName));
            }
            ckbCloseManagerAfterGameLaunch.Text = String.Format(ckbCloseManagerAfterGameLaunch.Text, p_gsgSettings.EnvironmentInfo.Settings.ModManagerName);
        }