GTAOnlineCasinoHelper/GTAOnlineCasinoHelper/Views/Settings/ThemeView.xaml.cs

104 lines
3.8 KiB
C#

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();
}
}
}