123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- <Window xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:vm="using:VeloeMinecraftLauncher.ViewModels"
- xmlns:views="using:VeloeMinecraftLauncher.Views"
- xmlns:m="using:VeloeMinecraftLauncher.Models"
- xmlns:entity="using:VeloeMinecraftLauncher.Models.Entity"
- xmlns:utils="using:VeloeMinecraftLauncher.Utils"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:titlebars="using:VeloeMinecraftLauncher.Views.TitleBar"
- mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
- Width="800" Height="450"
- MaxWidth="800" MaxHeight="450"
- x:Class="VeloeMinecraftLauncher.Views.MainWindow"
- Icon="/Assets/avalonia-logo.ico"
- Title="VeloeMinecraftLauncher"
- TransparencyLevelHint="AcrylicBlur"
- Background="Black"
- CanResize="False"
- ExtendClientAreaToDecorationsHint="True"
- ExtendClientAreaChromeHints="NoChrome"
- ExtendClientAreaTitleBarHeightHint="-1"
- Closing="MainWindow_Closing">
- <Window.Background>
- <ImageBrush
- Source="avares://VeloeMinecraftLauncher/Assets/background.png"
- Stretch="Fill"
- Opacity="0.9"
- />
- </Window.Background>
- <Design.DataContext>
- <vm:MainWindowViewModel/>
- </Design.DataContext>
-
- <Panel>
- <DockPanel>
- <titlebars:TitleBarWindow
- IsSeamless="False"
- IsIconVisible="False"
- IsMaximizeVisible="False"
- TitleText="Veloe Minecraft Launcher"
- DockPanel.Dock="Top"
- ZIndex="997">
- </titlebars:TitleBarWindow>
- <Grid DockPanel.Dock="Left">
- <Grid.RowDefinitions>
- <RowDefinition Height="0"></RowDefinition>
- <RowDefinition Height="*"></RowDefinition>
- <RowDefinition Height="40" ></RowDefinition>
- <RowDefinition Height="0"></RowDefinition>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <Button
- ZIndex="999"
- Grid.Row="1"
- HorizontalAlignment="Right"
- VerticalAlignment="Top"
- Command="{Binding DownloadUpdate}"
- IsVisible="{Binding IsUpdateAvailable}">
- Update Available
- </Button>
- <TextBlock
- ZIndex="998"
- Grid.Row="1"
- HorizontalAlignment="Right"
- VerticalAlignment="Bottom"
- Text="{Binding StartButtonOutput}"
- Margin="5">
- </TextBlock>
- <TabControl
- Grid.Row="1"
- HorizontalAlignment="Stretch"
- SelectionChanged="OnTabSelectionChanged">
- <TabItem
- Header="Servers"
- VerticalContentAlignment="Center">
- <ItemsControl
- Name="ServerPanelsControls"
- ItemsSource="{Binding ServerPanels}">
- <ItemsControl.RenderTransform>
- <TranslateTransform X="0" Y="0" />
- </ItemsControl.RenderTransform>
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <UniformGrid Columns="5" Rows="4"/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate
- x:CompileBindings="True"
- DataType="m:ServerPanelModel">
- <Button
- VerticalAlignment="Top"
- HorizontalAlignment="Stretch"
- Height="75"
- Width="150"
- Margin="0 0 10 10"
- CornerRadius="15"
- Command="{Binding $parent[ItemsControl].((vm:MainWindowViewModel)DataContext).OnServerPanelClick}"
- CommandParameter="{Binding }"
- IsEnabled="{Binding $parent[ItemsControl].((vm:MainWindowViewModel)DataContext).IsStartButtonEnabled}">
- <Button.ContextMenu>
- <ContextMenu>
- <MenuItem
- Header="Override with current"
- Command="{Binding #ServerPanelsControls((vm:MainWindowViewModel)DataContext).SetNewPreferredVersion}"
- CommandParameter="{Binding }"/>
- <MenuItem
- Header="Reset to default"
- IsEnabled="{Binding IsResetable}"
- Command="{Binding #ServerPanelsControls((vm:MainWindowViewModel)DataContext).ResetPreferredVersion}"
- CommandParameter="{Binding }"/>
- </ContextMenu>
- </Button.ContextMenu>
- <Button.Background>
- <SolidColorBrush Color="Black" Opacity="0.275"/>
- </Button.Background>
- <ToolTip.Tip>
- <TextBlock
- Text="{Binding Tip}"
- TextWrapping="Wrap"/>
- </ToolTip.Tip>
- <Button.Content>
- <UniformGrid
- Opacity="1"
- Columns="1"
- Rows="2"
- VerticalAlignment="Center"
- HorizontalAlignment="Center">
- <TextBlock
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- Text="{Binding Status}"
- Opacity="1"/>
- <TextBlock
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- FontSize="20"
- Opacity="1"
- Text="{Binding Players}"/>
- </UniformGrid>
- </Button.Content>
- <Button.Styles>
- <Style Selector="Button:pointerover /template/ ContentPresenter">
- <Setter Property="Background">
- <SolidColorBrush Color="Black" Opacity="0.375"/>
- </Setter>
- </Style>
- <Style Selector="Button:pressed /template/ ContentPresenter">
- <Setter Property="Background">
- <SolidColorBrush Color="Black" Opacity="0.325"/>
- </Setter>
- </Style>
- <Style Selector="Button:disabled /template/ ContentPresenter">
- <Setter Property="Background">
- <SolidColorBrush Color="Black" Opacity="0.175"/>
- </Setter>
- </Style>
- <Style Selector="Button:disabled TextBlock">
- <Setter Property="Foreground">
- <SolidColorBrush Color="White" Opacity="2"/>
- </Setter>
- </Style>
- </Button.Styles>
- </Button>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </TabItem>
- <TabItem>
- <TabItem.Header>
- <TextBlock VerticalAlignment="Center">Console</TextBlock>
- </TabItem.Header>
- <Panel
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch"
- Margin="0 0 0 5">
- <Panel.RenderTransform>
- <TranslateTransform X="0" Y="0" />
- </Panel.RenderTransform>
- <Border Background="Black" Opacity="0.2" CornerRadius="5" />
- <ScrollViewer
- Name="ConsoleScroll"
- HorizontalScrollBarVisibility="Auto"
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch">
- <SelectableTextBlock
- Text="{Binding ConsoleText}"
- VerticalAlignment="Stretch"
- Width="760"
- Margin="5,5,5,5"
- TextWrapping="Wrap"
- ScrollViewer.VerticalScrollBarVisibility="Visible"
- MaxLines="99999">
- </SelectableTextBlock>
- </ScrollViewer>
- </Panel>
- </TabItem>
- <TabItem>
- <TabItem.Header>
- <TextBlock VerticalAlignment="Center">Changelog</TextBlock>
- </TabItem.Header>
- <Panel
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch"
- Margin="0 0 0 5">
- <Panel.RenderTransform>
- <TranslateTransform X="0" Y="0" />
- </Panel.RenderTransform>
- <Border Background="Black" Opacity="0.2" CornerRadius="5" />
- <ScrollViewer
- HorizontalScrollBarVisibility="Auto"
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch">
- <ItemsControl ItemsSource="{Binding Changelogs}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel
- Width="760"
- Margin="5,5,5,5"/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <utils:ChangelogDataTemplate>
- <DataTemplate DataType="entity:Changelog" x:Key="True">
- <TextBlock
- Text="{Binding Text}"
- VerticalAlignment="Stretch"
- TextWrapping="Wrap"/>
- </DataTemplate>
- <DataTemplate DataType="entity:Changelog" x:Key="False">
- <StackPanel>
- <TextBlock
- Text="{Binding Title}"
- VerticalAlignment="Stretch"
- TextWrapping="Wrap"
- FontSize="16"/>
- <TextBlock
- Text="{Binding Text}"
- VerticalAlignment="Stretch"
- TextWrapping="Wrap"/>
- </StackPanel>
- </DataTemplate>
- </utils:ChangelogDataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </ScrollViewer>
- </Panel>
- </TabItem>
- <TabItem Header="Download">
- <Panel
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch"
- Margin="0 0 0 5">
- <Panel.RenderTransform>
- <TranslateTransform X="0" Y="0" />
- </Panel.RenderTransform>
- <Border Background="Black" Opacity="0.2" CornerRadius="5" />
- <views:VersionsDownloader DataContext="{Binding VersionsDownloaderTabViewModel}"></views:VersionsDownloader>
- </Panel>
- </TabItem>
- <TabItem Header="Settings">
- <Panel
- VerticalAlignment="Stretch"
- HorizontalAlignment="Stretch"
- Margin="0 0 0 5">
- <Panel.RenderTransform>
- <TranslateTransform X="0" Y="0" />
- </Panel.RenderTransform>
- <Border Background="Black" Opacity="0.2" CornerRadius="5" />
- <views:SettingsView DataContext="{Binding SettingsTabViewModel}"></views:SettingsView>
- </Panel>
- </TabItem>
- </TabControl>
- <Grid
- Grid.Row="2"
- Margin="12 0 12 5"
- ColumnDefinitions="Auto,Auto,*">
- <TextBox
- Margin="0 0 3 0"
- Grid.Column="0"
- Text="{Binding Username}"
- Watermark="Username"
- MinWidth="190"
- MaxWidth="220"
- VerticalAlignment="Center"
- HorizontalAlignment="Center">
- <TextBox.Styles>
- <Style Selector="DataValidationErrors">
- <Setter Property="Template">
- <ControlTemplate>
- <DockPanel LastChildFill="True" MaxWidth="220">
- <ContentControl DockPanel.Dock="Right"
- ContentTemplate="{TemplateBinding ErrorTemplate}"
- DataContext="{TemplateBinding Owner}"
- Content="{Binding (DataValidationErrors.Errors)}"
- IsVisible="{Binding (DataValidationErrors.HasErrors)}"/>
- <ContentPresenter Name="PART_ContentPresenter"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="{TemplateBinding CornerRadius}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- Content="{TemplateBinding Content}"
- Padding="{TemplateBinding Padding}"/>
- </DockPanel>
- </ControlTemplate>
- </Setter>
- <Setter Property="ErrorTemplate">
- <DataTemplate>
- <Canvas Width="14" Height="14" Margin="4 0 1 0"
- Background="Transparent">
- <Path Data="M14,7 A7,7 0 0,0 0,7 M0,7 A7,7 0 1,0 14,7 M7,3l0,5 M7,9l0,2"
- Stroke="Yellow"
- StrokeThickness="2"/>
- </Canvas>
- </DataTemplate>
- </Setter>
- </Style>
- </TextBox.Styles>
- </TextBox>
- <ComboBox
- Grid.Column="1"
- ItemsSource="{Binding DownloadedVersions}"
- PlaceholderText="Select version"
- SelectedItem="Binding DownloadedVersion"
- SelectedIndex="{Binding DownloadedIndex}"
- Width="220"
- VerticalAlignment="Center"
- HorizontalAlignment="Center">
- </ComboBox>
- <Button
- Grid.Column="2"
- HorizontalAlignment="Right"
- VerticalAlignment="Center"
- Content="{Binding StartButton}"
- Command="{Binding StartMinecraft}"
- IsEnabled="{Binding IsStartButtonEnabled}">
- </Button>
- </Grid>
- </Grid>
- </DockPanel>
- </Panel>
- </Window>
|