SystemTrayMenu/UserInterface/SettingsWindow.xaml
2022-10-28 23:21:27 +02:00

143 lines
11 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2022-2022 Peter Kirmeier -->
<Window 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:u="clr-namespace:SystemTrayMenu.Utilities"
xmlns:local="clr-namespace:SystemTrayMenu.UserInterface"
x:Class="SystemTrayMenu.UserInterface.SettingsWindow"
mc:Ignorable="d" Title="{u:Translate 'Settings'}" WindowStartupLocation="CenterScreen" SizeToContent="WidthAndHeight" MinWidth="200" MinHeight="250">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TabControl Grid.Row="0">
<TabItem Header="{u:Translate 'General'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel>
<GroupBox Header="{u:Translate 'Directory'}">
<StackPanel>
<TextBox x:Name="textBoxFolder" BorderBrush="{x:Null}" Background="{x:Null}" IsReadOnly="True" />
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Left" Content="{u:Translate 'Changing directory'}" Margin="3" MinWidth="76" Click="ButtonChange_Click"/>
<Button DockPanel.Dock="Right" Content="{u:Translate 'Open directory'}" Margin="3" MinWidth="76" Click="ButtonOpenFolder_Click"/>
</DockPanel>
<CheckBox x:Name="checkBoxSetFolderByWindowsContextMenu" Content="{u:Translate 'Set by context menu '}"/>
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Left" Content="{u:Translate 'Relative directory'}" Margin="3" MinWidth="76" Click="ButtonChangeRelativeFolder_Click"/>
<Button DockPanel.Dock="Right" Content="{u:Translate 'Open application directory'}" Margin="3" MinWidth="76" Click="ButtonOpenAssemblyLocation_Click"/>
</DockPanel>
</StackPanel>
</GroupBox>
<GroupBox Header="{u:Translate 'Configuration and log files'}">
<StackPanel>
<CheckBox x:Name="checkBoxSaveConfigInApplicationDirectory" Content="{u:Translate 'Save configuration file in application directory'}"/>
<CheckBox x:Name="checkBoxSaveLogFileInApplicationDirectory" Content="{u:Translate 'Saving log file in application directory'}"/>
</StackPanel>
</GroupBox>
<GroupBox x:Name="groupBoxAutostart" Header="{u:Translate 'App start'}">
<StackPanel>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="checkBoxAutostart" Content="{u:Translate 'Start with Windows'}" VerticalAlignment="Center"/>
<Button x:Name="buttonAddStartup" Content="{u:Translate 'Start with Windows'}" Margin="3" MinWidth="76" Click="ButtonAddStartup_Click" VerticalAlignment="Center"/>
<Label x:Name="labelStartupStatus" VerticalAlignment="Center"/>
</StackPanel>
<CheckBox x:Name="checkBoxCheckForUpdates" Content="{u:Translate 'Check for updates'}"/>
</StackPanel>
</GroupBox>
<GroupBox Header="{u:Translate 'Hotkey'}">
<DockPanel LastChildFill="False">
<Label Content="textBoxHotkeyPlaceholder" Background="Red" VerticalAlignment="Center"/>
<Button x:Name="buttonHotkeyDefault" DockPanel.Dock="Right" Content="{u:Translate 'Default'}" Margin="3" MinWidth="76" Click="ButtonHotkeyDefault_Click" VerticalAlignment="Center"/>
</DockPanel>
</GroupBox>
<GroupBox Header="{u:Translate 'Language'}">
<ComboBox x:Name="comboBoxLanguage" HorizontalAlignment="Left" IsReadOnly="True" DisplayMemberPath="Name" SelectedValuePath="Value" MinWidth="120"/>
</GroupBox>
<Button Content="{u:Translate 'Default'}" Margin="3" MinWidth="76" Click="ButtonGeneralDefault_Click" HorizontalAlignment="Left"/>
</StackPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="{u:Translate 'Size and location'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel>
<GroupBox Header="{u:Translate 'Sizes in percent'}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<local:NumericUpDown Grid.Row="0" Grid.Column="0" x:Name="numericUpDownSizeInPercent" Minimum="100" Maximum="200" Increment="5" />
<Label Grid.Row="0" Grid.Column="1" Content="{u:Translate 'Application size'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
<local:NumericUpDown Grid.Row="1" Grid.Column="0" x:Name="numericUpDownIconSizeInPercent" Minimum="100" Maximum="200" Increment="5" />
<Label Grid.Row="1" Grid.Column="1" Content="{u:Translate 'Icon size'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
<local:NumericUpDown Grid.Row="2" Grid.Column="0" x:Name="numericUpDownRowHeightInPercentage" Minimum="50" Maximum="200" Increment="5" />
<Label Grid.Row="2" Grid.Column="1" Content="{u:Translate 'Row height'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
<local:NumericUpDown Grid.Row="3" Grid.Column="0" x:Name="numericUpDownMenuWidth" Minimum="25" Maximum="400" Increment="5" />
<Label Grid.Row="3" Grid.Column="1" Content="{u:Translate 'Maximum menu width'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
<local:NumericUpDown Grid.Row="4" Grid.Column="0" x:Name="numericUpDownMenuHeight" Minimum="25" Maximum="400" Increment="5" />
<Label Grid.Row="4" Grid.Column="1" Content="{u:Translate 'Maximum menu height'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
</Grid>
</GroupBox>
<GroupBox Header="{u:Translate 'Main menu appears'}">
<StackPanel>
<RadioButton x:Name="radioButtonAppearAtTheBottomRight" GroupName="MainMenuAppearsAt" Content="{u:Translate 'Bottom right'}" VerticalContentAlignment="Center" />
<RadioButton x:Name="radioButtonAppearAtTheBottomLeft" GroupName="MainMenuAppearsAt" Content="{u:Translate 'Bottom left'}" VerticalContentAlignment="Center" />
<RadioButton x:Name="radioButtonUseCustomLocation" GroupName="MainMenuAppearsAt" Content="{u:Translate 'Custom (drag it to the appropriate position)'}" VerticalContentAlignment="Center" />
<RadioButton x:Name="radioButtonAppearAtMouseLocation" GroupName="MainMenuAppearsAt" Content="{u:Translate 'At mouse location'}" VerticalContentAlignment="Center" />
</StackPanel>
</GroupBox>
<GroupBox Header="{u:Translate 'Sub menu appears'}">
<StackPanel>
<RadioButton x:Name="radioButtonNextToPreviousMenu" GroupName="SubMenuAppearsAt" Content="{u:Translate 'Next to the previous one'}" VerticalContentAlignment="Center" />
<StackPanel Orientation="Horizontal">
<RadioButton x:Name="radioButtonOverlapping" GroupName="SubMenuAppearsAt" Content="{u:Translate 'Overlapping'}" Checked="RadioButtonOverlapping_Checked" Unchecked="RadioButtonOverlapping_Unchecked" VerticalContentAlignment="Center" />
<local:NumericUpDown x:Name="numericUpDownOverlappingOffsetPixels" Width="70" VerticalContentAlignment="Center" Margin="10,0,0,0" />
<Label Content="{u:Translate 'Offset by pixels'}" Padding="5,0,0,0" VerticalAlignment="Center"/>
</StackPanel>
</StackPanel>
</GroupBox>
<Button Content="{u:Translate 'Default'}" Margin="3" MinWidth="76" Click="ButtonSizeAndLocationDefault_Click" HorizontalAlignment="Left"/>
</StackPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="{u:Translate 'Advanced'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Label Content="fill me 3" Background="Red"/>
</ScrollViewer>
</TabItem>
<TabItem Header="{u:Translate 'Directories'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Label Content="fill me 4" Background="Red"/>
</ScrollViewer>
</TabItem>
<TabItem Header="{u:Translate 'Expert'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Label Content="fill me 5" Background="Red"/>
</ScrollViewer>
</TabItem>
<TabItem Header="{u:Translate 'Customize'}">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Label Content="fill me 6" Background="Red"/>
</ScrollViewer>
</TabItem>
</TabControl>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button x:Name="buttonOk" Content="{u:Translate 'OK'}" Margin="3" MinWidth="76" Click="ButtonOk_Click"/>
<Button x:Name="buttonCancel" Content="{u:Translate 'Abort'}" Margin="3" MinWidth="76" Click="ButtonCancel_Click"/>
</StackPanel>
</Grid>
</Window>