using MahApps.Metro; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace GTAOnlineCasinoHelper.Views.Settings { public partial class ThemeView : UserControl { public ThemeView() { this.InitializeComponent(); Theme current = ThemeManager.DetectTheme(); int selectedBaseColor = -1; int i = 0; foreach (string baseColor in ThemeManager.BaseColors) { if (current.BaseColorScheme.Equals(baseColor)) { selectedBaseColor = i; } ComboBox_BaseColors.Items.Add(baseColor); i++; } int selectedColorScheme = -1; i = 0; foreach (ColorScheme colorScheme in ThemeManager.ColorSchemes) { if (current.ColorScheme.Equals(colorScheme.Name)) { selectedColorScheme = i; } SolidColorBrush solidColorBrush = colorScheme.ShowcaseBrush as SolidColorBrush; if (solidColorBrush == null) { solidColorBrush = new SolidColorBrush(Colors.Black); } else { byte r = solidColorBrush.Color.R, g = solidColorBrush.Color.G, b = solidColorBrush.Color.B; if (r + g + b > 382) { solidColorBrush = new SolidColorBrush(Colors.Black); } else { solidColorBrush = new SolidColorBrush(Colors.White); } } ComboBoxItem item = new ComboBoxItem() { Background = colorScheme.ShowcaseBrush, Foreground = solidColorBrush, Content = colorScheme.Name, }; ComboBox_ColorSchemes.Items.Add(item); i++; } ComboBox_BaseColors.SelectedIndex = selectedBaseColor; ComboBox_ColorSchemes.SelectedIndex = selectedColorScheme; ComboBox_BaseColors.SelectionChanged += ComboBox_BaseColors_SelectionChanged; ComboBox_ColorSchemes.SelectionChanged += ComboBox_ColorSchemes_SelectionChanged; } private void ComboBox_BaseColors_SelectionChanged(object sender, SelectionChangedEventArgs e) { string baseColor = ComboBox_BaseColors.SelectedItem as string; if (baseColor == null || baseColor.Equals(string.Empty)) { return; } ThemeManager.ChangeThemeBaseColor(Application.Current, baseColor); Properties.Settings.Default.ThemeBaseColor = baseColor; Properties.Settings.Default.Save(); Properties.Settings.Default.Reload(); } private void ComboBox_ColorSchemes_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBoxItem comboBoxItem = ComboBox_ColorSchemes.SelectedItem as ComboBoxItem; if (comboBoxItem == null) { return; } string colorScheme = comboBoxItem.Content as string; if (colorScheme == null || colorScheme.Equals(string.Empty)) { return; } ThemeManager.ChangeThemeColorScheme(Application.Current, colorScheme); Properties.Settings.Default.ThemeColorScheme = colorScheme; Properties.Settings.Default.Save(); Properties.Settings.Default.Reload(); } } }