SettingsView.axaml 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:vm="using:VeloeMinecraftLauncher.ViewModels"
  6. xmlns:utils="using:VeloeMinecraftLauncher.Utils"
  7. xmlns:controls="using:VeloeMinecraftLauncher.Controls"
  8. mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="320"
  9. x:Class="VeloeMinecraftLauncher.Views.SettingsView">
  10. <UserControl.Styles>
  11. <Style Selector="TabItem">
  12. <Setter Property="FontSize" Value="16"/>
  13. </Style>
  14. </UserControl.Styles>
  15. <Design.DataContext>
  16. <vm:SettingsViewModel/>
  17. </Design.DataContext>
  18. <Panel>
  19. <DockPanel>
  20. <TabControl
  21. HorizontalAlignment="Stretch"
  22. DockPanel.Dock="Top">
  23. <TabItem
  24. Header="Game"
  25. VerticalContentAlignment="Center">
  26. <Grid
  27. Margin="10 0 10 5"
  28. ShowGridLines="false"
  29. RowDefinitions="Auto, Auto, Auto, Auto, Auto, Auto, Auto, Auto">
  30. <Grid.ColumnDefinitions>
  31. <ColumnDefinition Width="250"></ColumnDefinition>
  32. <ColumnDefinition Width="*"></ColumnDefinition>
  33. <ColumnDefinition Width="70"></ColumnDefinition>
  34. </Grid.ColumnDefinitions>
  35. <CheckBox
  36. Grid.Row="1" Grid.Column="0"
  37. IsChecked="true"
  38. IsEnabled="False">
  39. Set path to minecraft folder
  40. </CheckBox>
  41. <TextBox
  42. Grid.Row="1" Grid.Column="1"
  43. Margin="5"
  44. Text="{Binding MinecraftFolderPath}"
  45. IsEnabled="{Binding SetMinecraftFolder}"/>
  46. <Button
  47. Grid.Row="1" Grid.Column="2"
  48. Content="Open"
  49. Command="{Binding OpenMinecraftPathDialog}"
  50. CommandParameter="{Binding $parent[Window]}"
  51. HorizontalAlignment="Stretch"
  52. HorizontalContentAlignment="Center"/>
  53. <CheckBox
  54. Grid.Row="2"
  55. Grid.Column="0"
  56. IsChecked="{Binding UseCustomJava}">
  57. Use custom java
  58. </CheckBox>
  59. <TextBox
  60. Grid.Row="2" Grid.Column="1"
  61. Margin="5"
  62. Text="{Binding JavaPath, Mode=TwoWay}"
  63. IsEnabled="{Binding UseCustomJava}" />
  64. <Button
  65. Grid.Row="2" Grid.Column="2"
  66. Content="Open"
  67. Command="{Binding OpenJavaPathDialog}"
  68. CommandParameter="{Binding $parent[Window]}"
  69. IsEnabled="{Binding UseCustomJava}"
  70. HorizontalAlignment="Stretch"
  71. HorizontalContentAlignment="Center"/>
  72. <CheckBox Grid.Row="3" Grid.Column="0"
  73. IsChecked="{Binding FullScreen}">Fullscreen mode</CheckBox>
  74. <CheckBox
  75. Grid.Row="4" Grid.Column="0"
  76. IsChecked="{Binding CustomSize}">Set game resolution</CheckBox>
  77. <StackPanel
  78. Grid.Row="4" Grid.Column="1"
  79. Orientation="Horizontal">
  80. <NumericUpDown
  81. Margin="5"
  82. Name="GameWidthEdit"
  83. Value="{Binding ClientWidth}"
  84. MaxWidth="200"
  85. ParsingNumberStyle="Integer"
  86. Minimum="1280"
  87. Maximum="{Binding $parent[Window].MaxGameWidth}"
  88. Theme="{StaticResource FixDataValidation}"
  89. ClipValueToMinMax ="True"
  90. ShowButtonSpinner="False"
  91. HorizontalAlignment="Left"
  92. VerticalAlignment="Top">
  93. <NumericUpDown.IsEnabled>
  94. <MultiBinding Converter="{x:Static utils:Converters.BoolConjuctionConventer}">
  95. <Binding Path="!FullScreen"/>
  96. <Binding Path="CustomSize"/>
  97. </MultiBinding>
  98. </NumericUpDown.IsEnabled>
  99. </NumericUpDown>
  100. <TextBlock VerticalAlignment="Center">x</TextBlock>
  101. <NumericUpDown
  102. Margin="5"
  103. Name="GameHeightEdit"
  104. Value="{Binding ClientHeight}"
  105. MaxWidth="200"
  106. ParsingNumberStyle="Integer"
  107. Minimum="720"
  108. Maximum="{Binding $parent[Window].MaxGameHeight}"
  109. Theme="{StaticResource FixDataValidation}"
  110. ClipValueToMinMax ="True"
  111. ShowButtonSpinner="False"
  112. HorizontalAlignment="Left"
  113. VerticalAlignment="Top">
  114. <NumericUpDown.IsEnabled>
  115. <MultiBinding Converter="{x:Static utils:Converters.BoolConjuctionConventer}">
  116. <Binding Path="!FullScreen"/>
  117. <Binding Path="CustomSize"/>
  118. </MultiBinding>
  119. </NumericUpDown.IsEnabled>
  120. </NumericUpDown>
  121. </StackPanel>
  122. <CheckBox
  123. Grid.Row="5" Grid.Column="0" IsChecked="{Binding SetMaxRam}">Set max RAM</CheckBox>
  124. <StackPanel
  125. Grid.Row="5" Grid.Column="1"
  126. Orientation="Horizontal">
  127. <NumericUpDown
  128. Grid.Row="5" Grid.Column="1"
  129. Margin="5"
  130. Name="MaxRamEdit"
  131. Value="{Binding MaxRam}"
  132. ParsingNumberStyle="Integer"
  133. MaxWidth="200"
  134. Minimum="{Binding MIN_RAM}"
  135. Maximum="{Binding MAX_RAM}"
  136. Theme="{StaticResource FixDataValidation}"
  137. ClipValueToMinMax ="True"
  138. ShowButtonSpinner="False"
  139. IsEnabled="{Binding SetMaxRam}"
  140. HorizontalAlignment="Left"
  141. VerticalAlignment="Top"/>
  142. <TextBlock VerticalAlignment="Center">MB</TextBlock>
  143. <Slider
  144. Margin="10 0 30 0"
  145. Width="370"
  146. IsEnabled="{Binding SetMaxRam}"
  147. Value="{Binding MaxRamPercent}"
  148. Ticks="1"
  149. Minimum="0"
  150. Maximum="100"/>
  151. </StackPanel>
  152. <CheckBox
  153. Grid.Row="6" Grid.ColumnSpan="2"
  154. IsChecked="{Binding CheckAssets}"
  155. IsEnabled="True">
  156. Check vanilla game files before start
  157. </CheckBox>
  158. <CheckBox
  159. Grid.Row="7" Grid.ColumnSpan="2"
  160. IsChecked="{Binding HideLauncher}"
  161. IsEnabled="True">
  162. Hide launcher on game start
  163. </CheckBox>
  164. <Button
  165. Grid.Row="7" Grid.Column="2"
  166. HorizontalAlignment="Right"
  167. Content="Save"
  168. Command="{Binding SaveSettings}"
  169. IsEnabled="{Binding IsValid}"/>
  170. </Grid>
  171. </TabItem>
  172. <TabItem
  173. Header="Log"
  174. VerticalContentAlignment="Center">
  175. <Grid
  176. Margin="10 0 10 5"
  177. ShowGridLines="false"
  178. RowDefinitions="Auto, Auto, Auto, Auto, Auto, *">
  179. <Grid.ColumnDefinitions>
  180. <ColumnDefinition Width="250"></ColumnDefinition>
  181. <ColumnDefinition Width="*"></ColumnDefinition>
  182. <ColumnDefinition Width="70"></ColumnDefinition>
  183. </Grid.ColumnDefinitions>
  184. <TextBlock
  185. Grid.Row="1" Grid.Column="0"
  186. VerticalAlignment="Center" Text="Console log event level"/>
  187. <ComboBox
  188. Grid.Row="1" Grid.Column="1"
  189. Margin="5"
  190. ItemsSource="{Binding LogEventLevels}"
  191. PlaceholderText="Select level"
  192. SelectedItem="{Binding ConsoleLogEventLevel}"
  193. HorizontalAlignment="Stretch"/>
  194. <TextBlock
  195. Grid.Row="2" Grid.Column="0"
  196. VerticalAlignment="Center">File log event level</TextBlock>
  197. <ComboBox
  198. Grid.Row="2" Grid.Column="1"
  199. Margin="5"
  200. ItemsSource="{Binding LogEventLevels}"
  201. PlaceholderText="Select level"
  202. SelectedItem="{Binding FileLogEventLevel}"
  203. HorizontalAlignment="Stretch"/>
  204. <CheckBox
  205. Grid.Row="3" Grid.Column="0"
  206. IsChecked="{Binding SetMaxLog}">Set max log size</CheckBox>
  207. <StackPanel
  208. Grid.Row="3" Grid.Column="1"
  209. Orientation="Horizontal">
  210. <NumericUpDown
  211. Margin="5"
  212. Name="MaxLogEdit"
  213. Value="{Binding MaxLog}"
  214. MaxWidth="200"
  215. ParsingNumberStyle="Integer"
  216. IsEnabled="{Binding SetMaxLog}"
  217. Minimum="1"
  218. Maximum="1048576"
  219. Theme="{StaticResource FixDataValidation}"
  220. ClipValueToMinMax ="True"
  221. ShowButtonSpinner="False"
  222. HorizontalAlignment="Left"
  223. VerticalAlignment="Top"/>
  224. <TextBlock VerticalAlignment="Center">KB</TextBlock>
  225. </StackPanel>
  226. <DockPanel
  227. Grid.Row="4" Grid.ColumnSpan="3">
  228. <Button
  229. DockPanel.Dock="Right"
  230. Content="Open log"
  231. Command="{Binding OpenLogFile}"/>
  232. <CheckBox
  233. DockPanel.Dock="Left"
  234. IsChecked="{Binding GameLogToLauncher}">Show game log in launcher (performace issues)</CheckBox>
  235. </DockPanel>
  236. <DockPanel
  237. Grid.Row="5" Grid.ColumnSpan="3">
  238. <Button
  239. DockPanel.Dock="Right"
  240. Content="Save"
  241. Command="{Binding SaveSettings}"
  242. IsEnabled="{Binding IsValid}"
  243. VerticalAlignment="Bottom"/>
  244. <TextBlock
  245. DockPanel.Dock="Left"
  246. Text="{Binding LauncherVersion}"
  247. HorizontalAlignment="Left"
  248. VerticalAlignment="Bottom"/>
  249. </DockPanel>
  250. </Grid>
  251. </TabItem>
  252. </TabControl>
  253. </DockPanel>
  254. </Panel>
  255. </UserControl>