Saradomin-Launcher/Saradomin/View/Controls/SettingsView.axaml

415 lines
No EOL
23 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:glitonea="clr-namespace:Glitonea;assembly=Glitonea"
xmlns:mvvm="clr-namespace:Glitonea.Mvvm;assembly=Glitonea"
xmlns:vm="clr-namespace:Saradomin.ViewModel.Controls"
xmlns:controls="clr-namespace:Saradomin.View.Controls"
xmlns:converters="clr-namespace:Glitonea.Mvvm.Converters;assembly=Glitonea"
x:Class="Saradomin.View.Controls.SettingsView"
DataContext="{mvvm:DataContextSource vm:SettingsViewModel}">
<Grid ColumnDefinitions="*,*"
Margin="0,0,2,2">
<DockPanel Grid.Column="0"
IsEnabled="{Binding CanCustomize}">
<HeaderedContentControl Classes="GroupBox"
CornerRadius="6,0,0,0"
Header="graphics settings"
DockPanel.Dock="Top">
<Grid ColumnDefinitions="Auto,*">
<StackPanel Grid.Column="0"
Orientation="Vertical"
VerticalAlignment="Center">
<CheckBox Content="Mini-map smoothing"
IsChecked="{Binding Client.Customization.MiniMapSmoothingEnabled, Mode=TwoWay}" />
<CheckBox Content="Expanded render distance"
IsChecked="{Binding Client.Customization.Rendering.Technical.IncreaseRenderDistance}" />
</StackPanel>
<Grid Grid.Column="1"
Grid.ColumnSpan="2"
RowDefinitions="Auto,Auto,Auto"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<TextBlock Grid.Row="0"
HorizontalAlignment="Center"
Foreground="#3E3529"
Text="Anti-aliasing quality"
Margin="0,0,0,2" />
<controls:AntiAliasingSelector Grid.Row="1"
HorizontalAlignment="Center"
Margin="0,0,0,4"
AntiAliasingLevel="{Binding Client.Customization.AntiAliasingSampleCount, Mode=TwoWay}" />
</Grid>
</Grid>
</HeaderedContentControl>
<HeaderedContentControl Classes="GroupBox"
Header="right-click menu settings"
DockPanel.Dock="Top">
<Grid ColumnDefinitions="*,*"
RowDefinitions="Auto,Auto,Auto,Auto"
Margin="2,4,0,4">
<StackPanel Grid.Column="0"
Orientation="Vertical"
Margin="0,0,4,0">
<CheckBox Margin="-2,0,0,0"
Content="Use RS3-style menu border"
IsChecked="{Binding Client.Customization.RightClickMenu.Styles.UseRuneScape3Border,
Mode=TwoWay}" />
<controls:ColorSpinner Header="Background color"
HorizontalAlignment="Right"
Margin="0,0,0,4"
TargetColor="{Binding Client.Customization.RightClickMenu.Background.BackgroundColor,
Mode=TwoWay}" />
<controls:ColorSpinner Header="Title bar color"
HorizontalAlignment="Right"
Margin="0,0,0,4"
TargetColor="{Binding Client.Customization.RightClickMenu.TitleBar.BackgroundColor,
Mode=TwoWay}" />
<controls:ColorSpinner Header="Title text color"
HorizontalAlignment="Right"
EnableAlphaSpinner="False"
Margin="0,0,0,4"
TargetColor="{Binding Client.Customization.RightClickMenu.TitleBar.ForegroundColor,
Mode=TwoWay}" />
<controls:ColorSpinner Header="Border color"
HorizontalAlignment="Right"
Margin="0,0,0,2"
TargetColor="{Binding Client.Customization.RightClickMenu.Border.BackgroundColor,
Mode=TwoWay}" />
</StackPanel>
<StackPanel Grid.Column="1"
Grid.RowSpan="3"
Margin="0,66,0,0">
<Border VerticalAlignment="Center"
BorderThickness="1"
BorderBrush="#3E3529">
<Grid>
<Image Source="avares://Saradomin/Resources/Images/previewbg.png"
Stretch="Fill"
Width="150"
Height="160"
Margin="1" />
<controls:MenuPreview Name="MenuPreview"
VerticalAlignment="Center"
Width="130"
UseRs3Border="{Binding Client.Customization.RightClickMenu.Styles.UseRuneScape3Border}"
BackgroundColor="{Binding Client.Customization.RightClickMenu.Background.BackgroundColor.Brush}"
TitleBarColor="{Binding Client.Customization.RightClickMenu.TitleBar.BackgroundColor.Brush}"
TitleFontColor="{Binding Client.Customization.RightClickMenu.TitleBar.ForegroundColor.Brush}"
BorderColor="{Binding Client.Customization.RightClickMenu.Border.BackgroundColor.Brush}" />
</Grid>
</Border>
<Button Classes="Hyperlink"
Command="{Binding ResetRightClickMenu}"
Content="reset colors"
HorizontalAlignment="Center" />
</StackPanel>
</Grid>
</HeaderedContentControl>
<HeaderedContentControl Classes="GroupBox"
Header="debugging settings"
DockPanel.Dock="Left"
HorizontalAlignment="Stretch">
<Grid ColumnDefinitions="Auto,Auto">
<StackPanel Grid.Column="0"
Orientation="Vertical">
<CheckBox Content="Show item IDs"
IsChecked="{Binding Client.Debugging.ItemDebuggingEnabled, Mode=TwoWay}" />
<CheckBox Content="Show object IDs"
IsChecked="{Binding Client.Debugging.ObjectDebuggingEnabled, Mode=TwoWay}" />
<CheckBox Content="Show NPC IDs"
IsChecked="{Binding Client.Debugging.NpcDebuggingEnabled, Mode=TwoWay}" />
</StackPanel>
<StackPanel Grid.Column="1"
Orientation="Vertical"
Margin="8,0,0,0">
<CheckBox Content="Enable login screen debugging"
IsChecked="{Binding Client.Debugging.HdLoginRegionDebuggingEnabled, Mode=TwoWay}" />
<CheckBox Content="Verbose?"
Margin="18,0,0,0"
IsVisible="{Binding Client.Debugging.HdLoginRegionDebuggingEnabled, Mode=TwoWay}"
IsChecked="{Binding Client.Debugging.HdLoginRegionVerboseDebuggingEnabled, Mode=TwoWay}" />
<CheckBox Content="Enable cache debugging"
IsChecked="{Binding Client.Debugging.CacheDebuggingEnabled, Mode=TwoWay}"
ToolTip.Tip="May cause instability and crashes. Use at your own peril." />
<CheckBox Content="Enable world map debugging"
IsChecked="{Binding Client.Debugging.WorldMapDebuggingEnabled, Mode=TwoWay}" />
</StackPanel>
</Grid>
</HeaderedContentControl>
</DockPanel>
<Border Grid.Column="0"
Margin="2,2,0,0"
CornerRadius="6,0,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ZIndex="9"
Background="#CC3E3529"
IsVisible="{Binding !CanCustomize, Mode=TwoWay}">
<TextBlock Text="Disabled: Experimental client chosen"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="avares://Saradomin/Resources/Fonts/runescape_uf.ttf#RuneScape UF"
FontSize="16" />
</Border>
<DockPanel Grid.Column="1">
<HeaderedContentControl Classes="GroupBox"
Header="launcher settings"
DockPanel.Dock="Top">
<StackPanel Orientation="Vertical">
<CheckBox Content="Place 'X' button on the left"
IsChecked="{Binding Launcher.PlaceCloseButtonOnLeft, Mode=TwoWay}" />
<CheckBox Content="Close the launcher after executing the client"
IsChecked="{Binding Launcher.ExitAfterLaunchingClient, Mode=TwoWay}" />
<CheckBox Content="Check for updates before launching the client"
IsChecked="{Binding Launcher.CheckForClientUpdatesOnLaunch, Mode=TwoWay}" />
<Grid RowDefinitions="Auto,Auto"
ColumnDefinitions="*,Auto"
Margin="0,2,0,4">
<TextBlock Grid.Row="0"
Grid.ColumnSpan="2"
Margin="3,0,0,2"
Text="Java executable location"
Foreground="#3E3529" />
<TextBox Grid.Row="1"
Grid.Column="0"
Classes="NormalTextBox"
Text="{Binding Launcher.JavaExecutableLocation, Mode=TwoWay}"
Margin="2,0,0,0"
Watermark="Enter a path to java or java.exe..."
HorizontalAlignment="Left"
MaxWidth="342"/>
<Button Grid.Row="1"
Grid.Column="1"
Width="22"
Height="24"
Classes="OutsideNavigator"
Content="..."
Margin="2,0,0,0"
Command="{Binding BrowseForJavaExecutable}"
ToolTip.Tip="Browse..." />
</Grid>
<Grid RowDefinitions="Auto, Auto"
Margin="0,0,0,4">
<TextBlock Grid.Row="0"
Margin="3,0,0,2"
Text="Server profile"
Foreground="#3E3529"
HorizontalAlignment="Left" />
<ComboBox Grid.Row="1"
Items="{Binding ServerProfiles}"
SelectedItem="{Binding ServerProfile,
Converter={StaticResource EnumDescriptionConverter},
Mode=TwoWay}"
Margin="2,0,0,2">
<ComboBox.Styles>
<Style Selector="ComboBoxItem">
<Setter Property="ToolTip.Tip" Value="{x:Null}" />
</Style>
</ComboBox.Styles>
</ComboBox>
</Grid>
<Grid RowDefinitions="Auto, Auto"
Margin="0,0,0,4">
<TextBlock Grid.Row="0"
Margin="3,0,0,2"
Text="Client profile"
Foreground="#3E3529"
HorizontalAlignment="Left" />
<ComboBox Grid.Row="1"
Items="{Binding ClientProfiles}"
SelectedItem="{Binding Launcher.ClientProfile,
Converter={StaticResource EnumDescriptionConverter},
Mode=TwoWay}"
Margin="2,0,0,2" />
</Grid>
</StackPanel>
</HeaderedContentControl>
<Grid DockPanel.Dock="Top">
<Border Margin="2,2,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ZIndex="9"
Background="#CC3E3529"
IsVisible="{Binding !CanCustomize, Mode=TwoWay}">
<TextBlock Text="Disabled: Experimental client chosen"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="avares://Saradomin/Resources/Fonts/runescape_uf.ttf#RuneScape UF"
FontSize="16" />
</Border>
<HeaderedContentControl Classes="GroupBox"
Header="interface settings"
DockPanel.Dock="Top"
IsEnabled="{Binding CanCustomize}">
<StackPanel Orientation="Vertical">
<Grid RowDefinitions="Auto,Auto"
Margin="2,2,2,4">
<TextBlock Grid.Row="0"
Foreground="#3E3529"
Text="Main menu song"
Margin="0,0,0,2" />
<!-- Workaround applies here. Check SettingsViewModel for details. -->
<ComboBox Grid.Row="1"
Items="{Binding MusicTitles}"
SelectedItem="{Binding LoginMusicTheme, Mode=TwoWay}"
VirtualizationMode="Simple" />
</Grid>
<CheckBox Content="Enable winter season features"
IsChecked="{Binding Client.Customization.SnowSeasonFeaturesEnabled, Mode=TwoWay}" />
<CheckBox Content="Left-click attack on entities above your combat level"
IsChecked="{Binding Client.Customization.RightClickMenu.AttackStrongerEntitiesWithLeftClick, Mode=TwoWay}" />
<StackPanel>
<CheckBox Content="Enable Slayer tracker"
IsChecked="{Binding Client.Customization.SlayerTracker.IsEnabled}" />
<Grid ColumnDefinitions="*,Auto"
IsVisible="{Binding Client.Customization.SlayerTracker.IsEnabled}"
Margin="0,0,2,0">
<controls:ColorSpinner Grid.Column="0"
Margin="2,0,0,0"
Header="Background color"
TargetColor="{Binding Client.Customization.SlayerTracker.BackgroundColor, Mode=TwoWay}" />
<StackPanel Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Right">
<Border BorderThickness="1"
BorderBrush="#3E3529">
<Grid>
<Image Source="avares://Saradomin/Resources/Images/previewbg.png"
Stretch="None"
Width="110"
Height="60"
Margin="1">
<Image.Clip>
<RectangleGeometry Rect="0,0,110,60" />
</Image.Clip>
</Image>
<controls:SlayerPreview Height="40"
Width="90"
VerticalAlignment="Center"
BackgroundColor="{Binding Client.Customization.SlayerTracker.BackgroundColor}" />
</Grid>
</Border>
<Button Classes="Hyperlink"
Command="{Binding ResetSlayerTracker}"
Content="reset colors"
HorizontalAlignment="Center" />
</StackPanel>
</Grid>
</StackPanel>
<CheckBox Content="Enable XP tracker"
IsChecked="{Binding Client.Customization.XpTracker.IsEnabled, Mode=TwoWay}" />
<Grid ColumnDefinitions="*,*"
Margin="2,0,1,4"
IsVisible="{Binding Client.Customization.XpTracker.IsEnabled}">
<Grid Grid.Column="0"
RowDefinitions="Auto,Auto"
Margin="0,0,4,0">
<TextBlock Grid.Row="0"
Foreground="#3E3529"
Text="XP counting mode"
Margin="0,0,0,2" />
<ComboBox Grid.Row="1"
Items="{Binding DropModes}"
SelectedItem="{Binding Client.Customization.XpTracker.DropMode,
Converter={StaticResource EnumDescriptionConverter},
Mode=TwoWay}" />
</Grid>
<Grid Grid.Column="1"
RowDefinitions="Auto, Auto">
<TextBlock Grid.Row="0"
Foreground="#3E3529"
Text="XP tracking mode"
Margin="0,0,0,2" />
<ComboBox Grid.Row="1"
Items="{Binding TrackingModes}"
SelectedItem="{Binding Client.Customization.XpTracker.TrackingMode,
Converter={StaticResource EnumDescriptionConverter},
Mode=TwoWay}" />
</Grid>
</Grid>
</StackPanel>
</HeaderedContentControl>
</Grid>
<HeaderedContentControl Classes="GroupBox"
Header="about this project"
DockPanel.Dock="Top"
Margin="2,2,0,0">
<HeaderedContentControl.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"
HorizontalAlignment="Center" />
</DataTemplate>
</HeaderedContentControl.HeaderTemplate>
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<TextBlock HorizontalAlignment="Center"
Foreground="#3E3529"
Text="Made with ❤ by vddCore of " />
<Button Classes="Hyperlink"
Command="{Binding LaunchScapeWebsite}"
Content="2009scape." />
</StackPanel>
<TextBlock Text=" " />
<TextBlock HorizontalAlignment="Center"
Foreground="#3E3529"
Text="{Binding VersionString}" />
<Button Classes="Hyperlink"
HorizontalAlignment="Center"
Command="{Binding LaunchProjectWebsite}"
Content="visit project website"
Margin="0,0,0,4" />
</StackPanel>
</HeaderedContentControl>
</DockPanel>
</Grid>
</UserControl>