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);
+ }
+ }
+}