Krzysztof Krysiński преди 5 месеца
родител
ревизия
eb16538596

+ 8 - 0
src/PixiEditor/ViewModels/SubViewModels/WindowViewModel.cs

@@ -235,6 +235,14 @@ internal class WindowViewModel : SubViewModel<ViewModelMain>, IWindowHandler
         new HelloTherePopup(Owner.FileSubViewModel).Show(MainWindow.Current);
     }
 
+    [Command.Basic("PixiEditor.Window.OpenOnboardingWindow", "OPEN_ONBOARDING_WINDOW", "OPEN_ONBOARDING_WINDOW",
+        Icon = PixiPerfectIcons.Home, MenuItemPath = "VIEW/OPEN_ONBOARDING_WINDOW",
+        AnalyticsTrack = true)]
+    public void OpenOnboardingWindow()
+    {
+        new OnboardingDialog().Show(MainWindow.Current);
+    }
+
     [Commands_Command.Basic("PixiEditor.Window.OpenShortcutWindow", "OPEN_SHORTCUT_WINDOW", "OPEN_SHORTCUT_WINDOW",
         Key = Key.F1,
         Icon = PixiPerfectIcons.Book, MenuItemPath = "VIEW/OPEN_SHORTCUT_WINDOW", MenuItemOrder = 2,

+ 14 - 0
src/PixiEditor/ViewModels/UserPreferences/OnboardingViewModel.cs

@@ -0,0 +1,14 @@
+namespace PixiEditor.ViewModels.UserPreferences;
+
+public class OnboardingViewModel : PixiObservableObject
+{
+    private int page;
+    public int Page
+    {
+        get => page;
+        set
+        {
+            SetProperty(ref page, value);
+        }
+    }
+}

+ 37 - 0
src/PixiEditor/Views/Dialogs/OnboardingDialog.axaml

@@ -0,0 +1,37 @@
+<dialogs:PixiEditorPopup xmlns="https://github.com/avaloniaui"
+                         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:dialogs="clr-namespace:PixiEditor.Views.Dialogs"
+                         xmlns:ui="clr-namespace:PixiEditor.Extensions.UI;assembly=PixiEditor.Extensions"
+                         mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
+                         x:Class="PixiEditor.Views.Dialogs.OnboardingDialog"
+                         Title="Onboarding" Width="600" Height="345">
+    <Panel>
+        <Grid>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="Auto" />
+                <RowDefinition Height="Auto" />
+                <RowDefinition Height="Auto" />
+            </Grid.RowDefinitions>
+
+            <TextBlock Grid.Row="0" Classes="h1"
+                       Foreground="{DynamicResource ThemeForegroundBrush}"
+                       ui:Translator.Key="ONBOARDING_TITLE" HorizontalAlignment="Center" VerticalAlignment="Center" />
+            <TextBlock Grid.Row="1"
+                       ui:Translator.Key="ONBOARDING_DESCRIPTION"
+                       Foreground="{DynamicResource ThemeForegroundBrush}"
+                       HorizontalAlignment="Center" VerticalAlignment="Center" />
+            <StackPanel Orientation="Horizontal" Grid.Row="2">
+                <Button ui:Translator.Key="ONBOARDING_SKIP_BTN"
+                        Command="{Binding CloseCommand}"
+                        HorizontalAlignment="Center" VerticalAlignment="Center" />
+
+                <Button Background="{DynamicResource ThemeAccentBrush}"
+                        ui:Translator.Key="ONBOARDING_ACTION_BTN"
+                        Command="{Binding OpenHelloThereWindowCommand}"
+                        HorizontalAlignment="Center" VerticalAlignment="Center" />
+            </StackPanel>
+        </Grid>
+    </Panel>
+</dialogs:PixiEditorPopup>

+ 12 - 0
src/PixiEditor/Views/Dialogs/OnboardingDialog.axaml.cs

@@ -0,0 +1,12 @@
+using Avalonia.Controls;
+
+namespace PixiEditor.Views.Dialogs;
+
+public partial class OnboardingDialog : Window
+{
+    public OnboardingDialog()
+    {
+        InitializeComponent();
+    }
+}
+