public ProjectSettingsWindow(CharacterSetManager characterSetManager, ProjectManager projectManager) { if (characterSetManager == null) { throw new ArgumentNullException(nameof(characterSetManager)); } DataContext = this; _isNewProject = projectManager == null; _csManager = characterSetManager; _originalCharacterSets = new List <CharacterSet>(); _addedCharacterSets = new List <CharacterSet>(); _removedCharacterSets = new List <CharacterSet>(); _isLoading = true; if (_isNewProject) { Project = new ProjectManager(); } else { Project = new ProjectManager(projectManager); foreach (var character in Project.Where(character => !_originalCharacterSets.Contains(character.CharacterSet))) { _originalCharacterSets.Add(character.CharacterSet); } } InitializeComponent(); }
public PreferencesWindow(CharacterSetManager csManager) { if (csManager == null) { throw new ArgumentNullException(nameof(csManager)); } InitializeComponent(); DataContext = this; _csManager = csManager; }
private void Window_Loaded(object sender, RoutedEventArgs e) { // Configure bindings var binding = new Binding("SelectedItems.Count") { Source = ListBoxProjectData, Converter = new IntegerToVisibilityConverter(), ConverterParameter = "=,1,Hidden" }; MainPixelGrid.SetBinding(VisibilityProperty, binding); GuidePanel.SetBinding(VisibilityProperty, binding); binding = new Binding("IsAscentOverlayVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonAscentOverlay.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsDescentOverlayVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonDescentOverlay.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsBearingOverlayVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonBearingOverlay.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsBaselineGuideVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonBaselineGuide.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsUppercaseGuideVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonUppercaseGuide.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsLowercaseGuideVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonLowercaseGuide.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("IsBearingGuideVisible") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonBearingGuide.SetBinding(ToggleButton.IsCheckedProperty, binding); binding = new Binding("ExtendGuideLines") { Source = MainPixelGrid, Mode = BindingMode.TwoWay }; ButtonExtendGuides.SetBinding(ToggleButton.IsCheckedProperty, binding); // Load the character set color scheme ColorScheme scheme; if (Settings.Default.Preferences_Appearance_CharacterSetColors == null || Settings.Default.Preferences_Appearance_CharacterSetColors.Count == 0) { scheme = ColorScheme.BlackOnlyScheme; } else { scheme = new ColorScheme(Settings.Default.Preferences_Appearance_CharacterSetColors); } // Load the character set database _csManager = new CharacterSetManager(scheme); if (!_csManager.Load(Settings.Default.Database_Filename)) { _csManager.Clear(); _csManager.Add(new CharacterSet()); _csManager.Save(Settings.Default.Database_Filename); MessageBox.Show( "The character set database is either missing or corrupted.\nA new empty database has been created.", "Database missing", MessageBoxButton.OK, MessageBoxImage.Exclamation); } // Subscribe to events MainPixelGrid.GridUpdated += MainPixelGrid_GridUpdated; }