diff --git a/Patcher/_port/Patcher/PatchClient/PatchClient.csproj b/Patcher/_port/Patcher/PatchClient/PatchClient.csproj index c846b55..183610d 100644 --- a/Patcher/_port/Patcher/PatchClient/PatchClient.csproj +++ b/Patcher/_port/Patcher/PatchClient/PatchClient.csproj @@ -19,11 +19,11 @@ - - + + - - + + diff --git a/Patcher/_port/Patcher/PatchClient/Views/MainWindow.axaml b/Patcher/_port/Patcher/PatchClient/Views/MainWindow.axaml index a9720f9..2c3cde2 100644 --- a/Patcher/_port/Patcher/PatchClient/Views/MainWindow.axaml +++ b/Patcher/_port/Patcher/PatchClient/Views/MainWindow.axaml @@ -3,7 +3,7 @@ xmlns:vm="using:PatchClient.ViewModels" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:cc="using:PatchClient.CustomControls" + xmlns:cc="using:PatchClient.CustomControls" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="PatchClient.Views.MainWindow" Icon="/Assets/avalonia-logo.ico" @@ -32,5 +32,6 @@ + diff --git a/Patcher/_port/Patcher/PatchGenerator/App.axaml b/Patcher/_port/Patcher/PatchGenerator/App.axaml index e1327a6..75ef4ad 100644 --- a/Patcher/_port/Patcher/PatchGenerator/App.axaml +++ b/Patcher/_port/Patcher/PatchGenerator/App.axaml @@ -9,4 +9,20 @@ + + + + #121212 + #FFC107 + #FFFFFF + #282828 + #323947 + + + + + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/Assets/Styles.axaml b/Patcher/_port/Patcher/PatchGenerator/Assets/Styles.axaml new file mode 100644 index 0000000..41b1c96 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Assets/Styles.axaml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml b/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml new file mode 100644 index 0000000..c131dc6 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml @@ -0,0 +1,44 @@ + + + + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml.cs b/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml.cs new file mode 100644 index 0000000..b8a3df0 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/CustomControls/TitleBar.axaml.cs @@ -0,0 +1,67 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Avalonia.Media; +using System.Windows.Input; + +namespace PatchGenerator.CustomControls +{ + public partial class TitleBar : UserControl + { + public TitleBar() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + + public static readonly StyledProperty TitleProperty = + AvaloniaProperty.Register(nameof(Title)); + + public string Title + { + get => GetValue(TitleProperty); + set => SetValue(TitleProperty, value); + } + + public static readonly StyledProperty XButtonForegroundProperty = + AvaloniaProperty.Register(nameof(XButtonForeground)); + + public IBrush XButtonForeground + { + get => GetValue(XButtonForegroundProperty); + set => SetValue(XButtonForegroundProperty, value); + } + + public static new readonly StyledProperty ForegroundProperty = + AvaloniaProperty.Register(nameof(Foreground)); + + public new IBrush Foreground + { + get => GetValue(ForegroundProperty); + set => SetValue(ForegroundProperty, value); + } + + public static new readonly StyledProperty BackgroundProperty = + AvaloniaProperty.Register(nameof(Background)); + + public new IBrush Background + { + get => GetValue(BackgroundProperty); + set => SetValue(BackgroundProperty, value); + } + + //Close Button Command (X Button) Property + public static readonly StyledProperty XButtonCommandProperty = + AvaloniaProperty.Register(nameof(XButtonCommand)); + + public ICommand XButtonCommand + { + get => GetValue(XButtonCommandProperty); + set => SetValue(XButtonCommandProperty, value); + } + } +} diff --git a/Patcher/_port/Patcher/PatchGenerator/Models/ViewNavigator.cs b/Patcher/_port/Patcher/PatchGenerator/Models/ViewNavigator.cs new file mode 100644 index 0000000..9886f0b --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Models/ViewNavigator.cs @@ -0,0 +1,14 @@ +using ReactiveUI; + +namespace PatchGenerator.Models +{ + public class ViewNavigator : ReactiveObject + { + private object _SelectedViewModel; + public object SelectedViewModel + { + get => _SelectedViewModel; + set => this.RaiseAndSetIfChanged(ref _SelectedViewModel, value); + } + } +} diff --git a/Patcher/_port/Patcher/PatchGenerator/PatchGenerator.csproj b/Patcher/_port/Patcher/PatchGenerator/PatchGenerator.csproj index 1a06c10..e35d971 100644 --- a/Patcher/_port/Patcher/PatchGenerator/PatchGenerator.csproj +++ b/Patcher/_port/Patcher/PatchGenerator/PatchGenerator.csproj @@ -16,15 +16,23 @@ - + - - + + - - + + + + + + %(Filename) + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/References/Aki.ByteBanger.dll b/Patcher/_port/Patcher/PatchGenerator/References/Aki.ByteBanger.dll deleted file mode 100644 index b9fd681..0000000 Binary files a/Patcher/_port/Patcher/PatchGenerator/References/Aki.ByteBanger.dll and /dev/null differ diff --git a/Patcher/_port/Patcher/PatchGenerator/References/ComponentAce.Compression.Libs.zlib.dll b/Patcher/_port/Patcher/PatchGenerator/References/ComponentAce.Compression.Libs.zlib.dll deleted file mode 100644 index 52b6775..0000000 Binary files a/Patcher/_port/Patcher/PatchGenerator/References/ComponentAce.Compression.Libs.zlib.dll and /dev/null differ diff --git a/Patcher/_port/Patcher/PatchGenerator/ViewModels/MainWindowViewModel.cs b/Patcher/_port/Patcher/PatchGenerator/ViewModels/MainWindowViewModel.cs index f3e6bf1..5c66bae 100644 --- a/Patcher/_port/Patcher/PatchGenerator/ViewModels/MainWindowViewModel.cs +++ b/Patcher/_port/Patcher/PatchGenerator/ViewModels/MainWindowViewModel.cs @@ -1,11 +1,27 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Avalonia; +using PatchGenerator.Models; +using ReactiveUI; +using Splat; +using System.Windows.Input; namespace PatchGenerator.ViewModels { public class MainWindowViewModel : ViewModelBase { - public string Greeting => "Welcome to Avalonia!"; + public ICommand CloseCommand => ReactiveCommand.Create(() => + { + if (Application.Current.ApplicationLifetime is Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime desktopApp) + { + desktopApp.MainWindow.Close(); + } + }); + + public ViewNavigator navigator { get; set; } = new ViewNavigator(); + public MainWindowViewModel() + { + navigator.SelectedViewModel = new OptionsViewModel(); + + Locator.CurrentMutable.RegisterConstant(navigator, typeof(ViewNavigator)); + } } } diff --git a/Patcher/_port/Patcher/PatchGenerator/ViewModels/OptionsViewModel.cs b/Patcher/_port/Patcher/PatchGenerator/ViewModels/OptionsViewModel.cs new file mode 100644 index 0000000..7d11f9f --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/ViewModels/OptionsViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PatchGenerator.ViewModels +{ + public class OptionsViewModel : ViewModelBase + { + } +} diff --git a/Patcher/_port/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs b/Patcher/_port/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs new file mode 100644 index 0000000..7747290 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PatchGenerator.ViewModels +{ + public class PatchGenerationViewModel : ViewModelBase + { + } +} diff --git a/Patcher/_port/Patcher/PatchGenerator/Views/MainWindow.axaml b/Patcher/_port/Patcher/PatchGenerator/Views/MainWindow.axaml index fe99cf0..4e9c849 100644 --- a/Patcher/_port/Patcher/PatchGenerator/Views/MainWindow.axaml +++ b/Patcher/_port/Patcher/PatchGenerator/Views/MainWindow.axaml @@ -3,15 +3,35 @@ xmlns:vm="using:PatchGenerator.ViewModels" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:cc="using:PatchGenerator.CustomControls" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="PatchGenerator.Views.MainWindow" Icon="/Assets/avalonia-logo.ico" - Title="PatchGenerator"> + Title="PatchGenerator" + Height="400" Width="800" + WindowStartupLocation="CenterScreen" + ExtendClientAreaToDecorationsHint="True" + ExtendClientAreaChromeHints="NoChrome" + ExtendClientAreaTitleBarHeightHint="-1" + Background="{StaticResource AKI_Background_Light}" + > + + + - + + + + + + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml b/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml new file mode 100644 index 0000000..de7c1ff --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml @@ -0,0 +1,10 @@ + + + + + diff --git a/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml.cs b/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml.cs new file mode 100644 index 0000000..44033b0 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Views/OptionsView.axaml.cs @@ -0,0 +1,19 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace PatchGenerator.Views +{ + public partial class OptionsView : UserControl + { + public OptionsView() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +} diff --git a/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml b/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml new file mode 100644 index 0000000..118acd2 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml @@ -0,0 +1,8 @@ + + Welcome to Avalonia! + diff --git a/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml.cs b/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml.cs new file mode 100644 index 0000000..4822239 --- /dev/null +++ b/Patcher/_port/Patcher/PatchGenerator/Views/PatchGenerationView.axaml.cs @@ -0,0 +1,19 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace PatchGenerator.Views +{ + public partial class PatchGenerationView : UserControl + { + public PatchGenerationView() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +}