private Window CreateSettingsExperience() { var defaultCategory = new SettingsCategoryViewModel( EarTrumpet.Properties.Resources.SettingsCategoryTitle, "\xE71D", EarTrumpet.Properties.Resources.SettingsDescriptionText, null, new SettingsPageViewModel[] { new EarTrumpetShortcutsPageViewModel(_settings), new EarTrumpetLegacySettingsPageViewModel(_settings), new EarTrumpetAboutPageViewModel(() => _errorReporter.DisplayDiagnosticData()) }); var allCategories = new List <SettingsCategoryViewModel>(); allCategories.Add(defaultCategory); if (AddonManager.Host.SettingsItems != null) { allCategories.AddRange(AddonManager.Host.SettingsItems.Select(a => a.Get(AddonManager.FindAddonInfoForObject(a)))); } var viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories); return(new SettingsWindow { DataContext = viewModel }); }
private Window CreateSettingsExperience() { var defaultCategory = new SettingsCategoryViewModel( EarTrumpet.Properties.Resources.SettingsCategoryTitle, "\xE71D", EarTrumpet.Properties.Resources.SettingsDescriptionText, null, new SettingsPageViewModel[] { new EarTrumpetShortcutsPageViewModel(_settings), new EarTrumpetLegacySettingsPageViewModel(_settings), new EarTrumpetAboutPageViewModel(() => _errorReporter.DisplayDiagnosticData()) }); var allCategories = new List <SettingsCategoryViewModel>(); allCategories.Add(defaultCategory); if (AddonManager.Host.SettingsItems != null) { allCategories.AddRange(AddonManager.Host.SettingsItems.Select(a => a.Get(AddonManager.FindAddonInfoForObject(a)))); } bool canClose = false; var viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories); var window = new SettingsWindow { DataContext = viewModel }; window.CloseClicked += () => viewModel.OnClosing(); viewModel.Close += () => { canClose = true; window.SafeClose(); }; window.Closing += (_, e) => { if (canClose) { _settingsWindow.Destroyed(); } else { e.Cancel = true; viewModel.OnClosing(); } }; return(window); }
// private Window CreateSettingsExperience() { var defaultCategory = new SettingsCategoryViewModel(EarTrumpet.Properties.Resources.SettingsCategoryTitle, "\xE71D", EarTrumpet.Properties.Resources.SettingsDescriptionText, null, new SettingsPageViewModel[] { new EarTrumpetShortcutsPageViewModel(), new EarTrumpetLegacySettingsPageViewModel(), #region hamed new EarTrumpetStartupSettingsPageViewModel(), new EarTrumpetLanguageSettingsPageViewModel(), #endregion new EarTrumpetAboutPageViewModel(), }.ToList()); var allCategories = new List <SettingsCategoryViewModel>(); allCategories.Add(defaultCategory); if (SettingsViewModel.AddonItems != null) { allCategories.AddRange(SettingsViewModel.AddonItems.Select(a => a.Get())); } bool canClose = false; var viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories); var window = new SettingsWindow(); window.CloseClicked += () => viewModel.OnClosing(); viewModel.Close += () => { canClose = true; window.SafeClose(); }; window.DataContext = viewModel; window.Closing += (_, e) => { if (canClose) { _settingsWindow.Destroyed(); } else { e.Cancel = true; viewModel.OnClosing(); } }; return(window); }
public void RegisterSettingsDialog(string category, SettingsViewModel viewModel) { if (!_categories.ContainsKey(category)) { _categories[category] = new SettingsCategoryViewModel { Title = category, Dialogs = new ObservableCollection <SettingsViewModel>() }; _categoryViewModels.Add(_categories[category]); } _categories[category].Dialogs.Add(viewModel); if (_categoryViewModels.Count == 1) { SelectedSetting = viewModel; _categories[category].IsExpanded = true; } }