diff --git a/SIT.Manager/App.axaml b/SIT.Manager/App.axaml index c2956aa1..c0d7465e 100644 --- a/SIT.Manager/App.axaml +++ b/SIT.Manager/App.axaml @@ -15,6 +15,6 @@ - + diff --git a/SIT.Manager/App.axaml.cs b/SIT.Manager/App.axaml.cs index e14f4563..b282e386 100644 --- a/SIT.Manager/App.axaml.cs +++ b/SIT.Manager/App.axaml.cs @@ -39,6 +39,7 @@ public sealed partial class App : Application /// public IServiceProvider Services { get; } + public App() : this([]) { } public App(string[] args) { @@ -246,8 +247,7 @@ private Task ParseArguments(string[] args) if (usernameValue != null && passwordValue != null) { - var dcvm = Services.GetService(); - + DirectConnectViewModel dcvm = Services.GetRequiredService(); await dcvm.ConnectToServer(addressValue, usernameValue, passwordValue); } diff --git a/SIT.Manager/Assets/Styles/Theme.axaml b/SIT.Manager/Assets/Styles/Theme.axaml deleted file mode 100644 index b03cecd1..00000000 --- a/SIT.Manager/Assets/Styles/Theme.axaml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - #FF7F7F7F - #3399FFFF - #FFFFFFFF - - - - - - - - - - \ No newline at end of file diff --git a/SIT.Manager/CrashApp.axaml b/SIT.Manager/CrashApp.axaml index 5a6b9d3c..87ac3961 100644 --- a/SIT.Manager/CrashApp.axaml +++ b/SIT.Manager/CrashApp.axaml @@ -11,6 +11,6 @@ - + diff --git a/SIT.Manager/Localization/en-US.axaml b/SIT.Manager/Localization/en-US.axaml index abd4f534..f2e416f7 100644 --- a/SIT.Manager/Localization/en-US.axaml +++ b/SIT.Manager/Localization/en-US.axaml @@ -72,7 +72,6 @@ Include Manager Logs - Console Output Start server. Edit Server Config Edit Server @@ -326,7 +325,6 @@ Extracting file %1 (%2) - Start Update SIT Manager is updating for you please wait... The app restart as soon as it has finished Updating diff --git a/SIT.Manager/Localization/ru-RU.axaml b/SIT.Manager/Localization/ru-RU.axaml index b9cd354c..a873299f 100644 --- a/SIT.Manager/Localization/ru-RU.axaml +++ b/SIT.Manager/Localization/ru-RU.axaml @@ -72,7 +72,6 @@ Включить журналы менеджера - Вывод консоли Запустить сервер. Редактировать конфигурацию сервера Редактировать сервер @@ -330,7 +329,6 @@ Извлечение файла %1 (%2) - Начать обновление Менеджер SIT обновляется, пожалуйста, подождите... Приложение перезапустится сразу после завершения обновления Обновление diff --git a/SIT.Manager/Localization/uk-UA.axaml b/SIT.Manager/Localization/uk-UA.axaml index 5d4e46db..e1ed944f 100644 --- a/SIT.Manager/Localization/uk-UA.axaml +++ b/SIT.Manager/Localization/uk-UA.axaml @@ -72,7 +72,6 @@ Включити журнали менеджера - Виведення консолі Запустити сервер. Редагувати конфігурацію сервера Редагувати сервер @@ -331,7 +330,6 @@ Видобування файлу %1 (%2) - Почати оновлення Менеджер SIT оновлюється, будь ласка, зачекайте... Застосунок перезапуститься, як тільки завершиться оновлення Оновлення diff --git a/SIT.Manager/Localization/zh-CN.axaml b/SIT.Manager/Localization/zh-CN.axaml index f8cd8d88..b46eb053 100644 --- a/SIT.Manager/Localization/zh-CN.axaml +++ b/SIT.Manager/Localization/zh-CN.axaml @@ -72,7 +72,6 @@ 包括管理器日志 - 控制台输出 启动服务器 编辑服务器配置 编辑服务器配置文件 @@ -331,7 +330,6 @@ 提取文件 %1 (%2) - 开始更新 SIT 管理器正在更新,请稍候... 更新完成后应用程序将重新启动 更新中 diff --git a/SIT.Manager/Localization/zh-HK.axaml b/SIT.Manager/Localization/zh-HK.axaml index 590b0e22..040720b4 100644 --- a/SIT.Manager/Localization/zh-HK.axaml +++ b/SIT.Manager/Localization/zh-HK.axaml @@ -72,7 +72,6 @@ 包括管理員日誌 - 控制臺輸出 啟動伺服器 編輯伺服器配置 編輯伺服器配置檔案 @@ -331,7 +330,6 @@ 正在提取檔案 %1 (%2) - 開始更新 SIT 管理器正在進行更新,請稍候... 更新完成後應用程式將重新啟動 更新中 diff --git a/SIT.Manager/Localization/zh-TW.axaml b/SIT.Manager/Localization/zh-TW.axaml index 85eb59b6..a9f2dce7 100644 --- a/SIT.Manager/Localization/zh-TW.axaml +++ b/SIT.Manager/Localization/zh-TW.axaml @@ -72,7 +72,6 @@ 包括管理員日誌 - 控制臺輸出 啟動伺服器 編輯伺服器設定 編輯伺服器設定檔 @@ -331,7 +330,6 @@ 正在解壓縮檔案 %1 (%2) - 開始更新 SIT 管理員正在更新,請稍候... 更新完成後應用程式將重新啟動 更新中 diff --git a/SIT.Manager/Theme/Assists/BoxShadowAssist.cs b/SIT.Manager/Theme/Assists/BoxShadowAssist.cs new file mode 100644 index 00000000..4c9477fc --- /dev/null +++ b/SIT.Manager/Theme/Assists/BoxShadowAssist.cs @@ -0,0 +1,105 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; + +namespace SIT.Manager.Theme.Assists; + +public static class BoxShadowAssist +{ + public static readonly AvaloniaProperty InsetProperty = AvaloniaProperty.RegisterAttached("Inset", typeof(BoxShadowAssist), false); + public static readonly AvaloniaProperty BlurProperty = AvaloniaProperty.RegisterAttached("Blur", typeof(BoxShadowAssist), 8); + public static readonly AvaloniaProperty OffsetXProperty = AvaloniaProperty.RegisterAttached("OffsetX", typeof(BoxShadowAssist), 1.5); + public static readonly AvaloniaProperty OffsetYProperty = AvaloniaProperty.RegisterAttached("OffsetY", typeof(BoxShadowAssist), 1.5); + public static readonly AvaloniaProperty ColorProperty = AvaloniaProperty.RegisterAttached("Color", typeof(BoxShadowAssist), new Color(0xF0, 0x00, 0x00, 0x00)); + public static readonly AvaloniaProperty SpreadProperty = AvaloniaProperty.RegisterAttached("Spread", typeof(BoxShadowAssist), 4); + + static BoxShadowAssist() + { + InsetProperty.Changed.Subscribe(InsetPropertyCallback); + BlurProperty.Changed.Subscribe(BlurPropertyCallback); + OffsetXProperty.Changed.Subscribe(OffsetXPropertyCallback); + OffsetYProperty.Changed.Subscribe(OffsetYPropertyCallback); + ColorProperty.Changed.Subscribe(ColorPropertyCallback); + SpreadProperty.Changed.Subscribe(SpreadPropertyCallback); + } + + + private static BoxShadows UpdateBoxShadow(bool inset, double blur, double offsetX, double offsetY, Color color, double spread) + { + return new BoxShadows(new() + { + IsInset = inset, + Blur = blur, + OffsetX = offsetX, + OffsetY = offsetY, + Color = color, + Spread = spread + }); + } + + private static void InsetPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(args.NewValue.Value, GetBlur(args.Sender), GetOffsetX(args.Sender), GetOffsetY(args.Sender), GetColor(args.Sender), GetSpread(args.Sender)); + } + } + + private static void BlurPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(GetInset(args.Sender), args.NewValue.Value, GetOffsetX(args.Sender), GetOffsetY(args.Sender), GetColor(args.Sender), GetSpread(args.Sender)); + } + } + + private static void OffsetXPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(GetInset(args.Sender), GetBlur(args.Sender), args.NewValue.Value, GetOffsetY(args.Sender), GetColor(args.Sender), GetSpread(args.Sender)); + } + } + + private static void OffsetYPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(GetInset(args.Sender), GetBlur(args.Sender), GetOffsetX(args.Sender), args.NewValue.Value, GetColor(args.Sender), GetSpread(args.Sender)); + } + } + + private static void ColorPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(GetInset(args.Sender), GetBlur(args.Sender), GetOffsetX(args.Sender), GetOffsetY(args.Sender), args.NewValue.Value, GetSpread(args.Sender)); + } + } + + private static void SpreadPropertyCallback(AvaloniaPropertyChangedEventArgs args) + { + if (args.Sender is Border border) + { + border.BoxShadow = UpdateBoxShadow(GetInset(args.Sender), args.NewValue.Value, GetOffsetX(args.Sender), GetOffsetY(args.Sender), GetColor(args.Sender), args.NewValue.Value); + } + } + + public static void SetInset(AvaloniaObject element, bool value) => element.SetValue(InsetProperty, value); + public static bool GetInset(AvaloniaObject element) => element.GetValue(InsetProperty); + + public static void SeBlur(AvaloniaObject element, double value) => element.SetValue(BlurProperty, value); + public static double GetBlur(AvaloniaObject element) => element.GetValue(BlurProperty); + + public static void SetOffsetX(AvaloniaObject element, double value) => element.SetValue(OffsetXProperty, value); + public static double GetOffsetX(AvaloniaObject element) => element.GetValue(OffsetXProperty); + + public static void SetOffsetY(AvaloniaObject element, double value) => element.SetValue(OffsetYProperty, value); + public static double GetOffsetY(AvaloniaObject element) => element.GetValue(OffsetYProperty); + + public static void SetColor(AvaloniaObject element, Color value) => element.SetValue(ColorProperty, value); + public static Color GetColor(AvaloniaObject element) => element.GetValue(ColorProperty); + + public static void SetSpread(AvaloniaObject element, double value) => element.SetValue(SpreadProperty, value); + public static double GetSpread(AvaloniaObject element) => element.GetValue(SpreadProperty); +} diff --git a/SIT.Manager/Theme/Assists/Observable.cs b/SIT.Manager/Theme/Assists/Observable.cs new file mode 100644 index 00000000..2f8d66c6 --- /dev/null +++ b/SIT.Manager/Theme/Assists/Observable.cs @@ -0,0 +1,12 @@ +using Avalonia.Reactive; +using System; + +namespace SIT.Manager.Theme.Assists; + +public static class Observable +{ + public static IDisposable Subscribe(this IObservable source, Action action) + { + return source.Subscribe(new AnonymousObserver(action)); + } +} diff --git a/SIT.Manager/Controls/ActivatableUserControl.cs b/SIT.Manager/Theme/Controls/ActivatableUserControl.cs similarity index 95% rename from SIT.Manager/Controls/ActivatableUserControl.cs rename to SIT.Manager/Theme/Controls/ActivatableUserControl.cs index 3dbf76a2..af8d8df2 100644 --- a/SIT.Manager/Controls/ActivatableUserControl.cs +++ b/SIT.Manager/Theme/Controls/ActivatableUserControl.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; using CommunityToolkit.Mvvm.ComponentModel; -namespace SIT.Manager.Controls; +namespace SIT.Manager.Theme.Controls; public class ActivatableUserControl : UserControl { diff --git a/SIT.Manager/Theme/Controls/Card.axaml b/SIT.Manager/Theme/Controls/Card.axaml new file mode 100644 index 00000000..b1229ee2 --- /dev/null +++ b/SIT.Manager/Theme/Controls/Card.axaml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SIT.Manager/Theme/Controls/Card.axaml.cs b/SIT.Manager/Theme/Controls/Card.axaml.cs new file mode 100644 index 00000000..e30e0330 --- /dev/null +++ b/SIT.Manager/Theme/Controls/Card.axaml.cs @@ -0,0 +1,19 @@ +using Avalonia; +using Avalonia.Controls; + +namespace SIT.Manager.Theme.Controls; + +public class Card : ContentControl +{ + public static readonly StyledProperty InsideClippingProperty = + AvaloniaProperty.Register(nameof(InsideClipping), true); + + /// + /// Get or set the inside border clipping. + /// + public bool InsideClipping + { + get => GetValue(InsideClippingProperty); + set => SetValue(InsideClippingProperty, value); + } +} diff --git a/SIT.Manager/Controls/EmbeddedProcessWindow.cs b/SIT.Manager/Theme/Controls/EmbeddedProcessWindow.cs similarity index 89% rename from SIT.Manager/Controls/EmbeddedProcessWindow.cs rename to SIT.Manager/Theme/Controls/EmbeddedProcessWindow.cs index 6f420500..555f26f3 100644 --- a/SIT.Manager/Controls/EmbeddedProcessWindow.cs +++ b/SIT.Manager/Theme/Controls/EmbeddedProcessWindow.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; using System.Threading.Tasks; -namespace SIT.Manager.Controls; +namespace SIT.Manager.Theme.Controls; public class EmbeddedProcessWindow(Process p) : NativeControlHost { @@ -15,7 +15,7 @@ public class EmbeddedProcessWindow(Process p) : NativeControlHost public int ExitCode => _p.ExitCode; - public IntPtr ProcessWindowHandle { get; private set; } + public nint ProcessWindowHandle { get; private set; } protected override void DestroyNativeControlCore(IPlatformHandle control) { @@ -65,11 +65,11 @@ protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) HandleRef handleRef = new(null, ProcessWindowHandle); // set the new style of the schild window - WindowsApi.SetWindowLongPtr(handleRef, -16, (IntPtr) style); + WindowsApi.SetWindowLongPtr(handleRef, -16, (nint) style); // set the parent of the ProcessWindowHandle to be the main window's handle - IntPtr parentHandle = ((Window) e.Root).TryGetPlatformHandle()?.Handle ?? 0; - if (parentHandle != IntPtr.Zero) + nint parentHandle = ((Window) e.Root).TryGetPlatformHandle()?.Handle ?? 0; + if (parentHandle != nint.Zero) { WindowsApi.SetParent(ProcessWindowHandle, parentHandle); } @@ -92,7 +92,7 @@ public async Task StartProcess() if (OperatingSystem.IsWindows()) { // Wait until p.MainWindowHandle is non-zero - while (_p.MainWindowHandle == IntPtr.Zero) + while (_p.MainWindowHandle == nint.Zero) { // Discard cached information about the process because MainWindowHandle might be cached. _p.Refresh(); diff --git a/SIT.Manager/Controls/LoadingSpinner.axaml b/SIT.Manager/Theme/Controls/LoadingSpinner.axaml similarity index 90% rename from SIT.Manager/Controls/LoadingSpinner.axaml rename to SIT.Manager/Theme/Controls/LoadingSpinner.axaml index 8c9c78cb..484687d4 100644 --- a/SIT.Manager/Controls/LoadingSpinner.axaml +++ b/SIT.Manager/Theme/Controls/LoadingSpinner.axaml @@ -1,10 +1,10 @@ + x:Class="SIT.Manager.Theme.Controls.LoadingSpinner"> - \ No newline at end of file + diff --git a/SIT.Manager/Assets/Styles/SelectableTextBlock.axaml b/SIT.Manager/Theme/Styles/SelectableTextBlock.axaml similarity index 64% rename from SIT.Manager/Assets/Styles/SelectableTextBlock.axaml rename to SIT.Manager/Theme/Styles/SelectableTextBlock.axaml index 46f9bc23..d21a1463 100644 --- a/SIT.Manager/Assets/Styles/SelectableTextBlock.axaml +++ b/SIT.Manager/Theme/Styles/SelectableTextBlock.axaml @@ -2,11 +2,11 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> - + - \ No newline at end of file + diff --git a/SIT.Manager/Assets/Styles/TextBlock.axaml b/SIT.Manager/Theme/Styles/TextBlock.axaml similarity index 73% rename from SIT.Manager/Assets/Styles/TextBlock.axaml rename to SIT.Manager/Theme/Styles/TextBlock.axaml index 72d9ec0f..e21b4677 100644 --- a/SIT.Manager/Assets/Styles/TextBlock.axaml +++ b/SIT.Manager/Theme/Styles/TextBlock.axaml @@ -3,6 +3,7 @@ + @@ -10,25 +11,21 @@ - + - \ No newline at end of file + diff --git a/SIT.Manager/Theme/Theme.axaml b/SIT.Manager/Theme/Theme.axaml new file mode 100644 index 00000000..dbb93255 --- /dev/null +++ b/SIT.Manager/Theme/Theme.axaml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/SIT.Manager/ViewModels/Installation/PatchViewModel.cs b/SIT.Manager/ViewModels/Installation/PatchViewModel.cs index 1b8949d7..eb79a4c0 100644 --- a/SIT.Manager/ViewModels/Installation/PatchViewModel.cs +++ b/SIT.Manager/ViewModels/Installation/PatchViewModel.cs @@ -2,10 +2,10 @@ using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Microsoft.Extensions.Logging; -using SIT.Manager.Controls; using SIT.Manager.Interfaces; using SIT.Manager.Models.Installation; using SIT.Manager.Services; +using SIT.Manager.Theme.Controls; using System; using System.Collections.Generic; using System.IO; diff --git a/SIT.Manager/ViewModels/MainViewModel.cs b/SIT.Manager/ViewModels/MainViewModel.cs index 7adbc684..22a1edbf 100644 --- a/SIT.Manager/ViewModels/MainViewModel.cs +++ b/SIT.Manager/ViewModels/MainViewModel.cs @@ -75,6 +75,8 @@ public partial class MainViewModel : ObservableRecipient, IRecipient { UpdateAvailable = false; }); + UpdateAppCommand = new AsyncRelayCommand(UpdateApp); _managerConfigService.ConfigChanged += ManagerConfigService_ConfigChanged; } @@ -256,11 +259,20 @@ private async Task OpenUrlAsync(string url) } } - [RelayCommand] - private void UpdateButton() + private async Task UpdateApp() { - NavigateToPage(typeof(UpdatePage)); - UpdateAvailable = false; + ContentDialogResult updateRequestResult = await new ContentDialog() + { + Title = _localizationService.TranslateSource("UpdatePageViewModelUpdateConfirmationTitle"), + Content = _localizationService.TranslateSource("UpdatePageViewModelUpdateConfirmationDescription"), + PrimaryButtonText = _localizationService.TranslateSource("UpdatePageViewModelButtonYes"), + CloseButtonText = _localizationService.TranslateSource("UpdatePageViewModelButtonNo") + }.ShowAsync(); + if (updateRequestResult == ContentDialogResult.Primary) + { + NavigateToPage(typeof(UpdatePage)); + UpdateAvailable = false; + } } protected override async void OnActivated() @@ -269,7 +281,14 @@ protected override async void OnActivated() CheckInstallVersion(); +#if DEBUG + // Don't run update checks in debug builds just assume they exist + UpdateAvailable = true; + SitUpdateAvailable = true; + await Task.Delay(10); +#else await CheckForUpdate(); +#endif } protected override void OnPropertyChanging(PropertyChangingEventArgs e) diff --git a/SIT.Manager/ViewModels/Play/CharacterSelectionViewModel.cs b/SIT.Manager/ViewModels/Play/CharacterSelectionViewModel.cs index 4c8b702a..ae8e4aff 100644 --- a/SIT.Manager/ViewModels/Play/CharacterSelectionViewModel.cs +++ b/SIT.Manager/ViewModels/Play/CharacterSelectionViewModel.cs @@ -96,7 +96,6 @@ private async Task ReloadCharacterList() SavedCharacterList.Clear(); try { - //TODO: This is currently listing *all* server characters. We should narrow this to saved only List miniProfiles = await _serverService.GetMiniProfilesAsync(_connectedServer); foreach (AkiMiniProfile profile in miniProfiles) { diff --git a/SIT.Manager/ViewModels/UpdatePageViewModel.cs b/SIT.Manager/ViewModels/UpdatePageViewModel.cs index bab3f9e4..83b15585 100644 --- a/SIT.Manager/ViewModels/UpdatePageViewModel.cs +++ b/SIT.Manager/ViewModels/UpdatePageViewModel.cs @@ -1,7 +1,5 @@ using CommunityToolkit.Mvvm.ComponentModel; -using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; -using FluentAvalonia.UI.Controls; using SIT.Manager.Interfaces; using SIT.Manager.Models.Installation; using System; @@ -9,10 +7,9 @@ namespace SIT.Manager.ViewModels; -public partial class UpdatePageViewModel : ObservableObject +public partial class UpdatePageViewModel : ObservableRecipient { private readonly IAppUpdaterService _appUpdaterService; - private readonly ILocalizationService _localizationService; private readonly Progress _updateProgress; @@ -22,42 +19,43 @@ public partial class UpdatePageViewModel : ObservableObject [ObservableProperty] private bool _hasError = false; - public IAsyncRelayCommand UpdateManagerCommand { get; } - - public UpdatePageViewModel(IAppUpdaterService appUpdaterService, ILocalizationService localizationService) + public UpdatePageViewModel(IAppUpdaterService appUpdaterService) { _appUpdaterService = appUpdaterService; - _localizationService = localizationService; _updateProgress = new Progress(prog => UpdateProgressPercentage = prog); - - UpdateManagerCommand = new AsyncRelayCommand(UpdateManager); } - private async Task UpdateManager() + private async Task DoUpdateApp() { - ContentDialogResult updateRequestResult = await new ContentDialog() - { - Title = _localizationService.TranslateSource("UpdatePageViewModelUpdateConfirmationTitle"), - Content = _localizationService.TranslateSource("UpdatePageViewModelUpdateConfirmationDescription"), - PrimaryButtonText = _localizationService.TranslateSource("UpdatePageViewModelButtonYes"), - CloseButtonText = _localizationService.TranslateSource("UpdatePageViewModelButtonNo") - }.ShowAsync(); + Messenger.Send(new InstallationRunningMessage(true)); + await Task.Delay(500); - if (updateRequestResult == ContentDialogResult.Primary) +#if DEBUG + // For debug builds don't actually allow the app to be updated and instead just mimic the action + for (int i = 0; i < 100; i++) + { + UpdateProgressPercentage = i; + await Task.Delay(Random.Shared.Next(1000)); + } + Messenger.Send(new InstallationRunningMessage(false)); +#else + bool updateResult = await _appUpdaterService.Update(_updateProgress); + if (updateResult) { - WeakReferenceMessenger.Default.Send(new InstallationRunningMessage(true)); - - bool updateResult = await _appUpdaterService.Update(_updateProgress); - if (updateResult) - { - _appUpdaterService.RestartApp(); - } - else - { - HasError = true; - WeakReferenceMessenger.Default.Send(new InstallationRunningMessage(false)); - } + _appUpdaterService.RestartApp(); } + else + { + HasError = true; + Messenger.Send(new InstallationRunningMessage(false)); + } +#endif + } + + protected override async void OnActivated() + { + base.OnActivated(); + await DoUpdateApp(); } } diff --git a/SIT.Manager/Views/InstallPage.axaml b/SIT.Manager/Views/InstallPage.axaml index 282743a6..7ebff483 100644 --- a/SIT.Manager/Views/InstallPage.axaml +++ b/SIT.Manager/Views/InstallPage.axaml @@ -11,20 +11,23 @@ x:DataType="vm:InstallPageViewModel"> - + Margin="0,0,8,0"> + + + + diff --git a/SIT.Manager/Views/InstallPage.axaml.cs b/SIT.Manager/Views/InstallPage.axaml.cs index a9cfa39e..87767faf 100644 --- a/SIT.Manager/Views/InstallPage.axaml.cs +++ b/SIT.Manager/Views/InstallPage.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels; namespace SIT.Manager.Views; diff --git a/SIT.Manager/Views/Installation/CompleteView.axaml b/SIT.Manager/Views/Installation/CompleteView.axaml index 42056251..18280183 100644 --- a/SIT.Manager/Views/Installation/CompleteView.axaml +++ b/SIT.Manager/Views/Installation/CompleteView.axaml @@ -2,37 +2,31 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:ui="using:FluentAvalonia.UI.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Installation" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="SIT.Manager.Views.Installation.CompleteView" x:DataType="vm:CompleteViewModel"> + + + + - - - - - - - - - - + - - - - - - - - + + + + - - - - - - + + - - - - + + + \ No newline at end of file diff --git a/SIT.Manager/Views/Installation/ConfigureServerView.axaml.cs b/SIT.Manager/Views/Installation/ConfigureServerView.axaml.cs index ed17403a..dec537ba 100644 --- a/SIT.Manager/Views/Installation/ConfigureServerView.axaml.cs +++ b/SIT.Manager/Views/Installation/ConfigureServerView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Installation; namespace SIT.Manager.Views.Installation; diff --git a/SIT.Manager/Views/Installation/ConfigureSitView.axaml b/SIT.Manager/Views/Installation/ConfigureSitView.axaml index 65ea376f..4f30e4c2 100644 --- a/SIT.Manager/Views/Installation/ConfigureSitView.axaml +++ b/SIT.Manager/Views/Installation/ConfigureSitView.axaml @@ -3,7 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="using:FluentAvalonia.UI.Controls" - xmlns:controls="clr-namespace:SIT.Manager.Controls" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Installation" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="SIT.Manager.Views.Installation.ConfigureSitView" @@ -17,9 +17,10 @@ - - + + + @@ -144,27 +145,29 @@ Margin="0,8,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" - Foreground="{DynamicResource TextControlForeground}" + Foreground="{DynamicResource AppSecondary}" StrokeWidth="8"/> - + - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/SIT.Manager/Views/Installation/ConfigureSitView.axaml.cs b/SIT.Manager/Views/Installation/ConfigureSitView.axaml.cs index 04c549e5..5a280d91 100644 --- a/SIT.Manager/Views/Installation/ConfigureSitView.axaml.cs +++ b/SIT.Manager/Views/Installation/ConfigureSitView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Installation; namespace SIT.Manager.Views.Installation; diff --git a/SIT.Manager/Views/Installation/InstallView.axaml b/SIT.Manager/Views/Installation/InstallView.axaml index b7095282..baae1c43 100644 --- a/SIT.Manager/Views/Installation/InstallView.axaml +++ b/SIT.Manager/Views/Installation/InstallView.axaml @@ -2,12 +2,16 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Installation" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="SIT.Manager.Views.Installation.InstallView" x:DataType="vm:InstallViewModel"> - - + - + diff --git a/SIT.Manager/Views/Installation/InstallView.axaml.cs b/SIT.Manager/Views/Installation/InstallView.axaml.cs index 16d07916..53176bf2 100644 --- a/SIT.Manager/Views/Installation/InstallView.axaml.cs +++ b/SIT.Manager/Views/Installation/InstallView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Installation; namespace SIT.Manager.Views.Installation; diff --git a/SIT.Manager/Views/Installation/PatchView.axaml b/SIT.Manager/Views/Installation/PatchView.axaml index ed264ab6..c228b24c 100644 --- a/SIT.Manager/Views/Installation/PatchView.axaml +++ b/SIT.Manager/Views/Installation/PatchView.axaml @@ -2,12 +2,14 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Installation" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="SIT.Manager.Views.Installation.PatchView" x:DataType="vm:PatchViewModel"> - + - + - + @@ -120,6 +122,6 @@ Content="{DynamicResource PatchViewPatchingEndInstallButtonTitle}"/> - + diff --git a/SIT.Manager/Views/Installation/PatchView.axaml.cs b/SIT.Manager/Views/Installation/PatchView.axaml.cs index 71b16fdf..9aec3ad9 100644 --- a/SIT.Manager/Views/Installation/PatchView.axaml.cs +++ b/SIT.Manager/Views/Installation/PatchView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Installation; namespace SIT.Manager.Views.Installation; diff --git a/SIT.Manager/Views/Installation/SelectView.axaml b/SIT.Manager/Views/Installation/SelectView.axaml index b6acaa16..17d42cdb 100644 --- a/SIT.Manager/Views/Installation/SelectView.axaml +++ b/SIT.Manager/Views/Installation/SelectView.axaml @@ -2,6 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:ui="using:FluentAvalonia.UI.Controls" xmlns:im="clr-namespace:SIT.Manager.Models.Installation" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Installation" @@ -20,12 +21,12 @@ - + - - + + - - + - - - - + + + - + diff --git a/SIT.Manager/Views/Installation/SelectView.axaml.cs b/SIT.Manager/Views/Installation/SelectView.axaml.cs index 6ad59315..ae925f77 100644 --- a/SIT.Manager/Views/Installation/SelectView.axaml.cs +++ b/SIT.Manager/Views/Installation/SelectView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Installation; namespace SIT.Manager.Views.Installation; diff --git a/SIT.Manager/Views/MainView.axaml b/SIT.Manager/Views/MainView.axaml index 81b41f4c..a6b2026b 100644 --- a/SIT.Manager/Views/MainView.axaml +++ b/SIT.Manager/Views/MainView.axaml @@ -9,7 +9,7 @@ x:Class="SIT.Manager.Views.MainView" x:DataType="vm:MainViewModel" x:CompileBindings="True" - Background="Black"> + Background="{DynamicResource AppBlack}"> - - - - + + + + - - + + @@ -67,14 +91,13 @@ - + Background="{DynamicResource AppPrimary}"> - - - - + + + - + - + diff --git a/SIT.Manager/Views/Play/CharacterSummaryView.axaml.cs b/SIT.Manager/Views/Play/CharacterSummaryView.axaml.cs index 299769a3..e989f3e9 100644 --- a/SIT.Manager/Views/Play/CharacterSummaryView.axaml.cs +++ b/SIT.Manager/Views/Play/CharacterSummaryView.axaml.cs @@ -1,4 +1,4 @@ -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; namespace SIT.Manager.Views.Play; diff --git a/SIT.Manager/Views/Play/DirectConnectView.axaml b/SIT.Manager/Views/Play/DirectConnectView.axaml index b5eaf7fa..a6f59fd1 100644 --- a/SIT.Manager/Views/Play/DirectConnectView.axaml +++ b/SIT.Manager/Views/Play/DirectConnectView.axaml @@ -2,15 +2,19 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:controls="clr-namespace:SIT.Manager.Controls" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Play" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:DataType="vm:DirectConnectViewModel" x:Class="SIT.Manager.Views.Play.DirectConnectView"> - - + + - + - + diff --git a/SIT.Manager/Views/Play/DirectConnectView.axaml.cs b/SIT.Manager/Views/Play/DirectConnectView.axaml.cs index 4a2d4933..58e1ceef 100644 --- a/SIT.Manager/Views/Play/DirectConnectView.axaml.cs +++ b/SIT.Manager/Views/Play/DirectConnectView.axaml.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using SIT.Manager.Controls; +using SIT.Manager.Theme.Controls; using SIT.Manager.ViewModels.Play; namespace SIT.Manager.Views.Play; diff --git a/SIT.Manager/Views/Play/ServerSelectionView.axaml b/SIT.Manager/Views/Play/ServerSelectionView.axaml index 7c5b0229..c0007fde 100644 --- a/SIT.Manager/Views/Play/ServerSelectionView.axaml +++ b/SIT.Manager/Views/Play/ServerSelectionView.axaml @@ -3,17 +3,16 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="using:FluentAvalonia.UI.Controls" - xmlns:controls="clr-namespace:SIT.Manager.Controls" + xmlns:controls="clr-namespace:SIT.Manager.Theme.Controls" xmlns:vm="clr-namespace:SIT.Manager.ViewModels.Play" xmlns:pv="clr-namespace:SIT.Manager.Views.Play" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:DataType="vm:ServerSelectionViewModel" x:Class="SIT.Manager.Views.Play.ServerSelectionView"> - + Margin="0,8"> +