diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2019-10-06 15:16:19 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2019-10-06 15:16:19 +0900 |
commit | 27fc257a22d0633773e3aaa0704f09fefa010d93 (patch) | |
tree | 414f280429b5dd44945d25d6dea3eccebf4b855d | |
parent | cc97135f9bc5a28c2bcd782bbb024517e3af974a (diff) | |
download | wf-clock-27fc257a22d0633773e3aaa0704f09fefa010d93.tar.gz |
implement always-on-top for standalone mode
-rw-r--r-- | WarframeClock/OverlayWindowViewModel.cs | 10 | ||||
-rw-r--r-- | WarframeClock/Settings.cs | 8 | ||||
-rw-r--r-- | WarframeClock/SettingsWindow.xaml | 72 | ||||
-rw-r--r-- | WarframeClock/StandaloneOverlayWindow.xaml | 3 |
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}"/> |