сырой проект
This commit is contained in:
@@ -0,0 +1,312 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:SpotXInstaller.ViewModels"
|
||||
x:Class="SpotXInstaller.Views.MainWindow"
|
||||
x:DataType="vm:MainViewModel"
|
||||
Icon="/Assets/avalonia-logo.ico"
|
||||
Title="SpotX Installer"
|
||||
Width="700" Height="500"
|
||||
CanResize="False"
|
||||
Background="#050505"
|
||||
Foreground="White"
|
||||
WindowStartupLocation="CenterScreen">
|
||||
|
||||
<Design.DataContext><vm:MainViewModel /></Design.DataContext>
|
||||
|
||||
<Window.Styles>
|
||||
<!-- === ACCENT BUTTON === -->
|
||||
<Style Selector="Button.accent">
|
||||
<Setter Property="Background" Value="#8B5CF6"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="CornerRadius" Value="10"/>
|
||||
<Setter Property="Padding" Value="24,16"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</Style>
|
||||
<Style Selector="Button.accent:pointerover /template/ ContentPresenter#PART_ContentPresenter">
|
||||
<Setter Property="Background" Value="#A78BFA"/>
|
||||
</Style>
|
||||
<Style Selector="Button.accent:pressed /template/ ContentPresenter#PART_ContentPresenter">
|
||||
<Setter Property="Background" Value="#7C3AED"/>
|
||||
</Style>
|
||||
|
||||
<!-- === GHOST BUTTON === -->
|
||||
<Style Selector="Button.ghost">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Foreground" Value="#B8B8B8"/>
|
||||
<Setter Property="BorderBrush" Value="#26262B"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="10"/>
|
||||
<Setter Property="Padding" Value="20,14"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</Style>
|
||||
<Style Selector="Button.ghost:pointerover /template/ ContentPresenter#PART_ContentPresenter">
|
||||
<Setter Property="Background" Value="#101014"/>
|
||||
<Setter Property="BorderBrush" Value="#8B5CF6"/>
|
||||
</Style>
|
||||
|
||||
<!-- === WHITE BUTTON === -->
|
||||
<Style Selector="Button.white">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="Foreground" Value="Black"/>
|
||||
<Setter Property="CornerRadius" Value="10"/>
|
||||
<Setter Property="Padding" Value="34,16"/>
|
||||
<Setter Property="FontWeight" Value="Black"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</Style>
|
||||
<Style Selector="Button.white:pointerover /template/ ContentPresenter#PART_ContentPresenter">
|
||||
<Setter Property="Background" Value="#E6E6E6"/>
|
||||
</Style>
|
||||
|
||||
<!-- === BACK BUTTON === -->
|
||||
<Style Selector="Button.back">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Foreground" Value="#8A8A8A"/>
|
||||
<Setter Property="Padding" Value="10,6"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</Style>
|
||||
<Style Selector="Button.back:pointerover /template/ ContentPresenter#PART_ContentPresenter">
|
||||
<Setter Property="Background" Value="#101014"/>
|
||||
</Style>
|
||||
|
||||
<!-- === PREMIUM CHECKBOX === -->
|
||||
<Style Selector="CheckBox.accent">
|
||||
<Setter Property="Foreground" Value="#DDDDDD"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Template">
|
||||
<ControlTemplate>
|
||||
<Grid ColumnDefinitions="Auto,*" Background="Transparent">
|
||||
<Border Name="Box" Width="20" Height="20" CornerRadius="6"
|
||||
BorderBrush="#2A2A2E" BorderThickness="1.5" Background="#0D0D10">
|
||||
<Path Name="Check"
|
||||
Data="M 5,10 L 9,14 L 15,6"
|
||||
Stroke="White" StrokeThickness="2"
|
||||
StrokeLineCap="Round" StrokeJoin="Round"
|
||||
IsVisible="False"/>
|
||||
</Border>
|
||||
<ContentPresenter Name="PART_ContentPresenter"
|
||||
Grid.Column="1" Margin="14,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Content="{TemplateBinding Content}"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style Selector="CheckBox.accent:checked /template/ Border#Box">
|
||||
<Setter Property="Background" Value="#8B5CF6"/>
|
||||
<Setter Property="BorderBrush" Value="#8B5CF6"/>
|
||||
</Style>
|
||||
<Style Selector="CheckBox.accent:checked /template/ Path#Check">
|
||||
<Setter Property="IsVisible" Value="True"/>
|
||||
</Style>
|
||||
<Style Selector="CheckBox.accent:pointerover /template/ Border#Box">
|
||||
<Setter Property="BorderBrush" Value="#8B5CF6"/>
|
||||
</Style>
|
||||
|
||||
<!-- === PROGRESSBAR === -->
|
||||
<Style Selector="ProgressBar.accent">
|
||||
<Setter Property="Height" Value="6"/>
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
<Setter Property="Background" Value="#141418"/>
|
||||
<Setter Property="Foreground" Value="#8B5CF6"/>
|
||||
</Style>
|
||||
</Window.Styles>
|
||||
|
||||
<Grid>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- 1. SPLASH -->
|
||||
<!-- ================================================= -->
|
||||
<Grid IsVisible="{Binding IsStepLoading}" Background="#050507" ZIndex="10">
|
||||
<Grid Width="500" Height="260" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
|
||||
<Border Width="390" Height="110" CornerRadius="55" Background="#8B5CF6" Opacity="0.08"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Border.Styles>
|
||||
<Style Selector="Border">
|
||||
<Style.Animations>
|
||||
<Animation Duration="0:0:2" IterationCount="Infinite">
|
||||
<KeyFrame Cue="0%"><Setter Property="Opacity" Value="0.05"/></KeyFrame>
|
||||
<KeyFrame Cue="50%"><Setter Property="Opacity" Value="0.15"/></KeyFrame>
|
||||
<KeyFrame Cue="100%"><Setter Property="Opacity" Value="0.05"/></KeyFrame>
|
||||
</Animation>
|
||||
</Style.Animations>
|
||||
</Style>
|
||||
</Border.Styles>
|
||||
</Border>
|
||||
|
||||
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<TextBlock Text="KIRIESKA" FontSize="60" FontWeight="Black" Foreground="#18181D"/>
|
||||
<Border HorizontalAlignment="Left" ClipToBounds="True">
|
||||
<Border.Styles>
|
||||
<Style Selector="Border">
|
||||
<Style.Animations>
|
||||
<Animation Duration="0:0:2.5" FillMode="Forward">
|
||||
<KeyFrame Cue="0%"><Setter Property="Width" Value="0"/></KeyFrame>
|
||||
<KeyFrame Cue="100%"><Setter Property="Width" Value="400"/></KeyFrame>
|
||||
</Animation>
|
||||
</Style.Animations>
|
||||
</Style>
|
||||
</Border.Styles>
|
||||
<TextBlock Text="KIRIESKA" FontSize="60" FontWeight="Black" Foreground="#A78BFA"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<TextBlock Text="INITIALIZING SYSTEM" FontSize="10" FontWeight="SemiBold"
|
||||
Foreground="#666670" LetterSpacing="3"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,48"/>
|
||||
|
||||
<Border Width="280" Height="2" Background="#18181D" CornerRadius="1"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,30">
|
||||
<Border Height="2" Background="#8B5CF6" CornerRadius="1" HorizontalAlignment="Left">
|
||||
<Border.Styles>
|
||||
<Style Selector="Border">
|
||||
<Style.Animations>
|
||||
<Animation Duration="0:0:2.5" FillMode="Forward">
|
||||
<KeyFrame Cue="0%"><Setter Property="Width" Value="0"/></KeyFrame>
|
||||
<KeyFrame Cue="100%"><Setter Property="Width" Value="280"/></KeyFrame>
|
||||
</Animation>
|
||||
</Style.Animations>
|
||||
</Style>
|
||||
</Border.Styles>
|
||||
</Border>
|
||||
</Border>
|
||||
|
||||
<Ellipse Width="5" Height="5" Fill="#8B5CF6" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom" Margin="0,0,0,18">
|
||||
<Ellipse.Styles>
|
||||
<Style Selector="Ellipse">
|
||||
<Style.Animations>
|
||||
<Animation Duration="0:0:1" IterationCount="Infinite">
|
||||
<KeyFrame Cue="0%"><Setter Property="Opacity" Value="0.2"/></KeyFrame>
|
||||
<KeyFrame Cue="50%"><Setter Property="Opacity" Value="1"/></KeyFrame>
|
||||
<KeyFrame Cue="100%"><Setter Property="Opacity" Value="0.2"/></KeyFrame>
|
||||
</Animation>
|
||||
</Style.Animations>
|
||||
</Style>
|
||||
</Ellipse.Styles>
|
||||
</Ellipse>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- 2. HOME -->
|
||||
<!-- ================================================= -->
|
||||
<Grid IsVisible="{Binding IsStepHome}" Margin="40">
|
||||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Width="340" Spacing="14">
|
||||
<TextBlock Text="SpotX Installer" FontSize="38" FontWeight="Black"
|
||||
HorizontalAlignment="Center" LetterSpacing="-0.5"/>
|
||||
<TextBlock Text="Продвинутый патч для десктопного Spotify."
|
||||
FontSize="14" Foreground="#666666"
|
||||
HorizontalAlignment="Center" Margin="0,0,0,36"/>
|
||||
|
||||
<Button Content="НАЧАТЬ УСТАНОВКУ"
|
||||
Command="{Binding GoToSettingsCommand}"
|
||||
Classes="accent"
|
||||
HorizontalAlignment="Stretch"/>
|
||||
|
||||
<Button Content="УДАЛИТЬ / ВОССТАНОВИТЬ"
|
||||
Command="{Binding StartUninstallCommand}"
|
||||
Classes="ghost"
|
||||
HorizontalAlignment="Stretch"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- 3. SETTINGS -->
|
||||
<!-- ================================================= -->
|
||||
<Grid IsVisible="{Binding IsStepSettings}" Margin="40">
|
||||
<Button Content="← Назад" Command="{Binding GoBackToHomeCommand}"
|
||||
Classes="back"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"/>
|
||||
|
||||
<StackPanel Margin="0,70,0,0" Spacing="4">
|
||||
<TextBlock Text="Параметры" FontSize="30" FontWeight="Bold"/>
|
||||
<TextBlock Text="Выберите, что изменить в Spotify"
|
||||
FontSize="13" Foreground="#666666" Margin="0,4,0,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Spacing="18" Margin="0,150,0,0">
|
||||
<CheckBox Classes="accent" Content="Блокировать автоматические обновления Spotify"
|
||||
IsChecked="{Binding BlockUpdates}"/>
|
||||
<CheckBox Classes="accent" Content="Скрыть раздел с подкастами"
|
||||
IsChecked="{Binding HidePodcasts}"/>
|
||||
<CheckBox Classes="accent" Content="Удалить кнопки покупки Premium"
|
||||
IsChecked="{Binding HidePremium}"/>
|
||||
<CheckBox Classes="accent" Content="Очистить кэш перед установкой"
|
||||
IsChecked="{Binding ClearCache}"/>
|
||||
</StackPanel>
|
||||
|
||||
<Button Content="УСТАНОВИТЬ" Command="{Binding StartInstallCommand}"
|
||||
Classes="white"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
|
||||
</Grid>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- 4. PROGRESS -->
|
||||
<!-- ================================================= -->
|
||||
<Grid IsVisible="{Binding IsStepProgress}" Background="#050505" ZIndex="5">
|
||||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
Width="480" Spacing="26">
|
||||
|
||||
<TextBlock Text="УСТАНОВКА" FontSize="11" FontWeight="Bold"
|
||||
Foreground="#8B5CF6" LetterSpacing="4"
|
||||
HorizontalAlignment="Center"/>
|
||||
|
||||
<TextBlock Text="{Binding ProgressStatus}" FontSize="22" FontWeight="Bold"
|
||||
HorizontalAlignment="Center" TextAlignment="Center"
|
||||
TextWrapping="Wrap"/>
|
||||
|
||||
<ProgressBar Value="{Binding ProgressValue}"
|
||||
Minimum="0" Maximum="100"
|
||||
Classes="accent" Width="480"/>
|
||||
|
||||
<TextBlock Text="{Binding ProgressValue, StringFormat='{}{0:F0}%'}"
|
||||
FontSize="12" Foreground="#666666"
|
||||
HorizontalAlignment="Center"/>
|
||||
|
||||
<Border Background="#0A0A0C" BorderBrush="#141418" BorderThickness="1"
|
||||
CornerRadius="10" Padding="16,12" Width="480" MinHeight="42">
|
||||
<TextBlock Text="{Binding MiniLog}"
|
||||
FontFamily="Consolas,Menlo,DejaVu Sans Mono,monospace"
|
||||
FontSize="11" Foreground="#888888"
|
||||
TextTrimming="CharacterEllipsis" TextWrapping="NoWrap"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- 5. POPUP -->
|
||||
<!-- ================================================= -->
|
||||
<Grid IsVisible="{Binding ShowPopup}" Background="#D9000000" ZIndex="20">
|
||||
<Border Width="420" Padding="32" Background="#101014"
|
||||
BorderBrush="#22222A" BorderThickness="1"
|
||||
CornerRadius="16"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<StackPanel Spacing="14">
|
||||
<TextBlock Text="{Binding PopupTitle}"
|
||||
Foreground="{Binding PopupColor}"
|
||||
FontSize="18" FontWeight="Black" LetterSpacing="1"/>
|
||||
|
||||
<TextBlock Text="{Binding PopupMessage}"
|
||||
Foreground="#CCCCCC" FontSize="14"
|
||||
TextWrapping="Wrap" LineHeight="20"/>
|
||||
|
||||
<Button Content="ОК" Command="{Binding ClosePopupCommand}"
|
||||
Classes="accent" Padding="28,10" FontSize="13"
|
||||
HorizontalAlignment="Right" Margin="0,8,0,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
Reference in New Issue
Block a user