aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2019-10-06 06:36:54 +0900
committerKazuki Yamaguchi <k@rhe.jp>2019-10-06 08:24:54 +0900
commitd45bf8688920cde63ec75ecf8539b1688141c5ce (patch)
tree6bcbf99df6cb694e081eb3f35e8d0b5af2e7cbd7
parentab2984d79d11faded71b2c69d947714743a1e18c (diff)
downloadwf-clock-d45bf8688920cde63ec75ecf8539b1688141c5ce.tar.gz
split settings into a separate window
-rw-r--r--WarframeClock/OverlayWindow.xaml53
-rw-r--r--WarframeClock/OverlayWindow.xaml.cs32
-rw-r--r--WarframeClock/SettingsWindow.xaml47
-rw-r--r--WarframeClock/SettingsWindow.xaml.cs59
-rw-r--r--WarframeClock/WarframeClock.csproj7
5 files changed, 114 insertions, 84 deletions
diff --git a/WarframeClock/OverlayWindow.xaml b/WarframeClock/OverlayWindow.xaml
index 7530085..23977ce 100644
--- a/WarframeClock/OverlayWindow.xaml
+++ b/WarframeClock/OverlayWindow.xaml
@@ -37,58 +37,5 @@
<local:KuvaFloodOverlayItem DataContext="{Binding KuvaFloodOverlayItemViewModel}"
Margin="10,0,0,0"/>
</StackPanel>
-
- <Grid>
- <Grid.Style>
- <Style TargetType="{x:Type Grid}">
- <Setter Property="Visibility" Value="Collapsed"/>
- <Style.Triggers>
- <DataTrigger Binding="{Binding SettingsMode}" Value="True">
- <Setter Property="Visibility" Value="Visible"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Grid.Style>
- <StackPanel Background="White"
- HorizontalAlignment="Center" VerticalAlignment="Center">
- <GroupBox Header="Settings">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="5" />
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition MinHeight="20" />
- <RowDefinition MinHeight="20" />
- <RowDefinition MinHeight="20" />
- <RowDefinition MinHeight="20" />
- </Grid.RowDefinitions>
- <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center">Font Settings:</TextBlock>
- <Button Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" Click="FontSettingsButton_Click">...</Button>
- <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center">Arbitration:</TextBlock>
- <CheckBox Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowArbitration}"/>
- <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center">Kuva Flood:</TextBlock>
- <CheckBox Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowKuvaFlood}"/>
- <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center">Position:</TextBlock>
- <TextBlock Grid.Row="3" Grid.Column="2" VerticalAlignment="Center">Drag the clock overlay to reposition it.</TextBlock>
- </Grid>
- </GroupBox>
- <GroupBox Header="About">
- <StackPanel>
- <TextBlock>
- <TextBlock Text="{x:Static local:App.VersionString}" />
- </TextBlock>
- <TextBlock>
- <Hyperlink NavigateUri="{x:Static local:App.WebsiteUri}"
- RequestNavigate="Hyperlink_RequestNavigate">
- <TextBlock Text="{x:Static local:App.WebsiteUriString}" />
- </Hyperlink>
- </TextBlock>
- </StackPanel>
- </GroupBox>
- <Button Click="DoneSettingsButton_Click">Close</Button>
- </StackPanel>
- </Grid>
</Grid>
</local:OverlayWindowBase>
diff --git a/WarframeClock/OverlayWindow.xaml.cs b/WarframeClock/OverlayWindow.xaml.cs
index b36e50e..dbfe7cf 100644
--- a/WarframeClock/OverlayWindow.xaml.cs
+++ b/WarframeClock/OverlayWindow.xaml.cs
@@ -1,8 +1,6 @@
using System;
-using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
-using System.Windows.Navigation;
using System.Windows.Threading;
namespace WarframeClock
@@ -24,7 +22,7 @@ namespace WarframeClock
var iconMenu = new System.Windows.Forms.ContextMenu();
iconMenu.MenuItems.Add(new System.Windows.Forms.MenuItem(App.VersionString) { Enabled = false });
iconMenu.MenuItems.Add(new System.Windows.Forms.MenuItem("Configure",
- (_, __) => _vm.SettingsMode = true));
+ (_, __) => new SettingsWindow(_vm).Show()));
iconMenu.MenuItems.Add(new System.Windows.Forms.MenuItem("Quit",
(_, __) => ((App)Application.Current).Terminate()));
@@ -60,17 +58,6 @@ namespace WarframeClock
AdjustOverlay();
}
- private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
- {
- Process.Start(e.Uri.AbsoluteUri);
- }
-
- private void DoneSettingsButton_Click(object sender, RoutedEventArgs e)
- {
- Settings.Save();
- _vm.SettingsMode = false;
- }
-
private Point _dragOriginalPosition;
private bool _dragStarted;
private Point _dragOffset;
@@ -129,22 +116,5 @@ namespace WarframeClock
_vm.RefreshPosition();
}
}
-
- private void FontSettingsButton_Click(object sender, RoutedEventArgs e)
- {
- var dialog = new System.Windows.Forms.FontDialog
- {
- Font = new System.Drawing.Font(
- new System.Drawing.FontFamily(Settings.FontFamilyName),
- (float)(Settings.FontSize * 72.0 / 96.0))
- };
- if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- Settings.FontFamilyName = dialog.Font.FontFamily.Name;
- Settings.FontSize = dialog.Font.SizeInPoints / 72.0 * 96.0;
- _vm.RefreshFont();
- }
- dialog.Dispose();
- }
}
}
diff --git a/WarframeClock/SettingsWindow.xaml b/WarframeClock/SettingsWindow.xaml
new file mode 100644
index 0000000..6f32432
--- /dev/null
+++ b/WarframeClock/SettingsWindow.xaml
@@ -0,0 +1,47 @@
+<Window x:Class="WarframeClock.SettingsWindow"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:WarframeClock"
+ mc:Ignorable="d"
+ Title="WarframeClock SettingsWindow" Height="300" Width="400" WindowStyle="ToolWindow">
+ <StackPanel>
+ <GroupBox Header="Settings">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="5" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <Grid.RowDefinitions>
+ <RowDefinition MinHeight="20" />
+ <RowDefinition MinHeight="20" />
+ <RowDefinition MinHeight="20" />
+ <RowDefinition MinHeight="20" />
+ </Grid.RowDefinitions>
+ <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center">Font Settings:</TextBlock>
+ <Button Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" Click="FontSettingsButton_Click">...</Button>
+ <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center">Arbitration:</TextBlock>
+ <CheckBox Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowArbitration}"/>
+ <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center">Kuva Flood:</TextBlock>
+ <CheckBox Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowKuvaFlood}"/>
+ <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center">Position:</TextBlock>
+ <TextBlock Grid.Row="3" Grid.Column="2" VerticalAlignment="Center">Drag the clock overlay to reposition it.</TextBlock>
+ </Grid>
+ </GroupBox>
+ <GroupBox Header="About">
+ <StackPanel>
+ <TextBlock>
+ <TextBlock Text="{x:Static local:App.VersionString}" />
+ </TextBlock>
+ <TextBlock>
+ <Hyperlink NavigateUri="{x:Static local:App.WebsiteUri}"
+ RequestNavigate="Hyperlink_RequestNavigate">
+ <TextBlock Text="{x:Static local:App.WebsiteUriString}" />
+ </Hyperlink>
+ </TextBlock>
+ </StackPanel>
+ </GroupBox>
+ </StackPanel>
+</Window>
diff --git a/WarframeClock/SettingsWindow.xaml.cs b/WarframeClock/SettingsWindow.xaml.cs
new file mode 100644
index 0000000..10778c1
--- /dev/null
+++ b/WarframeClock/SettingsWindow.xaml.cs
@@ -0,0 +1,59 @@
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Navigation;
+
+namespace WarframeClock
+{
+ /// <summary>
+ /// Interaction logic for SettingsWindow.xaml
+ /// </summary>
+ public partial class SettingsWindow : Window
+ {
+ private readonly OverlayWindowViewModel _vm;
+
+ public SettingsWindow(OverlayWindowViewModel vm)
+ {
+ DataContext = _vm = vm;
+ InitializeComponent();
+ }
+
+ protected override void OnContentRendered(EventArgs e)
+ {
+ base.OnContentRendered(e);
+
+ _vm.SettingsMode = true;
+ }
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ base.OnClosing(e);
+
+ Settings.Save();
+ _vm.SettingsMode = false;
+ }
+
+ private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
+ {
+ Process.Start(e.Uri.AbsoluteUri);
+ }
+
+ private void FontSettingsButton_Click(object sender, RoutedEventArgs e)
+ {
+ var dialog = new System.Windows.Forms.FontDialog
+ {
+ Font = new System.Drawing.Font(
+ new System.Drawing.FontFamily(Settings.FontFamilyName),
+ (float)(Settings.FontSize * 72.0 / 96.0))
+ };
+ if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ Settings.FontFamilyName = dialog.Font.FontFamily.Name;
+ Settings.FontSize = dialog.Font.SizeInPoints / 72.0 * 96.0;
+ _vm.RefreshFont();
+ }
+ dialog.Dispose();
+ }
+ }
+}
diff --git a/WarframeClock/WarframeClock.csproj b/WarframeClock/WarframeClock.csproj
index 3a390ed..7e08100 100644
--- a/WarframeClock/WarframeClock.csproj
+++ b/WarframeClock/WarframeClock.csproj
@@ -94,6 +94,9 @@
<DependentUpon>PlainsTimeOverlayItem.xaml</DependentUpon>
</Compile>
<Compile Include="Settings.cs" />
+ <Compile Include="SettingsWindow.xaml.cs">
+ <DependentUpon>SettingsWindow.xaml</DependentUpon>
+ </Compile>
<Compile Include="WorldState.cs" />
<Compile Include="WfcdWorldStateData.cs" />
<Page Include="OverlayWindow.xaml">
@@ -121,6 +124,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="SettingsWindow.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">