Skip to content

Commit

Permalink
Added settings panel with theme selector
Browse files Browse the repository at this point in the history
  • Loading branch information
nint8835 committed Jun 24, 2018
1 parent fb7f63b commit 363179a
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 13 deletions.
4 changes: 0 additions & 4 deletions App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ protected override void OnStartup(StartupEventArgs e) {

AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;

ThemeManager.ChangeAppStyle(Current,
ThemeManager.GetAccent("Orange"),
ThemeManager.GetAppTheme("BaseLight"));

base.OnStartup(e);
}

Expand Down
38 changes: 30 additions & 8 deletions MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
mc:Ignorable="d"
Title="iTunesRichPresence" Height="500" Width="450" ResizeMode="CanMinimize" ShowTitleBar="True" StateChanged="MetroWindow_StateChanged" Closing="MetroWindow_Closing">
Title="iTunesRichPresence" Height="500" Width="450" ResizeMode="CanMinimize" ShowTitleBar="True" StateChanged="MetroWindow_StateChanged" Closing="MetroWindow_Closing" RightWindowCommandsOverlayBehavior="HiddenTitleBar">
<Grid>
<CheckBox x:Name="RunOnStartupCheckBox" Content="Run on startup" HorizontalAlignment="Left" Margin="10,443,0,0" VerticalAlignment="Top" Click="RunOnStartupCheckBox_OnClick"/>
<Label Content="Playing status" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="PlayingTopLineFormatTextBox" HorizontalAlignment="Left" Height="23" Margin="10,35,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="424" TextChanged="PlayingTopLineFormatTextBox_TextChanged" GotFocus="TextBox_GotFocus"/>
<TextBox x:Name="PlayingBottomLineFormatTextBox" HorizontalAlignment="Left" Height="23" Margin="10,66,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="424" TextChanged="PlayingBottomLineFormatTextBox_TextChanged" GotFocus="TextBox_GotFocus"/>
Expand All @@ -33,21 +32,44 @@
<Setter Property="Margin" Value="5,5,5,5" />
</Style>
</Grid.Resources>
<Button x:Name="TrackButton" Content="Track" Click="TrackButton_Click" FontWeight="Normal" Grid.Column="0" Grid.Row="0"/>
<Button x:Name="ArtistButton" Content="Artist" Click="ArtistButton_Click" FontWeight="Normal" Grid.Column="1" Grid.Row="0"/>
<Button x:Name="PlaylistTypeButton" Content="Playlist type" Click="PlaylistTypeButton_Click" FontWeight="Normal" Grid.Column="0" Grid.Row="1"/>
<Button x:Name="PlaylistNameButton" Content="Playlist name" Click="PlaylistNameButton_Click" FontWeight="Normal" Grid.Column="1" Grid.Row="1"/>
<Button x:Name="AlbumButton" Content="Album" Click="AlbumButton_OnClick" FontWeight="Normal" Grid.Column="0" Grid.Row="2"/>
<Button x:Name="TrackButton" Content="Track" Click="TrackButton_Click" Grid.Column="0" Grid.Row="0"/>
<Button x:Name="ArtistButton" Content="Artist" Click="ArtistButton_Click" Grid.Column="1" Grid.Row="0"/>
<Button x:Name="PlaylistTypeButton" Content="Playlist type" Click="PlaylistTypeButton_Click" Grid.Column="0" Grid.Row="1"/>
<Button x:Name="PlaylistNameButton" Content="Playlist name" Click="PlaylistNameButton_Click" Grid.Column="1" Grid.Row="1"/>
<Button x:Name="AlbumButton" Content="Album" Click="AlbumButton_OnClick" Grid.Column="0" Grid.Row="2"/>
</Grid>
</GroupBox>
<CheckBox x:Name="PlaybackDurationCheckBox" Content="Display playback duration" HorizontalAlignment="Left" Margin="117,443,0,0" VerticalAlignment="Top" Click="PlaybackDurationCheckBox_Click"/>
<CheckBox x:Name="PlaybackDurationCheckBox" Content="Display playback duration" HorizontalAlignment="Left" Margin="12,443,0,0" VerticalAlignment="Top" Click="PlaybackDurationCheckBox_Click"/>
</Grid>
<controls:MetroWindow.RightWindowCommands>
<controls:WindowCommands>
<Button Name="UpdateButton" Content="new version available!" Click="UpdateButton_OnClick" Visibility="Hidden"/>
<Button Name="SettingsButton" Content="settings" Click="SettingsButton_OnClick"/>
<Button Name="AboutButton" Content="about" Click="AboutButton_OnClick"/>
</controls:WindowCommands>
</controls:MetroWindow.RightWindowCommands>
<controls:MetroWindow.Flyouts>
<controls:FlyoutsControl>
<controls:Flyout Name="SettingsFlyout" Header="Settings" Position="Right" Width="450" Theme="Light">
<Grid Margin="20,20,20,20" VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<CheckBox x:Name="RunOnStartupCheckBox" Content="Run on startup" HorizontalAlignment="Left" Click="RunOnStartupCheckBox_OnClick" Grid.Row="0" Margin="0,0,0,15"/>
<Grid Grid.Row="1" Margin="0,0,0,15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Label Content="Accent colour:" Grid.Column="0"/>
<ComboBox Name="ThemeComboBox" SelectionChanged="ThemeComboBox_OnSelectionChanged" Grid.Column="1"/>
</Grid>

</Grid>
</controls:Flyout>
</controls:FlyoutsControl>
</controls:MetroWindow.Flyouts>

</controls:MetroWindow>

22 changes: 22 additions & 0 deletions MainWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
using System;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using iTunesRichPresence_Rewrite.Properties;
using MahApps.Metro;
using MahApps.Metro.Controls.Dialogs;
using Microsoft.Win32;
using TextBox = System.Windows.Controls.TextBox;
using Octokit;
using Application = System.Windows.Application;

namespace iTunesRichPresence_Rewrite {
/// <summary>
Expand All @@ -33,6 +37,13 @@ public MainWindow() {
_notifyIcon = new NotifyIcon {Text = "iTunesRichPresence", Visible = false, Icon = System.Drawing.Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location)};
_notifyIcon.MouseDoubleClick += (sender, args) => { WindowState = WindowState.Normal; };

ThemeComboBox.ItemsSource = ThemeManager.Accents.Select(accent => accent.Name);
ThemeComboBox.SelectedItem = Settings.Default.Accent;

ThemeManager.ChangeAppStyle(Application.Current,
ThemeManager.GetAccent(Settings.Default.Accent),
ThemeManager.GetAppTheme("BaseLight"));

RunOnStartupCheckBox.IsChecked = Settings.Default.RunOnStartup;
PlayingTopLineFormatTextBox.Text = Settings.Default.PlayingTopLine;
PlayingBottomLineFormatTextBox.Text = Settings.Default.PlayingBottomLine;
Expand Down Expand Up @@ -140,5 +151,16 @@ private async void UpdateButton_OnClick(object sender, RoutedEventArgs e) {
}
}

private void SettingsButton_OnClick(object sender, RoutedEventArgs e) {
SettingsFlyout.IsOpen = true;
}

private void ThemeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e) {
Settings.Default.Accent = (string) ThemeComboBox.SelectedItem;
Settings.Default.Save();
ThemeManager.ChangeAppStyle(Application.Current,
ThemeManager.GetAccent(Settings.Default.Accent),
ThemeManager.GetAppTheme("BaseLight"));
}
}
}
12 changes: 12 additions & 0 deletions Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Properties/Settings.settings
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="iTunesRichPresence_Rewrite.Properties" GeneratedClassName="Settings">
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="RunOnStartup" Type="System.Boolean" Scope="User">
Expand All @@ -20,5 +20,8 @@
<Setting Name="DisplayPlaybackDuration" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="Accent" Type="System.String" Scope="User">
<Value Profile="(Default)">Orange</Value>
</Setting>
</Settings>
</SettingsFile>

0 comments on commit 363179a

Please sign in to comment.