aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2019-10-06 15:16:19 +0900
committerKazuki Yamaguchi <k@rhe.jp>2019-10-06 15:16:19 +0900
commit27fc257a22d0633773e3aaa0704f09fefa010d93 (patch)
tree414f280429b5dd44945d25d6dea3eccebf4b855d
parentcc97135f9bc5a28c2bcd782bbb024517e3af974a (diff)
downloadwf-clock-27fc257a22d0633773e3aaa0704f09fefa010d93.tar.gz
implement always-on-top for standalone mode
-rw-r--r--WarframeClock/OverlayWindowViewModel.cs10
-rw-r--r--WarframeClock/Settings.cs8
-rw-r--r--WarframeClock/SettingsWindow.xaml72
-rw-r--r--WarframeClock/StandaloneOverlayWindow.xaml3
4 files changed, 49 insertions, 44 deletions
diff --git a/WarframeClock/OverlayWindowViewModel.cs b/WarframeClock/OverlayWindowViewModel.cs
index e43c72f..296cb3a 100644
--- a/WarframeClock/OverlayWindowViewModel.cs
+++ b/WarframeClock/OverlayWindowViewModel.cs
@@ -87,6 +87,16 @@ namespace WarframeClock
NotifyPropertyChanged();
}
}
+
+ public bool StandaloneAlwaysOnTop
+ {
+ get => Settings.StandaloneAlwaysOnTop;
+ set
+ {
+ Settings.StandaloneAlwaysOnTop = value;
+ NotifyPropertyChanged();
+ }
+ }
#endregion
public void Refresh()
diff --git a/WarframeClock/Settings.cs b/WarframeClock/Settings.cs
index eb63875..de043ff 100644
--- a/WarframeClock/Settings.cs
+++ b/WarframeClock/Settings.cs
@@ -82,6 +82,13 @@ namespace WarframeClock
set => SetValue((_standalone = value).ToString());
}
+ private static bool _standaloneAlwaysOnTop;
+ public static bool StandaloneAlwaysOnTop
+ {
+ get => _standaloneAlwaysOnTop;
+ set => SetValue((_standaloneAlwaysOnTop = value).ToString());
+ }
+
private static readonly Configuration ExeConfiguration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
@@ -97,6 +104,7 @@ namespace WarframeClock
_showArbitration = bool.TryParse(s.Get(nameof(ShowArbitration)), out var showArbitration) && showArbitration;
_showKuvaFlood = bool.TryParse(s.Get(nameof(ShowKuvaFlood)), out var showKuvaFlood) && showKuvaFlood;
_standalone = bool.TryParse(s.Get(nameof(Standalone)), out var standalone) && standalone;
+ _standaloneAlwaysOnTop = bool.TryParse(s.Get(nameof(StandaloneAlwaysOnTop)), out var standaloneAlwaysOnTop) ? standaloneAlwaysOnTop : true;
}
private static void SetValue(string value, [CallerMemberName] string key = null)
diff --git a/WarframeClock/SettingsWindow.xaml b/WarframeClock/SettingsWindow.xaml
index 89e454c..0249aa8 100644
--- a/WarframeClock/SettingsWindow.xaml
+++ b/WarframeClock/SettingsWindow.xaml
@@ -5,61 +5,47 @@
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">
+ Title="WarframeClock Settings"
+ WindowStyle="ToolWindow"
+ ResizeMode="NoResize" SizeToContent="WidthAndHeight"
+ Topmost="True">
<StackPanel>
<GroupBox Header="Settings">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="100" />
- <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">Standalone Mode:</TextBlock>
- <CheckBox Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding Standalone}"/>
- <TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center">Font Settings:</TextBlock>
- <Button Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" Click="FontSettingsButton_Click">...</Button>
- <TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center">Arbitration:</TextBlock>
- <CheckBox Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowArbitration}"/>
- <TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center">Kuva Flood:</TextBlock>
- <CheckBox Grid.Row="3" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding ShowKuvaFlood}"/>
- </Grid>
+ <StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock>Font Family and Size:</TextBlock>
+ <Button Margin="5,0" Padding="10,0" Click="FontSettingsButton_Click">...</Button>
+ </StackPanel>
+ <CheckBox Margin="0,5,0,0" IsChecked="{Binding ShowArbitration}">
+ Show Current Arbitration Mission
+ </CheckBox>
+ <CheckBox Margin="0,5,0,0" IsChecked="{Binding ShowKuvaFlood}">
+ Show Current Kuva Flood Mission
+ </CheckBox>
+ <CheckBox Margin="0,5,0,0" IsChecked="{Binding Standalone}">
+ Standalone Mode (Shows the clock as a separate window, rather than as an in-game overlay)
+ </CheckBox>
+ </StackPanel>
</GroupBox>
<GroupBox Header="Standalone Mode" IsEnabled="{Binding Standalone}">
<StackPanel>
- <TextBlock>Nothing to configure, currently.</TextBlock>
+ <CheckBox Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" IsChecked="{Binding StandaloneAlwaysOnTop}">
+ Always on top
+ </CheckBox>
</StackPanel>
</GroupBox>
<GroupBox Header="Overlay Mode">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="100" />
- <ColumnDefinition Width="5" />
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition MinHeight="20" />
- </Grid.RowDefinitions>
- <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center">Position:</TextBlock>
- <TextBlock Grid.Row="0" Grid.Column="2" VerticalAlignment="Center">Drag the clock overlay to reposition it.</TextBlock>
- </Grid>
+ <TextBlock>To reposition, drag and drop the clock overlay while this Settings window is open.</TextBlock>
</GroupBox>
<GroupBox Header="About">
<StackPanel>
+ <TextBlock Text="{x:Static local:App.VersionString}" />
<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>
+ <Hyperlink NavigateUri="{x:Static local:App.WebsiteUri}"
+ RequestNavigate="Hyperlink_RequestNavigate">
+ <TextBlock Text="{x:Static local:App.WebsiteUriString}" />
+ </Hyperlink>
+ </TextBlock>
</StackPanel>
</GroupBox>
</StackPanel>
diff --git a/WarframeClock/StandaloneOverlayWindow.xaml b/WarframeClock/StandaloneOverlayWindow.xaml
index 7369d40..fe70344 100644
--- a/WarframeClock/StandaloneOverlayWindow.xaml
+++ b/WarframeClock/StandaloneOverlayWindow.xaml
@@ -5,9 +5,10 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WarframeClock"
mc:Ignorable="d"
+ d:DataContext="{d:DesignInstance local:OverlayWindowViewModel, IsDesignTimeCreatable=True}"
Title="WarframeClock StandaloneOverlayWindow"
Background="Black" ResizeMode="CanMinimize" SizeToContent="WidthAndHeight"
- d:DataContext="{d:DesignInstance local:OverlayWindowViewModel, IsDesignTimeCreatable=True}"
+ Topmost="{Binding StandaloneAlwaysOnTop}"
MouseDown="Window_MouseDown">
<StackPanel Orientation="Horizontal">
<local:PlainsTimeOverlayItem DataContext="{Binding PlainsTimeOverlayItemViewModel}"/>