private void ApplyClicked(object sender, RoutedEventArgs e) { OnConfigUpdated.OnNext(_previewStyle.Copy()); if (NewStyleName != null) { _dmdConfig.ApplyStyle(NewStyleName, true); } }
public DmdSettings(DmdStyle style, Configuration config) { _config = config; _originalStyle = style.Copy(); _previewStyle = _originalStyle.Copy(); _dmdConfig = _config?.VirtualDmd as VirtualDmdConfig; DataContext = this; InitializeComponent(); if (_dmdConfig != null) { StyleNameComboBox.SelectedValue = _dmdConfig.StyleName; } UpdateControls(); LoadPreview(); // if there's no game name, don't use the split button for applying. if (_dmdConfig?.HasGameName == false) { ApplyButton.Visibility = Visibility.Hidden; ApplyGloballyButton.Visibility = Visibility.Visible; } else { ApplyButton.Visibility = Visibility.Visible; ApplyButton.Content = $"Apply to \"{_dmdConfig.GameName}\""; ApplyGloballyButton.Visibility = Visibility.Hidden; } if (config == null) { SaveGroup.Visibility = Visibility.Collapsed; } DotSize.OnValueChanged.Subscribe(value => { _previewStyle.DotSize = value; UpdatePreview(); }); DotRounding.OnValueChanged.Subscribe(value => { _previewStyle.DotRounding = value; UpdatePreview(); }); DotSharpness.OnValueChanged.Subscribe(value => { _previewStyle.DotSharpness = value; UpdatePreview(); }); UnlitDotColor.SelectedColorChanged += (sender, e) => _previewStyle.UnlitDot = UnlitDotColor.SelectedColor.Value; UnlitDotColor.SelectedColorChanged += (sender, e) => UpdatePreview(); DotGlow.OnValueChanged.Subscribe(value => { _previewStyle.DotGlow = value; UpdatePreview(); }); Brightness.OnValueChanged.Subscribe(value => { _previewStyle.Brightness = value; UpdatePreview(); }); BackLevel.OnValueChanged.Subscribe(value => { _previewStyle.BackGlow = value; UpdatePreview(); }); Gamma.OnValueChanged.Subscribe(value => { _previewStyle.Gamma = value; UpdatePreview(); }); TintAmount.OnValueChanged.Subscribe(value => { _previewStyle.Tint = Color.FromArgb((byte)(value * 255), TintColor.SelectedColor.Value.R, TintColor.SelectedColor.Value.G, TintColor.SelectedColor.Value.B); LoadPreview(); }); TintColor.SelectedColorChanged += (sender, e) => { _previewStyle.Tint = Color.FromArgb((byte)(TintAmount.Value * 255), TintColor.SelectedColor.Value.R, TintColor.SelectedColor.Value.G, TintColor.SelectedColor.Value.B); UpdatePreview(); }; GlassPath.TextChanged += (sender, e) => _previewStyle.GlassTexture = GlassPath.Text; GlassPath.TextChanged += (sender, e) => UpdatePreview(); GlassDMDLightingSlider.ValueChanged += (sender, e) => GlassDMDLightingValue.Text = DoubleToString2(GlassDMDLightingSlider.Value); GlassDMDLightingValue.TextChanged += (sender, e) => GlassDMDLightingSlider.Value = StringToDouble(GlassDMDLightingValue.Text, GlassDMDLightingSlider.Value); GlassDMDLightingSlider.ValueChanged += (sender, e) => _previewStyle.GlassLighting = GlassDMDLightingSlider.Value; GlassDMDLightingSlider.ValueChanged += (sender, e) => UpdatePreview(); GlassColor.SelectedColorChanged += (sender, e) => _previewStyle.GlassColor = Color.FromArgb(255, GlassColor.SelectedColor.Value.R, GlassColor.SelectedColor.Value.G, GlassColor.SelectedColor.Value.B); GlassColor.SelectedColorChanged += (sender, e) => UpdatePreview(); GlassPadding.OnPaddingChanged.Subscribe(padding => _previewStyle.GlassPadding = padding); GlassPadding.OnPaddingChanged.Subscribe(padding => UpdatePreview()); FramePath.TextChanged += (sender, e) => _previewStyle.FrameTexture = FramePath.Text; FramePath.TextChanged += (sender, e) => UpdatePreview(); FramePadding.OnPaddingChanged.Subscribe(padding => _previewStyle.FramePadding = padding); FramePadding.OnPaddingChanged.Subscribe(padding => UpdatePreview()); PreviewMono32x8.Checked += (sender, e) => LoadPreview(); PreviewMono128x32.Checked += (sender, e) => LoadPreview(); PreviewColor128x32.Checked += (sender, e) => LoadPreview(); PreviewMono128x16.Checked += (sender, e) => LoadPreview(); PreviewMono192x64.Checked += (sender, e) => LoadPreview(); }
private void ResetClicked(object sender, RoutedEventArgs e) { _previewStyle = _originalStyle.Copy(); UpdateControls(); UpdatePreview(); }