Browse Source

Settings window stuff

Equbuxu 2 years ago
parent
commit
0faf3b2ea8

+ 4 - 0
src/PixiEditor.AvaloniaUI/PixiEditor.AvaloniaUI.csproj

@@ -80,6 +80,10 @@
         <DependentUpon>ImportShortcutTemplatePopup.axaml</DependentUpon>
         <SubType>Code</SubType>
       </Compile>
+      <Compile Update="Views\Settings\SettingsWindow.axaml.cs">
+        <DependentUpon>SettingsWindow.axaml</DependentUpon>
+        <SubType>Code</SubType>
+      </Compile>
     </ItemGroup>
   
 </Project>

+ 1 - 0
src/PixiEditor.AvaloniaUI/ViewModels/SubViewModels/WindowViewModel.cs

@@ -6,6 +6,7 @@ using PixiEditor.AvaloniaUI.Models.Commands;
 using PixiEditor.AvaloniaUI.ViewModels.Document;
 using PixiEditor.AvaloniaUI.Views.Windows;
 using Command = PixiEditor.AvaloniaUI.Models.Commands.Attributes.Commands.Command;
+using SettingsWindow = PixiEditor.AvaloniaUI.Views.Settings.SettingsWindow;
 
 namespace PixiEditor.AvaloniaUI.ViewModels.SubViewModels;
 

+ 3 - 2
src/PixiEditor.AvaloniaUI/Views/Windows/SettingsWindow.axaml → src/PixiEditor.AvaloniaUI/Views/Settings/SettingsWindow.axaml

@@ -15,8 +15,9 @@
     xmlns:markupExtensions="clr-namespace:PixiEditor.AvaloniaUI.Helpers.MarkupExtensions"
     xmlns:preferences="clr-namespace:PixiEditor.AvaloniaUI.Models.Preferences"
     xmlns:dialogs="clr-namespace:PixiEditor.AvaloniaUI.Views.Dialogs"
+    xmlns:settings="clr-namespace:PixiEditor.AvaloniaUI.Views.Settings"
     mc:Ignorable="d"
-    x:Class="PixiEditor.AvaloniaUI.Views.Windows.SettingsWindow"
+    x:Class="PixiEditor.AvaloniaUI.Views.Settings.SettingsWindow"
     Name="window"
     d:DesignWidth="780" d:DesignHeight="688"
     Width="780" Height="688"
@@ -282,7 +283,7 @@
                     </i:Interaction.Behaviors>
                 </TextBox>
 
-                <!--<settingGroups:ShortcutsBinder Grid.Row="2"/>-->
+                <settings:ShortcutsBinder Grid.Row="2"/>
             </Grid>
         </StackPanel>
     </DockPanel>

+ 2 - 4
src/PixiEditor.AvaloniaUI/Views/Windows/SettingsWindow.axaml.cs → src/PixiEditor.AvaloniaUI/Views/Settings/SettingsWindow.axaml.cs

@@ -1,9 +1,7 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
+using Avalonia.Controls;
 using PixiEditor.AvaloniaUI.ViewModels;
 
-namespace PixiEditor.AvaloniaUI.Views.Windows;
+namespace PixiEditor.AvaloniaUI.Views.Settings;
 
 public partial class SettingsWindow : Window
 {

+ 103 - 0
src/PixiEditor.AvaloniaUI/Views/Settings/ShortcutsBinder.axaml

@@ -0,0 +1,103 @@
+<UserControl
+    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:converters="clr-namespace:PixiEditor.AvaloniaUI.Helpers.Converters"
+    xmlns:ui="clr-namespace:PixiEditor.Extensions.UI;assembly=PixiEditor.Extensions"
+    xmlns:commands="clr-namespace:PixiEditor.AvaloniaUI.Models.Commands"
+    mc:Ignorable="d"
+    d:DesignHeight="600" d:DesignWidth="400"
+    x:Class="PixiEditor.AvaloniaUI.Views.Settings.ShortcutsBinder">
+    
+    <Grid>
+    <ScrollViewer x:Name="commandScroll">
+        <!--FocusVisualStyle="{x:Null}"-->
+        <ScrollViewer.Template>
+                <ControlTemplate TargetType="{x:Type ScrollViewer}">
+                    <Grid x:Name="Grid" Background="{TemplateBinding Background}">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="*"/>
+                            <ColumnDefinition Width="Auto"/>
+                        </Grid.ColumnDefinitions>
+                        <Grid.RowDefinitions>
+                            <RowDefinition Height="*"/>
+                            <RowDefinition Height="Auto"/>
+                        </Grid.RowDefinitions>
+                        <Rectangle x:Name="Corner" Grid.Column="1" Grid.Row="1"/>
+                        <!--Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"-->
+                        <ScrollContentPresenter
+                            x:Name="PART_ScrollContentPresenter"
+                            CanHorizontallyScroll="False"
+                            CanVerticallyScroll="False"
+                            ContentTemplate="{TemplateBinding ContentTemplate}"
+                            Content="{TemplateBinding Content}"
+                            Grid.Column="0"
+                            Margin="{TemplateBinding Padding}"
+                            Grid.Row="0" />
+                        <!--CanContentScroll="{TemplateBinding CanContentScroll}"-->
+                        <!--<ScrollBar
+                            x:Name="PART_VerticalScrollBar"
+                            AutomationProperties.AutomationId="VerticalScrollBar"
+                            Cursor="Arrow"
+                            Grid.Column="1"
+                            Maximum="{TemplateBinding ScrollableHeight}"
+                            Minimum="0"
+                            Grid.Row="0"
+                            Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
+                            Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
+                            ViewportSize="{TemplateBinding ViewportHeight}"
+                            Margin="0,5,0,20" />
+                        <ScrollBar
+                            x:Name="PART_HorizontalScrollBar"
+                            AutomationProperties.AutomationId="HorizontalScrollBar"
+                            Cursor="Arrow"
+                            Grid.Column="0"
+                            Maximum="{TemplateBinding ScrollableWidth}"
+                            Minimum="0"
+                            Orientation="Horizontal"
+                            Grid.Row="1"
+                            Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
+                            Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
+                            ViewportSize="{TemplateBinding ViewportWidth}" />-->
+                    </Grid>
+                </ControlTemplate>
+            </ScrollViewer.Template>
+            <Grid>
+                <TextBlock Foreground="LightGray" HorizontalAlignment="Center" TextAlignment="Center"
+                           IsVisible="{Binding !VisibleGroups, Mode=OneWay}"
+                           ui:Translator.Key="NOTHING_FOUND"  d:Text="Nothing found."/>
+                <ItemsControl ItemsSource="{Binding Commands}" Foreground="White" Focusable="False">
+                    <!--<ItemsControl.ItemTemplate>
+                        <DataTemplate DataType="{x:Type commands:CommandGroup}">
+                            <StackPanel Margin="0,0,0,20" IsVisible="{Binding Visibility}">
+                                <TextBlock ui:Translator.Key="{Binding DisplayName.Key}" FontSize="22" FontWeight="SemiBold"/>
+                                <ItemsControl ItemsSource="{Binding Commands}" Focusable="False">
+                                    <ItemsControl.ItemTemplate>
+                                        <DataTemplate DataType="{x:Type commands1:Command}">
+                                            <Grid Margin="0,5,5,0" Visibility="{Binding Visibility}">
+                                                <TextBlock Text="{Binding Command.DisplayName}" ToolTip="{Binding Command.Description}"/>
+                                                <userControls:ShortcutBox Width="120" Command="{Binding Command}" HorizontalAlignment="Right" Focusable="False"/>
+                                            </Grid>
+                                        </DataTemplate>
+                                    </ItemsControl.ItemTemplate>
+                                </ItemsControl>
+                            </StackPanel>
+                        </DataTemplate>
+                    </ItemsControl.ItemTemplate>-->
+                </ItemsControl>
+            </Grid>
+        </ScrollViewer>
+        
+        <Grid Height="10" VerticalAlignment="Top"
+              IsVisible="{Binding !#commandScroll.VerticalOffset, Mode=OneWay}">
+            <!--Margin="-10,0"-->
+            <!--<Grid.Background>
+                <LinearGradientBrush StartPoint="0, 0" EndPoint="0, 1">
+                    <GradientStop Color="#22000000" Offset="0"/>
+                    <GradientStop Color="#00000000" Offset="1.0"/>
+                </LinearGradientBrush>
+            </Grid.Background>-->
+        </Grid>
+    </Grid>
+</UserControl>

+ 12 - 0
src/PixiEditor.AvaloniaUI/Views/Settings/ShortcutsBinder.axaml.cs

@@ -0,0 +1,12 @@
+using Avalonia.Controls;
+
+namespace PixiEditor.AvaloniaUI.Views.Settings;
+
+public partial class ShortcutsBinder : UserControl
+{
+    public ShortcutsBinder()
+    {
+        InitializeComponent();
+    }
+}
+