Quellcode durchsuchen

删除非必要文件

luo vor 1 Monat
Ursprung
Commit
a7759206dd
32 geänderte Dateien mit 168 neuen und 1673 gelöschten Zeilen
  1. 4 0
      Avalonia/ShakerApp/App.axaml
  2. 32 0
      Avalonia/ShakerApp/Convert/MenuItemConverter.cs
  3. 3 0
      Avalonia/ShakerApp/ViewModels/DeviceManger/DeviceMangerViewModel.cs
  4. 5 1
      Avalonia/ShakerApp/ViewModels/MainViewModel.cs
  5. 103 0
      Avalonia/ShakerApp/ViewModels/Menu/MenuItemViewModel.cs
  6. 15 30
      Avalonia/ShakerApp/Views/MainWindow.axaml
  7. 0 92
      Avalonia/SukiUI.Dock/Converters/AlignmentConverter.cs
  8. 0 69
      Avalonia/SukiUI.Dock/Converters/DockModeConverter.cs
  9. 0 29
      Avalonia/SukiUI.Dock/Converters/EitherNotNullConverter.cs
  10. 0 42
      Avalonia/SukiUI.Dock/Converters/GripModeConverters.cs
  11. 0 24
      Avalonia/SukiUI.Dock/Converters/IntLessThanConverter.cs
  12. 0 34
      Avalonia/SukiUI.Dock/Converters/IsMaximizedConverter.cs
  13. 0 64
      Avalonia/SukiUI.Dock/Converters/OrientationConverter.cs
  14. 0 181
      Avalonia/SukiUI.Dock/DockTarget.axaml
  15. 0 77
      Avalonia/SukiUI.Dock/DocumentControl.axaml
  16. 0 79
      Avalonia/SukiUI.Dock/DocumentTabStrip.axaml
  17. 0 132
      Avalonia/SukiUI.Dock/DocumentTabStripItem.axaml
  18. 0 82
      Avalonia/SukiUI.Dock/HostWindow.axaml
  19. 0 31
      Avalonia/SukiUI.Dock/Index.axaml
  20. BIN
      Avalonia/SukiUI.Dock/OIG.N5o-removebg-preview.png
  21. 0 40
      Avalonia/SukiUI.Dock/PinnedDockControl.axaml
  22. 0 33
      Avalonia/SukiUI.Dock/SukiUI.Dock.csproj
  23. 0 223
      Avalonia/SukiUI.Dock/ToolChromeControl.axaml
  24. 0 20
      Avalonia/SukiUI.Dock/ToolContentControl.axaml
  25. 0 63
      Avalonia/SukiUI.Dock/ToolControl.axaml
  26. 0 62
      Avalonia/SukiUI.Dock/ToolDockControl.axaml
  27. 0 64
      Avalonia/SukiUI.Dock/ToolPinItemControl.axaml
  28. 0 34
      Avalonia/SukiUI.Dock/ToolPinnedControl.axaml
  29. 0 57
      Avalonia/SukiUI.Dock/ToolTabStrip.axaml
  30. 0 109
      Avalonia/SukiUI.Dock/ToolTabStripItem.axaml
  31. 2 1
      Language/Zh-CN/Language.axaml
  32. 4 0
      Shaker.Model/Models/DeviceInfoModel.cs

+ 4 - 0
Avalonia/ShakerApp/App.axaml

@@ -26,6 +26,7 @@
         <convert:TimeToStringConverter x:Key="TimeToStringConverter" />
         <convert:MutliBoolConverter x:Key="MutliBoolConverter" />
         <convert:LessThanEqualConverter x:Key="LessThanEqualConverter" />
+        <convert:MenuItemConverter x:Key="MenuItemConverter" />
         <convert:GreaterThanEqualConverter x:Key="GreaterThanEqualConverter" />
         <convert:MultiConverter x:Key="MultiConverter" />
     </Application.Resources>
@@ -45,6 +46,9 @@
         <Style Selector="ComboBox:pointerover">
             <Setter Property="Cursor" Value="Hand" />
         </Style>
+        <Style Selector="MenuItem">
+            <Setter Property="Foreground" Value="Black" />
+        </Style>
         <Style Selector="MenuItem:disabled">
             <Setter Property="Foreground" Value="Gray" />
         </Style>

+ 32 - 0
Avalonia/ShakerApp/Convert/MenuItemConverter.cs

@@ -0,0 +1,32 @@
+using Avalonia.Collections;
+using Avalonia.Controls;
+using Avalonia.Controls.Primitives;
+using Avalonia.Data.Converters;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ShakerApp.Convert
+{
+    internal class MenuItemConverter : IValueConverter
+    {
+        public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+        {
+            var list = new AvaloniaList<MenuItem>();
+            if(value is IList<ViewModels.MenuItemViewModel> menuItems)
+            {
+                
+                menuItems.ToList().ForEach(x =>list.Add(x.ConverterToMenuItem()));
+            }
+            return list;
+        }
+
+        public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

+ 3 - 0
Avalonia/ShakerApp/ViewModels/DeviceManger/DeviceMangerViewModel.cs

@@ -69,6 +69,7 @@ namespace ShakerApp.ViewModels
             Msg = App.Current?.FindResource("DeviceSearching") + "";
             PopupVisibily = true;
             DateTime start = DateTime.Now;
+            LogViewModel.Instance.AddLog(App.Current?.FindResource("DeviceSearch") + "");
             System.Net.Sockets.UdpClient udpClient = new System.Net.Sockets.UdpClient(Topic.DISCOVERYPORT - 1);
             udpClient.JoinMulticastGroup(IPAddress.Parse("239.1.0.2"));
             source = new CancellationTokenSource();
@@ -105,6 +106,7 @@ namespace ShakerApp.ViewModels
                                                     if (Devices.Any(x => x.Value.IP == deviceinfo.DeviceInfoModel.IP)) return;
                                                     Devices.Add(new IndexValueItemViewModel<DeviceInfoViewModel>(Devices.Count + 1, new DeviceInfoViewModel(deviceinfo.DeviceInfoModel)));
                                                     Msg = string.Format(App.Current?.FindResource("DeviceFoundCount") + "", Devices.Count);
+                                                    LogViewModel.Instance.AddLog($"{App.Current?.FindResource("FindedDeviceInfo")}:{deviceinfo.DeviceInfoModel}");
                                                 }
                                             });
                                         }
@@ -134,6 +136,7 @@ namespace ShakerApp.ViewModels
                 SearchEnabled = true;
                 if (Devices.Count == 0)
                 {
+                    LogViewModel.Instance.AddLog(App.Current?.FindResource("DeviceNoFound") + "");
                     ShowToast(App.Current?.FindResource("DeviceNoFound") + "", Avalonia.Controls.Notifications.NotificationType.Error);
                 }
             });

+ 5 - 1
Avalonia/ShakerApp/ViewModels/MainViewModel.cs

@@ -14,6 +14,7 @@ using ShakerApp.ViewModels;
 using SukiUI.Dialogs;
 using SukiUI.Toasts;
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Runtime.CompilerServices;
 using System.Windows.Input;
@@ -22,6 +23,9 @@ namespace ShakerApp.ViewModels;
 
 public class MainViewModel : ViewModelBase<IModel>
 {
+    private bool isMenuVisible = true;
+    public bool IsMenuVisible { get => isMenuVisible; set => SetProperty(ref isMenuVisible, value); }
+    public AvaloniaList<MenuItemViewModel> Menus { get; } = new AvaloniaList<MenuItemViewModel>();
     public ICalc Calc { get; } = new SIMDFxpConvert.SIMDCalc();
     private AvaloniaDictionary<string, Window?> OpenedWindows = new AvaloniaDictionary<string, Window?>();
     private bool canDebug = false;
@@ -60,7 +64,6 @@ public class MainViewModel : ViewModelBase<IModel>
                 .FirstOrDefault(y => y.PropertyType == x);
                 val?.GetValue(null);
             });
-        //RandomConfigCommand.Execute("SignalPreview");
     }
     static MainViewModel()
     {
@@ -374,4 +377,5 @@ public class MainViewModel : ViewModelBase<IModel>
         OnPropertyChanged(nameof(TitleColor));
     }
     public static MainViewModel Default { get; } = new MainViewModel();
+
 }

+ 103 - 0
Avalonia/ShakerApp/ViewModels/Menu/MenuItemViewModel.cs

@@ -0,0 +1,103 @@
+using Avalonia.Collections;
+using Avalonia.Controls;
+using Avalonia.Controls.Primitives;
+using Avalonia.Data;
+using Avalonia.Markup.Xaml.MarkupExtensions;
+using Avalonia.Media;
+using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Input;
+
+namespace ShakerApp.ViewModels
+{
+    public class MenuItemViewModel:ObservableObject
+    {
+        private string header = string.Empty;
+        private string iconKey = null;
+        private bool isEnabled = true;
+        private bool isVisible = true;
+        private bool isSeparator = false;
+        private bool iconVisibile = true;
+
+        public bool IsSeparator { get => isSeparator; set =>SetProperty(ref isSeparator , value); }
+        public string Header { get => header; set =>SetProperty(ref header , value); }
+        public bool IconVisibile { get => iconVisibile; set =>SetProperty(ref iconVisibile , value); }
+        public string IconKey { get => iconKey; set =>SetProperty(ref iconKey , value); }
+
+        public ICommand Command => new RelayCommand<string?>((p) => Action?.Invoke(p));
+        [AllowNull]
+        public Action<string?> Action { get; set; }
+        public bool IsEnabled { get => isEnabled; set =>SetProperty(ref isEnabled , value); }
+        public bool IsVisible { get => isVisible; set =>SetProperty(ref isVisible , value); }
+        public AvaloniaList<MenuItemViewModel> Items { get; } = new AvaloniaList<MenuItemViewModel>();
+        public Separator GetSeparator()
+        {
+           var separator = new Separator();
+            separator.DataContext = this;
+            separator.Bind(Separator.IsVisibleProperty, new Binding()
+            {
+                Path = nameof(IsSeparator),
+                Mode = BindingMode.TwoWay,
+            });
+            separator.Bind(Separator.IsEnabledProperty, new Binding()
+            {
+                Path = nameof(IsEnabled),
+                Mode = BindingMode.TwoWay,
+            });
+            return separator;
+        }
+        public MenuItem ConverterToMenuItem()
+        {
+            var menuItem = new Avalonia.Controls.MenuItem();
+            menuItem.DataContext = this;
+            menuItem.Bind(Avalonia.Controls.MenuItem.HeaderProperty, new DynamicResourceExtension(Header));
+            menuItem.Bind(Avalonia.Controls.MenuItem.CommandParameterProperty, new Binding()
+            {
+                Path=nameof(Header),
+            });
+            if (!string.IsNullOrEmpty(IconKey))
+            {
+                var pathicon = new PathIcon();
+
+                pathicon.Bind(PathIcon.DataProperty, new DynamicResourceExtension(IconKey));
+                pathicon.Bind(PathIcon.IsVisibleProperty, new Binding()
+                {
+                    Path = nameof(IconVisibile),
+                    Mode = BindingMode.TwoWay,
+                });
+                menuItem.Icon = pathicon;
+            }
+            menuItem.Bind(MenuItem.CommandProperty, new Binding()
+            {
+                Path = nameof(Command),
+                Mode = BindingMode.TwoWay,
+            });
+            menuItem.Bind(MenuItem.IsEnabledProperty, new Binding()
+            {
+                Path = nameof(IsEnabled),
+                Mode = BindingMode.TwoWay,
+            });
+            menuItem.Bind(MenuItem.IsVisibleProperty, new Binding()
+            {
+                Path = nameof(IsVisible),
+                Mode = BindingMode.TwoWay,
+            });
+            if(Items.Count>0)
+            {
+                for(int i=0;i<Items.Count;i++)
+                {
+                    if (Items[i].IsSeparator) menuItem.Items.Add(Items[i].GetSeparator());
+                    else menuItem.Items.Add(Items[i].ConverterToMenuItem());
+                }
+            }
+
+            return menuItem;
+        }
+    }
+}

+ 15 - 30
Avalonia/ShakerApp/Views/MainWindow.axaml

@@ -25,17 +25,8 @@
     Foreground="{Binding TitleColor}"
     IsMenuVisible="True"
     mc:Ignorable="d">
-    <Interaction.Behaviors>
-        <EventTriggerBehavior EventName="Closing">
-            <InvokeCommandAction Command="{Binding CloseCommand}" />
-        </EventTriggerBehavior>
-    </Interaction.Behaviors>
-    <suki:SukiWindow.Hosts>
-        <suki:SukiToastHost Manager="{Binding ToastManager}" />
-        <suki:SukiDialogHost Manager="{Binding DialogManager}" />
-    </suki:SukiWindow.Hosts>
     <suki:SukiWindow.MenuItems>
-        <MenuItem Foreground="Black" Header="{DynamicResource MenuFile}">
+        <MenuItem Header="{DynamicResource MenuFile}">
             <MenuItem
                 Command="{Binding SaveConfigCommand}"
                 CommandParameter="MenuSaveConfig"
@@ -52,16 +43,7 @@
                     <PathIcon Data="{StaticResource OpenGeometry}" />
                 </MenuItem.Icon>
             </MenuItem>
-            <MenuItem Header="{DynamicResource MenuSaveSweepConfig}">
-                <MenuItem.Icon>
-                    <PathIcon Data="{StaticResource SaveGeometry}" />
-                </MenuItem.Icon>
-            </MenuItem>
-            <MenuItem Header="{DynamicResource MenuLoadSweepConfig}">
-                <MenuItem.Icon>
-                    <PathIcon Data="{StaticResource OpenGeometry}" />
-                </MenuItem.Icon>
-            </MenuItem>
+
             <Separator />
             <MenuItem Command="{Binding ExitCommand}" Header="{DynamicResource MenuExit}">
                 <MenuItem.Icon>
@@ -69,7 +51,7 @@
                 </MenuItem.Icon>
             </MenuItem>
         </MenuItem>
-        <MenuItem Foreground="Black" Header="{DynamicResource MenuDevice}">
+        <MenuItem Header="{DynamicResource MenuDevice}">
             <MenuItem
                 Command="{Binding DeviceMangerCommand}"
                 CommandParameter="MenuManger"
@@ -119,10 +101,7 @@
                 IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Intance}, Path=LocalIsConnect}"
                 IsVisible="{Binding CanDebug}" />
         </MenuItem>
-        <MenuItem
-            Foreground="Black"
-            Header="{DynamicResource MenuTest}"
-            IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Intance}, Path=LocalIsConnect}">
+        <MenuItem Header="{DynamicResource MenuTest}" IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Intance}, Path=LocalIsConnect}">
             <MenuItem.Styles>
                 <Style Selector="MenuItem.Selected">
                     <Setter Property="Icon">
@@ -168,10 +147,7 @@
                 </MenuItem.Styles>
             </MenuItem>
         </MenuItem>
-        <MenuItem
-            Classes.NoTest="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.StartPage}}"
-            Foreground="Black"
-            Header="{DynamicResource MenuTestConfig}">
+        <MenuItem Classes.NoTest="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.StartPage}}" Header="{DynamicResource MenuTestConfig}">
             <MenuItem.Styles>
                 <Style Selector="MenuItem.NoTest">
                     <Setter Property="IsEnabled" Value="False" />
@@ -206,7 +182,7 @@
                 </MenuItem.Styles>
             </MenuItem>
         </MenuItem>
-        <MenuItem Foreground="Black" Header="{DynamicResource MenuAbout}">
+        <MenuItem Header="{DynamicResource MenuAbout}">
             <MenuItem
                 Command="{Binding SettingCommand}"
                 CommandParameter="MenuSetting"
@@ -242,5 +218,14 @@
             </MenuItem>
         </MenuItem>
     </suki:SukiWindow.MenuItems>
+    <Interaction.Behaviors>
+        <EventTriggerBehavior EventName="Closing">
+            <InvokeCommandAction Command="{Binding CloseCommand}" />
+        </EventTriggerBehavior>
+    </Interaction.Behaviors>
+    <suki:SukiWindow.Hosts>
+        <suki:SukiToastHost Manager="{Binding ToastManager}" />
+        <suki:SukiDialogHost Manager="{Binding DialogManager}" />
+    </suki:SukiWindow.Hosts>
     <ContentPresenter Content="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=Content, Converter={StaticResource Type2ViewConverter}}" Foreground="Black" />
 </suki:SukiWindow>

+ 0 - 92
Avalonia/SukiUI.Dock/Converters/AlignmentConverter.cs

@@ -1,92 +0,0 @@
-using System;
-using System.Globalization;
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Data.Converters;
-using Avalonia.Media.Immutable;
-using Dock.Model.Core;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// Converts model <see cref="Alignment"/> enum to avalonia <see cref="Dock"/> enum.
-/// </summary>
-public class AlignmentConverter : IValueConverter
-{
-    /// <summary>
-    /// Gets <see cref="AlignmentConverter"/> instance.
-    /// </summary>
-    public static readonly AlignmentConverter Instance = new AlignmentConverter();
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            Alignment alignment => alignment switch
-            {
-                Alignment.Unset => AvaloniaProperty.UnsetValue,
-                Alignment.Left => global::Avalonia.Controls.Dock.Left,
-                Alignment.Bottom => global::Avalonia.Controls.Dock.Bottom,
-                Alignment.Right => global::Avalonia.Controls.Dock.Right,
-                Alignment.Top => global::Avalonia.Controls.Dock.Top,
-                _ => throw new NotSupportedException($"Provided dock is not supported in Avalonia.")
-            },
-            _ => value
-        };
-    }
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            global::Avalonia.Controls.Dock dock => dock switch
-            {
-                global::Avalonia.Controls.Dock.Left => Alignment.Left,
-                global::Avalonia.Controls.Dock.Bottom => Alignment.Bottom,
-                global::Avalonia.Controls.Dock.Right => Alignment.Right,
-                global::Avalonia.Controls.Dock.Top => Alignment.Top,
-                _ => Alignment.Unset
-            },
-            _ => value
-        };
-    }
-}
-
-public class TransparentToTrueConverter : IValueConverter
-{
-    public static readonly TransparentToTrueConverter Instance = new();
-
-    public object? Convert(object? value, Type targetType, object? parameter, 
-        CultureInfo culture)
-    {
-        if (value == null)
-            return false;
-        
-        var b = (ImmutableSolidColorBrush)value;
-        return b.Opacity != 0;
-    }
-
-    public object ConvertBack(object? value, Type targetType, 
-        object? parameter, CultureInfo culture)
-    {
-        throw new NotSupportedException();
-    }
-}

+ 0 - 69
Avalonia/SukiUI.Dock/Converters/DockModeConverter.cs

@@ -1,69 +0,0 @@
-using System;
-using System.Globalization;
-using Avalonia;
-using Avalonia.Data.Converters;
-using Dock.Model.Core;
-using AC = Avalonia.Controls;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// Converts model <see cref="Model.Core.DockMode"/> enum to avalonia <see cref="AC.Dock"/> enum.
-/// </summary>
-public class DockModeConverter : IValueConverter
-{
-    /// <summary>
-    /// Gets <see cref="DockModeConverter"/> instance.
-    /// </summary>
-    public static readonly DockModeConverter Instance = new DockModeConverter();
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            DockMode dock => dock switch
-            {
-                DockMode.Left => AC.Dock.Left,
-                DockMode.Bottom => AC.Dock.Bottom,
-                DockMode.Right => AC.Dock.Right,
-                DockMode.Top => AC.Dock.Top,
-                _ => AvaloniaProperty.UnsetValue
-            },
-            _ => value
-        };
-    }
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            AC.Dock dock => dock switch
-            {
-                AC.Dock.Left => DockMode.Left,
-                AC.Dock.Bottom => DockMode.Bottom,
-                AC.Dock.Right => DockMode.Right,
-                AC.Dock.Top => DockMode.Top,
-                _ => DockMode.Center
-            },
-            _ => value
-        };
-    }
-}

+ 0 - 29
Avalonia/SukiUI.Dock/Converters/EitherNotNullConverter.cs

@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using Avalonia.Data.Converters;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// Takes a list of values and returns the first non-null value.
-/// </summary>
-public class EitherNotNullConverter : IMultiValueConverter
-{
-    /// <summary>
-    /// Gets <see cref="EitherNotNullConverter"/> instance.
-    /// </summary>
-    public static readonly EitherNotNullConverter Instance = new EitherNotNullConverter();
-
-    /// <inheritdoc/>
-    public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
-    {
-        foreach (var value in values)
-        {
-            if (value != null)
-                return value;
-        }
-
-        return values;
-    }
-}

+ 0 - 42
Avalonia/SukiUI.Dock/Converters/GripModeConverters.cs

@@ -1,42 +0,0 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Data.Converters;
-using Dock.Model.Core;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// The <see cref="GripMode"/> enum value converters.
-/// </summary>
-public static class GripModeConverters
-{
-    /// <summary>
-    /// The <see cref="GripMode.AutoHide"/> to <see cref="Grid.RowProperty"/> value converter.
-    /// </summary>
-    public static readonly IValueConverter GridRowAutoHideConverter =
-        new FuncValueConverter<GripMode, int>(x => x == GripMode.AutoHide ? 1 : 0);
-
-    /// <summary>
-    /// The <see cref="GripMode"/> to <see cref="Visual.IsVisible"/> value converter.
-    /// </summary>
-    public static readonly IValueConverter IsVisibleVisibleConverter =
-        new FuncValueConverter<GripMode, bool>(x => x == GripMode.Visible);
-
-    /// <summary>
-    /// The <see cref="GripMode"/> to <see cref="Visual.IsVisible"/> value converter.
-    /// </summary>
-    public static readonly IValueConverter IsVisibleVisibleOrHiddenConverter =
-        new FuncValueConverter<GripMode, bool>(x => x == GripMode.Hidden || x == GripMode.Visible);
-
-    /// <summary>
-    /// The <see cref="GripMode"/> to <see cref="Visual.IsVisible"/> value converter.
-    /// </summary>
-    public static readonly IValueConverter IsVisibleAutoHideOrVisibleConverter =
-        new FuncValueConverter<GripMode, bool>(x => x == GripMode.AutoHide || x == GripMode.Visible);
-
-    /// <summary>
-    /// The <see cref="GripMode"/> to <see cref="Visual.IsVisible"/> value converter.
-    /// </summary>
-    public static readonly IValueConverter IsVisibleAutoHideOrHiddenConverter =
-        new FuncValueConverter<GripMode, bool>(x => x == GripMode.AutoHide || x == GripMode.Hidden);
-}

+ 0 - 24
Avalonia/SukiUI.Dock/Converters/IntLessThanConverter.cs

@@ -1,24 +0,0 @@
-using System;
-using System.Globalization;
-using Avalonia.Data.Converters;
-
-namespace Dock.Avalonia.Converters;
-
-internal class IntLessThanConverter : IValueConverter
-{
-    public int TrueIfLessThan { get; set; }
-
-    public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        if (value is int intValue)
-        {
-            return intValue < TrueIfLessThan;
-        }
-        return false;
-    }
-
-    public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return null;
-    }
-}

+ 0 - 34
Avalonia/SukiUI.Dock/Converters/IsMaximizedConverter.cs

@@ -1,34 +0,0 @@
-using System;
-using System.Globalization;
-using Avalonia.Controls;
-using Avalonia.Data.Converters;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// Converts WindowState to bool indicating if the window is maximized.
-/// </summary>
-public class IsMaximizedConverter : IValueConverter
-{
-    /// <summary>
-    /// Gets <see cref="IsMaximizedConverter"/> instance.
-    /// </summary>
-    public static IsMaximizedConverter Instance { get; } = new();
-
-    /// <inheritdoc/>
-    public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        if (value is WindowState windowState)
-        {
-            return windowState == WindowState.Maximized;
-        }
-
-        return false;
-    }
-
-    /// <inheritdoc/>
-    public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return null;
-    }
-}

+ 0 - 64
Avalonia/SukiUI.Dock/Converters/OrientationConverter.cs

@@ -1,64 +0,0 @@
-using System;
-using System.Globalization;
-using Avalonia;
-using Avalonia.Data.Converters;
-using Avalonia.Layout;
-
-namespace Dock.Avalonia.Converters;
-
-/// <summary>
-/// Converts model <see cref="Model.Core.Orientation"/> enum to avalonia <see cref="Orientation"/> enum.
-/// </summary>
-public class OrientationConverter : IValueConverter
-{
-    /// <summary>
-    /// Gets <see cref="OrientationConverter"/> instance.
-    /// </summary>
-    public static readonly OrientationConverter Instance = new OrientationConverter();
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            Model.Core.Orientation orientation => orientation switch
-            {
-                Model.Core.Orientation.Horizontal => Orientation.Horizontal,
-                Model.Core.Orientation.Vertical => Orientation.Vertical,
-                _ => throw new NotSupportedException($"Provided orientation is not supported in Avalonia.")
-            },
-            _ => value
-        };
-    }
-
-    /// <summary>
-    /// Converts a value.
-    /// </summary>
-    /// <param name="value">The value to convert.</param>
-    /// <param name="targetType">The type of the target.</param>
-    /// <param name="parameter">A user-defined parameter.</param>
-    /// <param name="culture">The culture to use.</param>
-    /// <returns>The converted value.</returns>
-    public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
-    {
-        return value switch
-        {
-            null => AvaloniaProperty.UnsetValue,
-            Orientation orientation => orientation switch
-            {
-                Orientation.Horizontal => Model.Core.Orientation.Horizontal,
-                Orientation.Vertical => Model.Core.Orientation.Vertical,
-                _ => throw new NotSupportedException($"Provided orientation is not supported in Model.")
-            },
-            _ => value
-        };
-    }
-}

+ 0 - 181
Avalonia/SukiUI.Dock/DockTarget.axaml

@@ -1,181 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-    <Design.PreviewWith>
-        <Panel Height="300" Width="300">
-            <DockTarget>
-                <DockTarget.Styles>
-                    <Style Selector="^/template/ Panel#PART_TopIndicator">
-                        <Setter Property="Opacity" Value="0.0" />
-                    </Style>
-                    <Style Selector="^/template/ Panel#PART_BottomIndicator">
-                        <Setter Property="Opacity" Value="0.0" />
-                    </Style>
-                    <Style Selector="^/template/ Panel#PART_LeftIndicator">
-                        <Setter Property="Opacity" Value="0.0" />
-                    </Style>
-                    <Style Selector="^/template/ Panel#PART_RightIndicator">
-                        <Setter Property="Opacity" Value="0.0" />
-                    </Style>
-                    <Style Selector="^/template/ Panel#PART_CenterIndicator">
-                        <Setter Property="Opacity" Value="0.0" />
-                    </Style>
-                </DockTarget.Styles>
-            </DockTarget>
-        </Panel>
-    </Design.PreviewWith>
-
-    <ControlTheme TargetType="DockTarget" x:Key="{x:Type DockTarget}">
-
-        <Setter Property="Template">
-            <ControlTemplate>
-                <Grid
-                    ColumnDefinitions="*,*"
-                    RowDefinitions="*,*"
-                    x:CompileBindings="True"
-                    x:Name="PART_IndicatorGrid">
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="0"
-                        Grid.ColumnSpan="2"
-                        Grid.Row="0">
-                        <Panel x:Name="PART_TopIndicator" />
-                    </Border>
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="0"
-                        Grid.ColumnSpan="2"
-                        Grid.Row="1">
-                        <Panel x:Name="PART_BottomIndicator" />
-                    </Border>
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="0"
-                        Grid.Row="0"
-                        Grid.RowSpan="2">
-                        <Panel
-                            Grid.Column="0"
-                            Grid.Row="0"
-                            Grid.RowSpan="2"
-                            x:Name="PART_LeftIndicator" />
-                    </Border>
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="1"
-                        Grid.Row="0"
-                        Grid.RowSpan="2">
-                        <Panel x:Name="PART_RightIndicator" />
-                    </Border>
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="0"
-                        Grid.ColumnSpan="2"
-                        Grid.Row="0"
-                        Grid.RowSpan="2">
-                        <Panel x:Name="PART_CenterIndicator" />
-                    </Border>
-                    <Border
-                        ClipToBounds="True"
-                        CornerRadius="16"
-                        Grid.Column="0"
-                        Grid.ColumnSpan="2"
-                        Grid.Row="0"
-                        Grid.RowSpan="2">
-                        <Panel x:Name="PART_SelectorPanel">
-                            <Grid
-                                ColumnDefinitions="*,*,*"
-                                RowDefinitions="*,*,*"
-                                x:Name="PART_SelectorGrid">
-                                <Image
-                                    Grid.Column="1"
-                                    Grid.Row="0"
-                                    x:Name="PART_TopSelector" />
-                                <Image
-                                    Grid.Column="1"
-                                    Grid.Row="2"
-                                    x:Name="PART_BottomSelector" />
-                                <Image
-                                    Grid.Column="0"
-                                    Grid.Row="1"
-                                    x:Name="PART_LeftSelector" />
-                                <Image
-                                    Grid.Column="2"
-                                    Grid.Row="1"
-                                    x:Name="PART_RightSelector" />
-                                <Image
-                                    Grid.Column="1"
-                                    Grid.Row="1"
-                                    x:Name="PART_CenterSelector" />
-                            </Grid>
-                        </Panel>
-                    </Border>
-                </Grid>
-            </ControlTemplate>
-        </Setter>
-
-        <Style Selector="^/template/ Grid#PART_SelectorGrid">
-            <Setter Property="MaxWidth" Value="125" />
-            <Setter Property="MaxHeight" Value="125" />
-        </Style>
-
-        <Style Selector="^/template/ Panel#PART_TopIndicator">
-            <Setter Property="Background" Value="{DynamicResource SukiPrimaryColor25}" />
-            <Setter Property="Opacity" Value="0" />
-        </Style>
-
-        <Style Selector="^/template/ Panel#PART_BottomIndicator">
-            <Setter Property="Background" Value="{DynamicResource SukiPrimaryColor25}" />
-            <Setter Property="Opacity" Value="0" />
-        </Style>
-
-        <Style Selector="^/template/ Panel#PART_LeftIndicator">
-            <Setter Property="Background" Value="{DynamicResource SukiPrimaryColor25}" />
-            <Setter Property="Opacity" Value="0" />
-        </Style>
-
-        <Style Selector="^/template/ Panel#PART_RightIndicator">
-            <Setter Property="Background" Value="{DynamicResource SukiPrimaryColor25}" />
-            <Setter Property="Opacity" Value="0" />
-        </Style>
-
-        <Style Selector="^/template/ Panel#PART_CenterIndicator">
-            <Setter Property="Background" Value="{DynamicResource SukiPrimaryColor25}" />
-            <Setter Property="Opacity" Value="0" />
-        </Style>
-
-        <Style Selector="^/template/ Image#PART_TopSelector">
-            <Setter Property="Source" Value="avares://Dock.Avalonia/Assets/DockAnchorableTop.png" />
-            <Setter Property="Width" Value="40" />
-            <Setter Property="Height" Value="40" />
-        </Style>
-
-        <Style Selector="^/template/ Image#PART_BottomSelector">
-            <Setter Property="Source" Value="avares://Dock.Avalonia/Assets/DockAnchorableBottom.png" />
-            <Setter Property="Width" Value="40" />
-            <Setter Property="Height" Value="40" />
-        </Style>
-
-        <Style Selector="^/template/ Image#PART_LeftSelector">
-            <Setter Property="Source" Value="avares://Dock.Avalonia/Assets/DockAnchorableLeft.png" />
-            <Setter Property="Width" Value="40" />
-            <Setter Property="Height" Value="40" />
-        </Style>
-
-        <Style Selector="^/template/ Image#PART_RightSelector">
-            <Setter Property="Source" Value="avares://Dock.Avalonia/Assets/DockAnchorableRight.png" />
-            <Setter Property="Width" Value="40" />
-            <Setter Property="Height" Value="40" />
-        </Style>
-
-        <Style Selector="^/template/ Image#PART_CenterSelector">
-            <Setter Property="Source" Value="avares://Dock.Avalonia/Assets/DockDocumentInside.png" />
-            <Setter Property="Width" Value="40" />
-            <Setter Property="Height" Value="40" />
-        </Style>
-
-    </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 77
Avalonia/SukiUI.Dock/DocumentControl.axaml

@@ -1,77 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:suki="https://github.com/kikipoulet/SukiUI"
-                    xmlns:core="using:Dock.Model.Core"
-                    xmlns:dmc="using:Dock.Model.Controls">
-    <Design.PreviewWith>
-        <DocumentControl Width="300" Height="400" />
-    </Design.PreviewWith>
-
-    <ControlTheme x:Key="{x:Type DocumentControl}" TargetType="DocumentControl">
-
-        <Setter Property="HeaderTemplate">
-            <DataTemplate DataType="core:IDockable">
-                <TextBlock Padding="2" Text="{Binding Title}" />
-            </DataTemplate>
-        </Setter>
-
-        <Setter Property="Template">
-            <ControlTemplate>
-
-                <suki:GlassCard Margin="5" Padding="12,15">
-                    <DockPanel x:Name="PART_DockPanel"
-                               x:CompileBindings="True"
-                               x:DataType="dmc:IDocumentDock"
-                               Background="Transparent"
-                               DockProperties.IsDockTarget="True"
-                               DockProperties.IsDropArea="True"
-                               ZIndex="1">
-                        <DocumentTabStrip x:Name="PART_TabStrip"
-                                          CanCreateItem="{Binding CanCreateDocument}"
-                                          DockPanel.Dock="Top"
-                                          DockProperties.IsDropArea="True"
-                                          IsActive="{TemplateBinding IsActive}"
-                                          ItemsSource="{Binding VisibleDockables}"
-                                          SelectedItem="{Binding ActiveDockable, Mode=TwoWay}">
-                            <DocumentTabStrip.Styles>
-                                <Style Selector="DocumentTabStripItem">
-                                    <Setter Property="IsActive" Value="{Binding $parent[DocumentTabStrip].IsActive}" />
-                                </Style>
-                            </DocumentTabStrip.Styles>
-                        </DocumentTabStrip>
-                        <Grid x:Name="PART_Grid" IsVisible="{Binding #PART_TabStrip.IsVisible}" />
-                        <Border x:Name="PART_Border">
-                            <DockableControl DataContext="{Binding ActiveDockable}" TrackingMode="Visible">
-                                <ContentControl x:Name="PART_ContentPresenter"
-                                                HorizontalAlignment="Stretch"
-                                                VerticalAlignment="Stretch"
-                                                Content="{Binding}">
-                                    <ContentControl.ContentTemplate>
-                                        <ControlRecyclingDataTemplate Parent="{Binding #PART_ContentPresenter}" />
-                                    </ContentControl.ContentTemplate>
-                                </ContentControl>
-                            </DockableControl>
-                        </Border>
-                    </DockPanel>
-                </suki:GlassCard>
-            </ControlTemplate>
-        </Setter>
-
-        <Style Selector="^/template/ Grid#PART_Grid">
-            <Setter Property="Background" Value="{DynamicResource DockThemeBorderLowBrush}" />
-            <Setter Property="Height" Value="0" />
-            <Setter Property="DockPanel.Dock" Value="Top" />
-        </Style>
-
-        <Style Selector="^:active /template/ Grid#PART_Grid">
-            <Setter Property="Background" Value="{DynamicResource DockApplicationAccentBrushLow}" />
-        </Style>
-
-        <Style Selector="^/template/ Border#PART_Border">
-            <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
-            <Setter Property="BorderThickness" Value="0" />
-        </Style>
-
-    </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 79
Avalonia/SukiUI.Dock/DocumentTabStrip.axaml

@@ -1,79 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:dmc="using:Dock.Model.Controls">
-  <Design.PreviewWith>
-    <Border Padding="20">
-      <DocumentTabStrip>
-        <DocumentTabStripItem>Item 1</DocumentTabStripItem>
-        <DocumentTabStripItem>Item 2</DocumentTabStripItem>
-        <DocumentTabStripItem IsEnabled="False">Disabled</DocumentTabStripItem>
-      </DocumentTabStrip>
-    </Border>
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="ButtonCreateDocument" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
-    <Setter Property="BorderThickness" Value="0" />
-    <Setter Property="Padding" Value="0" />
-    <Setter Property="Margin" Value="0,12,12,0" />
-    <Setter Property="Width" Value="22" />
-    <Setter Property="Height" Value="22" />
-    <Setter Property="HorizontalAlignment" Value="Right" />
-    <Setter Property="HorizontalContentAlignment" Value="Center" />
-    <Setter Property="VerticalAlignment" Value="Top" />
-    <Setter Property="VerticalContentAlignment" Value="Center" />
-    <Setter Property="Background" Value="Transparent" />
-   
-  </ControlTheme>
-
-  <ControlTheme x:Key="{x:Type DocumentTabStrip}" TargetType="DocumentTabStrip">
-
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="Focusable" Value="False" />
-    <Setter Property="ClipToBounds" Value="False" />
-    <Setter Property="ZIndex" Value="1" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-  
-        <DockPanel Background="Transparent"
-                   ClipToBounds="False"
-                   x:DataType="dmc:IDocumentDock"
-                   x:CompileBindings="True">
-          <Button x:Name="PART_ButtonCreate"
-                  Command="{Binding CreateDocument}"
-                  Theme="{StaticResource ButtonCreateDocument}"
-                  IsVisible="{Binding CanCreateDocument}"
-                  DockPanel.Dock="Right">
-            <Path x:Name="PART_PathCreate">
-              <Path.Styles>
-                <Style Selector="Path">
-                  <Setter Property="Margin" Value="5" />
-                  <Setter Property="Stretch" Value="Uniform" />
-                  <Setter Property="UseLayoutRounding" Value="False" />
-                  <Setter Property="Fill" Value="{DynamicResource DockThemeForegroundBrush}" />
-                  <Setter Property="Data"
-                          Value="M8.41687 7.57953V2.41851C8.41687 2.18743 8.22932 1.99988 7.99823 1.99988C7.76715 1.99988 7.5796 2.18743 7.5796 2.41851V7.57953H2.41863C2.18755 7.57953 2 7.76708 2 7.99816C2 8.22925 2.18755 8.41679 2.41863 8.41679H7.5796V13.5812C7.5796 13.8123 7.76715 13.9999 7.99823 13.9999C8.22932 13.9999 8.41687 13.8123 8.41687 13.5812V8.41679L13.5799 8.41851C13.811 8.41851 13.9985 8.23096 13.9985 7.99988C13.9985 7.76879 13.811 7.58125 13.5799 7.58125L8.41687 7.57953Z" />
-                </Style>
-              </Path.Styles>
-            </Path>
-          </Button>
-          <ItemsPresenter x:Name="PART_ItemsPresenter"
-                          ItemsPanel="{TemplateBinding ItemsPanel}" />
-        </DockPanel>
-         
-      </ControlTemplate>
-    </Setter>
-
-    <Setter Property="ItemsPanel">
-      <ItemsPanelTemplate>
-        <WrapPanel ClipToBounds="False" />
-      </ItemsPanelTemplate>
-    </Setter>
-
-    <Style Selector="^:not(:create):empty">
-      <Setter Property="IsVisible" Value="False" />
-    </Style>
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 132
Avalonia/SukiUI.Dock/DocumentTabStripItem.axaml

@@ -1,132 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:core="using:Dock.Model.Core"
-                    xmlns:suki="https://github.com/kikipoulet/SukiUI"
-                    x:CompileBindings="True">
-  <Design.PreviewWith>
-    <Border Padding="20">
-      <StackPanel Spacing="20">
-        <DocumentTabStripItem>Leaf</DocumentTabStripItem>
-        <DocumentTabStripItem IsSelected="True">Arch</DocumentTabStripItem>
-        <DocumentTabStripItem Background="Yellow">Background</DocumentTabStripItem>
-      </StackPanel>
-    </Border>
-  </Design.PreviewWith>
-
-  <ContextMenu x:Key="DocumentTabStripItemContextMenu" x:DataType="core:IDockable" x:CompileBindings="True">
-    <MenuItem Header="_Float"
-              Command="{Binding Owner.Factory.FloatDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanFloat}"/>
-    <MenuItem Header="_Close"
-              Command="{Binding Owner.Factory.CloseDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-    <MenuItem Header="Close other tabs"
-              Command="{Binding Owner.Factory.CloseOtherDockables}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-    <MenuItem Header="Close all tabs"
-              Command="{Binding Owner.Factory.CloseAllDockables}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-    <MenuItem Header="_Close tabs to the left"
-              Command="{Binding Owner.Factory.CloseLeftDockables}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-    <MenuItem Header="_Close tabs to the right"
-              Command="{Binding Owner.Factory.CloseRightDockables}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-  </ContextMenu>
-  
-  <ControlTheme x:Key="{x:Type DocumentTabStripItem}" TargetType="DocumentTabStripItem">
-
-    <Setter Property="(TextElement.FontSize)" Value="{DynamicResource DockFontSizeNormal}" />
-    <Setter Property="FontWeight" Value="Normal" />
-    <Setter Property="MinHeight" Value="24" />
-    <Setter Property="VerticalContentAlignment" Value="Center" />
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="Foreground" Value="{DynamicResource DockThemeForegroundBrush}" />
-    <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
-    <Setter Property="BorderThickness" Value="0" />
-    <Setter Property="Margin" Value="0" />
-    <Setter Property="Padding" Value="4 0 4 0" />
-
-    <Setter Property="Template" x:DataType="core:IDockable">
-      <ControlTemplate>
-        <Panel Margin="0,5" >
-          <Border Name="SelectedBorder" IsVisible="False"
-            Margin="6,0"
-            Padding="0"
-            
-            CornerRadius="8">
-            <suki:GlassCard Classes="Control" CornerRadius="8">
-             
-              </suki:GlassCard>
-          </Border>
-        
-        <Border Margin="12,4" Background="{TemplateBinding Background}"
-                TextElement.FontFamily="{TemplateBinding FontFamily}"
-                TextElement.FontSize="{TemplateBinding FontSize}"
-                TextElement.FontWeight="{TemplateBinding FontWeight}"
-                BorderBrush="{TemplateBinding BorderBrush}"
-                BorderThickness="0"
-                Padding="{TemplateBinding Padding}"
-                ContextMenu="{DynamicResource DocumentTabStripItemContextMenu}">
-            <DockableControl TrackingMode="Tab">
-              <StackPanel Background="Transparent"
-                          Orientation="Horizontal"
-                          Spacing="2"
-                          DockProperties.IsDragArea="True"
-                          DockProperties.IsDropArea="True">
-                <Panel Margin="2">
-                  <ContentPresenter FontWeight="DemiBold" ContentTemplate="{Binding $parent[DocumentControl].HeaderTemplate}"
-                                    Content="{Binding}" />
-                </Panel>
-                <Button x:Name="PART_CloseButton"
-                        Command="{Binding Owner.Factory.CloseDockable}"
-                        CommandParameter="{Binding}"
-                        IsVisible="{Binding CanClose}">
-                  <Button.Styles>
-                    <Style Selector="Button">
-                      <Setter Property="BorderThickness" Value="0" />
-                      <Setter Property="Padding" Value="0" />
-                      <Setter Property="Margin" Value="0" />
-                      <Setter Property="Width" Value="14" />
-                      <Setter Property="Height" Value="14" />
-                      <Setter Property="Background" Value="Transparent" />
-                      
-                    </Style>
-                  </Button.Styles>
-                  <Path x:Name="PART_ClosePath">
-                    <Path.Styles>
-                      <Style Selector="Path">
-                        <Setter Property="Fill" Value="{DynamicResource SukiLowText}"></Setter>
-                        <Setter Property="Margin" Value="2,4,2,1" />
-                        <Setter Property="Stretch" Value="Uniform" />
-                        <Setter Property="UseLayoutRounding" Value="False" />
-                        <Setter Property="Data"
-                                Value="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
-                      </Style>
-                    </Path.Styles>
-                  </Path>
-                </Button>
-              </StackPanel>
-            </DockableControl>
-          </Border>
-       
-        </Panel>
-      </ControlTemplate>
-    </Setter>
-
-    <Style Selector="^:selected /template/ Border#SelectedBorder">
-      <Setter Property="IsVisible" Value="True"></Setter>
-      
-    </Style>
-
-
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 82
Avalonia/SukiUI.Dock/HostWindow.axaml

@@ -1,82 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:core="using:Dock.Model.Core"
-                    xmlns:controls="clr-namespace:Dock.Model.Controls;assembly=Dock.Model">
-  <Design.PreviewWith>
-    <HostWindow IsToolWindow="False" Width="300" Height="400" />
-  </Design.PreviewWith>
-
-
-
-  <ControlTheme x:Key="{x:Type HostWindow}" TargetType="HostWindow">
-
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="(TextElement.FontSize)" Value="{DynamicResource DockFontSizeNormal}" />
-    <!-- <Setter Property="FontFamily" Value="{TemplateBinding FontFamily}" /> -->
-    <Setter Property="TextBlock.Foreground" Value="{DynamicResource DockThemeForegroundBrush}" />
-    <Setter Property="WindowState" Value="Normal" />
-    <Setter Property="UseLayoutRounding" Value="True" />
-    <Setter Property="Title" Value="{Binding ActiveDockable.Title}" />
-    <Setter Property="Topmost" Value="{Binding Window.Topmost}" x:DataType="controls:IRootDock" />
-    <Setter Property="SystemDecorations" Value="None" />
-   <Setter Property="ExtendClientAreaToDecorationsHint" Value="True" />
-    <Setter Property="ExtendClientAreaChromeHints" Value="NoChrome"/>
-<Setter Property="ExtendClientAreaTitleBarHeightHint" Value="-1"></Setter>
-    <Setter Property="Template">
-      <ControlTemplate>
-        <Panel>
-          <Border Name="SelectedBorder" 
-                  Margin="10,10"
-                  Padding="0"
-                  BoxShadow="{DynamicResource SukiPopupShadow}"
-                  Background="{DynamicResource SukiCardBackground}"
-                  CornerRadius="20">
-            <Border CornerRadius="20" ClipToBounds="True">
-              <Panel>
-                <Panel Margin="0">
-                  <Panel.Background>
-                    <LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,100%">
-                      <GradientStop Color="{DynamicResource SukiAccentColor5}" Offset="0"></GradientStop>
-                      <GradientStop Color="{DynamicResource SukiPrimaryColor5}" Offset="1"></GradientStop>
-                    </LinearGradientBrush>
-                  </Panel.Background>
-                </Panel>
-              </Panel>
-            </Border>
-          </Border>
-          <Border Name="PART_TransparencyFallback" IsHitTestVisible="False" />
-          <Border Background="{TemplateBinding Background}" IsHitTestVisible="False" />
-          <Panel Background="Transparent" Margin="{TemplateBinding WindowDecorationMargin}" />
-          <VisualLayerManager>
-            <VisualLayerManager.ChromeOverlayLayer>
-              <HostWindowTitleBar Name="PART_TitleBar" />
-            </VisualLayerManager.ChromeOverlayLayer>
-            <ContentPresenter Name="PART_ContentPresenter"
-                              ContentTemplate="{TemplateBinding ContentTemplate}"
-                              Content="{TemplateBinding Content}"
-                              Margin="{TemplateBinding Padding}"
-                              HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
-                              VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
-          </VisualLayerManager>
-        </Panel>
-      </ControlTemplate>
-    </Setter>
-
-    <Setter Property="Content">
-      <Template>
-        <Panel Margin="{Binding $parent[HostWindow].OffScreenMargin}">
-          <Panel Margin="{Binding $parent[HostWindow].WindowDecorationMargin}">
-            <DockControl Layout="{Binding}"
-                         x:DataType="core:IHostWindow"
-                         x:CompileBindings="True" />
-          </Panel>
-        </Panel>
-      </Template>
-    </Setter>
-
- 
-   
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 31
Avalonia/SukiUI.Dock/Index.axaml

@@ -1,31 +0,0 @@
-<Styles xmlns="https://github.com/avaloniaui"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-    <Design.PreviewWith>
-        <Border Padding="20">
-            <!-- Add Controls for Previewer Here -->
-        </Border>
-    </Design.PreviewWith>
-
-    <StyleInclude Source="avares://Dock.Avalonia/Themes/DockFluentTheme.axaml" />
-    <Styles.Resources>
-        <ResourceDictionary>
-            <ResourceDictionary.MergedDictionaries>
-                    <ResourceInclude Source="DockTarget.axaml"></ResourceInclude>
-                    <ResourceInclude Source="DocumentControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="DocumentTabStrip.axaml"></ResourceInclude>
-                    <ResourceInclude Source="DocumentTabStripItem.axaml"></ResourceInclude>
-                    <ResourceInclude Source="HostWindow.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolChromeControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolContentControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolDockControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolPinItemControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolPinnedControl.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolTabStrip.axaml"></ResourceInclude>
-                    <ResourceInclude Source="ToolTabStripItem.axaml"></ResourceInclude>
-                    <ResourceInclude Source="PinnedDockControl.axaml"></ResourceInclude>
-                    
-                </ResourceDictionary.MergedDictionaries>
-            </ResourceDictionary>
-    </Styles.Resources>
-</Styles>

BIN
Avalonia/SukiUI.Dock/OIG.N5o-removebg-preview.png


+ 0 - 40
Avalonia/SukiUI.Dock/PinnedDockControl.axaml

@@ -1,40 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:dmc="clr-namespace:Dock.Model.Controls;assembly=Dock.Model">
-  <Design.PreviewWith>
-    <Border>
-      <PinnedDockControl />
-    </Border>
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="{x:Type PinnedDockControl}" TargetType="PinnedDockControl">
-
-    <Setter Property="PinnedDockAlignment" Value="{CompiledBinding PinnedDock.Alignment}" x:DataType="dmc:IRootDock" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        <Grid Name="PART_PinnedDockGrid"
-              IsVisible="{Binding !PinnedDock.IsEmpty, FallbackValue=False}"
-              x:DataType="dmc:IRootDock"
-              x:CompileBindings="True">
-          <ContentControl Content="{Binding PinnedDock}" Name="PART_PinnedDock">
-            <ContentControl.Styles>
-              <Style Selector="ToolDockControl">
-                <Setter Property="Background">
-                  <MultiBinding Converter="{x:Static EitherNotNullConverter.Instance}">
-                    <CompiledBinding Path="$parent[Window].Background" />
-                    <CompiledBinding Path="$parent[Window].TransparencyBackgroundFallback" />
-                  </MultiBinding>
-                </Setter>
-              </Style>
-              <Style Selector="ToolControl">
-                <Setter Property="IsHitTestVisible" Value="{CompiledBinding !$parent[DockControl].IsDraggingDock}" />
-              </Style>
-            </ContentControl.Styles>
-          </ContentControl>
-          <GridSplitter Width="5" Grid.Column="1" Grid.Row="1" Background="Transparent" />
-        </Grid>
-      </ControlTemplate>
-    </Setter>
-  </ControlTheme>
-</ResourceDictionary>

+ 0 - 33
Avalonia/SukiUI.Dock/SukiUI.Dock.csproj

@@ -1,33 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-    <PropertyGroup>
-        <TargetFramework>net8.0</TargetFramework>
-        <ImplicitUsings>enable</ImplicitUsings>
-        <Nullable>enable</Nullable>
-        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
-        <Version>6.0.0-beta7</Version>
-        <PackageIcon>OIG.N5o-removebg-preview.png</PackageIcon>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <ProjectReference Include="..\SukiUI\SukiUI.csproj" />
-    </ItemGroup>
-
-    <ItemGroup>
-      <PackageReference Include="Avalonia" Version="11.2.2" />
-      <PackageReference Include="Avalonia.Controls.DataGrid" Version="11.2.2" />
-      <PackageReference Include="Avalonia.Skia" Version="11.2.2" />
-      <PackageReference Include="Avalonia.Themes.Simple" Version="11.2.2" />
-      <PackageReference Include="Dock.Avalonia" Version="11.2.0" />
-      <PackageReference Include="Dock.Model.Avalonia" Version="11.2.0" />
-      <PackageReference Include="SkiaSharp" Version="2.88.9" />
-    </ItemGroup>
-
-    <ItemGroup>
-      <None Update="OIG.N5o-removebg-preview.png">
-        <Pack>True</Pack>
-        <PackagePath></PackagePath>
-      </None>
-    </ItemGroup>
-
-</Project>

+ 0 - 223
Avalonia/SukiUI.Dock/ToolChromeControl.axaml

@@ -1,223 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:converters="clr-namespace:Dock.Avalonia.Converters;assembly=SukiUI.Dock"
-                    xmlns:controls="using:Dock.Model.Controls">
-  <Design.PreviewWith>
-    <ToolChromeControl Width="300" Height="400" />
-  </Design.PreviewWith>
-
-  <MenuFlyout x:Key="ToolChromeControlContextMenu"
-               x:DataType="controls:IToolDock" x:CompileBindings="True">
-    <MenuItem Header="_Float"
-              Command="{Binding Owner.Factory.FloatDockable}"
-              CommandParameter="{Binding ActiveDockable}"
-              IsVisible="{Binding ActiveDockable.CanFloat, FallbackValue=False}"/>
-    <MenuItem Header="_Dock"
-              Command="{Binding Owner.Factory.PinDockable}"
-              CommandParameter="{Binding ActiveDockable}"
-              IsEnabled="{Binding ActiveDockable.OriginalOwner, Converter={x:Static ObjectConverters.IsNotNull}, FallbackValue=False}"
-              IsVisible="{Binding ActiveDockable.CanPin, FallbackValue=False}"/>
-    <MenuItem Header="_Auto Hide"
-              Command="{Binding Owner.Factory.PinDockable}"
-              CommandParameter="{Binding ActiveDockable}"
-              IsEnabled="{Binding ActiveDockable.OriginalOwner, Converter={x:Static ObjectConverters.IsNull}, FallbackValue=False}">
-      <MenuItem.IsVisible>
-        <MultiBinding Converter="{x:Static BoolConverters.And}">
-          <Binding Path="ActiveDockable.CanPin" FallbackValue="{x:False}" />
-          <Binding Path="$parent[ToolChromeControl].IsFloating" Converter="{x:Static BoolConverters.Not}" />
-        </MultiBinding>
-      </MenuItem.IsVisible>
-    </MenuItem>
-    <MenuItem Header="_Close"
-              Command="{Binding Owner.Factory.CloseDockable}"
-              CommandParameter="{Binding ActiveDockable}"
-              IsVisible="{Binding ActiveDockable.CanClose, FallbackValue=False}"/>
-  </MenuFlyout>
-
-  <ControlTheme x:Key="ChromeButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}" >
-    <Setter Property="Margin" Value="2 0 0 0" />
-    <Setter Property="Padding" Value="3" />
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="BorderThickness" Value="0" />
-    <Setter Property="Width" Value="18" />
-    <Setter Property="Height" Value="16" />
-  </ControlTheme>
-
-  <ControlTheme x:Key="{x:Type ToolChromeControl}" TargetType="ToolChromeControl">
-
-    <Setter Property="Background" Value="{DynamicResource DockThemeBackgroundBrush}" />
-    <Setter Property="BorderBrush" Value="Transparent" />
-    <Setter Property="BorderThickness" Value="0" />
-    <Setter Property="Padding" Value="0" />
-    <Setter Property="IsPinned" Value="{CompiledBinding ActiveDockable.OriginalOwner, FallbackValue=False, Converter={x:Static ObjectConverters.IsNotNull}}" x:DataType="controls:IToolDock" />
-    <Setter Property="IsMaximized" Value="{CompiledBinding $parent[HostWindow].WindowState, FallbackValue=False, Converter={x:Static IsMaximizedConverter.Instance}}" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        <Grid RowDefinitions="Auto,*" x:DataType="controls:IToolDock" x:CompileBindings="True">
-          <ContentPresenter x:Name="PART_ContentPresenter"
-                            Background="{TemplateBinding Background}"
-                            BorderBrush="{TemplateBinding BorderBrush}"
-                            BorderThickness="{TemplateBinding BorderThickness}"
-                            Content="{TemplateBinding Content}"
-                            Padding="{TemplateBinding Padding}"
-                            Grid.Row="1" />
-          <Border x:Name="PART_Border"
-                  BorderBrush="{TemplateBinding BorderBrush}"
-                  VerticalAlignment="Top"
-                  ContextFlyout="{DynamicResource ToolChromeControlContextMenu}"
-                  Grid.Row="{Binding GripMode, Converter={x:Static converters:GripModeConverters.GridRowAutoHideConverter}}">
-            <Grid x:Name="PART_Grip">
-              <DockPanel LastChildFill="True" Margin="8 0">
-                <Panel DockPanel.Dock="Left">
-                  <TextBlock x:Name="PART_Title" FontWeight="DemiBold" FontSize="14"
-                             Text="{Binding ActiveDockable.Title, FallbackValue=TITLE}" />
-                </Panel>
-                <StackPanel DockPanel.Dock="Right" Orientation="Horizontal">
-                  <Button x:Name="PART_MenuButton"
-                          Theme="{StaticResource ChromeButton}"
-                          Flyout="{StaticResource ToolChromeControlContextMenu}">
-                    <Viewbox Margin="2">
-                      <Path  Fill="{DynamicResource SukiLowText}" x:Name="PART_MenuPath" />
-                    </Viewbox>
-                  </Button>
-                  <Button x:Name="PART_PinButton"
-                          Command="{Binding Owner.Factory.PinDockable}"
-                          CommandParameter="{Binding ActiveDockable}"
-                          Theme="{StaticResource ChromeButton}">
-                    <Button.IsVisible>
-                      <MultiBinding Converter="{x:Static BoolConverters.And}">
-                        <Binding Path="ActiveDockable.CanPin" FallbackValue="{x:False}" />
-                        <TemplateBinding Property="IsFloating" Converter="{x:Static BoolConverters.Not}" />
-                      </MultiBinding>
-                    </Button.IsVisible>
-                    <Viewbox>
-                      <Path  Fill="{DynamicResource SukiLowText}" x:Name="PART_PinPath" />
-                    </Viewbox>
-                  </Button>
-                  <Button x:Name="PART_MaximizeRestoreButton"
-                          IsVisible="{TemplateBinding IsFloating}"
-                          Theme="{StaticResource ChromeButton}">
-                    <Viewbox>
-                      <Path Fill="{DynamicResource SukiLowText}" x:Name="PART_MaximizeRestorePath" />
-                    </Viewbox>
-                  </Button>
-                  <Button x:Name="PART_CloseButton"
-                          Command="{Binding Owner.Factory.CloseDockable}"
-                          CommandParameter="{Binding ActiveDockable}"
-                          IsVisible="{Binding ActiveDockable.CanClose, FallbackValue=False}"
-                          Theme="{StaticResource ChromeButton}">
-                    <Viewbox>
-                      <Path  Fill="{DynamicResource SukiLowText}" x:Name="PART_ClosePath" />
-                    </Viewbox>
-                  </Button>
-                </StackPanel>
-               <Panel></Panel>
-              </DockPanel>
-            </Grid>
-          </Border>
-          <Panel x:Name="PART_Panel"
-                 Background="{TemplateBinding BorderBrush}"
-                 Height="1"
-                 VerticalAlignment="Top"
-                 Grid.Row="{Binding GripMode, Converter={x:Static converters:GripModeConverters.GridRowAutoHideConverter}}" />
-        </Grid>
-      </ControlTemplate>
-    </Setter>
-
-    <Style Selector="^/template/ Border#PART_Border">
-      <Setter Property="BorderThickness" Value="0 0 0 0" />
-      <Setter Property="IsVisible"
-              Value="{Binding GripMode, Converter={x:Static converters:GripModeConverters.IsVisibleVisibleConverter}}" />
-    </Style>
-
-    <Style Selector="^:pointerover /template/ Border#PART_Border">
-      <Setter Property="IsVisible"
-              Value="{Binding GripMode, Converter={x:Static converters:GripModeConverters.IsVisibleAutoHideOrVisibleConverter}}" />
-    </Style>
-
-    <Style Selector="^:floating /template/ Border#PART_Border">
-      <Setter Property="BorderThickness" Value="0" />
-    </Style>
-
-    <Style Selector="^/template/ Panel#PART_Panel">
-      <Setter Property="IsVisible"
-              Value="{Binding GripMode, Converter={x:Static converters:GripModeConverters.IsVisibleAutoHideOrHiddenConverter}}" />
-    </Style>
-
-    <Style Selector="^:pointerover /template/ Panel#PART_Panel">
-      <Setter Property="IsVisible"
-              Value="{Binding GripMode, Converter={x:Static converters:GripModeConverters.IsVisibleVisibleOrHiddenConverter}}" />
-    </Style>
-
-    <Style Selector="^:floating:pointerover /template/ Panel#PART_Panel">
-      <Setter Property="Height" Value="0" />
-      <Setter Property="IsVisible" Value="False" />
-    </Style>
-
-    <Style Selector="^/template/ TextBlock#PART_Title">
-      <Setter Property="Background" Value="Transparent" />
-      <Setter Property="HorizontalAlignment" Value="Left" />
-      <Setter Property="TextAlignment" Value="Left" />
-      <Setter Property="VerticalAlignment" Value="Stretch" />
-      <Setter Property="Margin" Value="0 4 8 4" />
-      <Setter Property="(TextElement.FontSize)" Value="{DynamicResource DockFontSizeNormal}" />
-    </Style>
-
-    <Style Selector="^:active /template/ TextBlock#PART_Title">
-      <Setter Property="Background" Value="Transparent" />
-      <Setter Property="Foreground" Value="{DynamicResource DockApplicationAccentForegroundBrush}" />
-    </Style>
-
-    <Style Selector="^/template/ Grid#PART_Grip">
-      <Setter Property="Background" Value="{DynamicResource DockThemeBackgroundBrush}" />
-    </Style>
-
-    <Style Selector="^/template/ Grid#PART_Grip">
-      <Setter Property="(DockProperties.IsDragArea)" Value="True" />
-    </Style>
-
-    <Style Selector="^:floating /template/ Grid#PART_Grip">
-      <Setter Property="(DockProperties.IsDragArea)" Value="{Binding $parent[HostWindow].ToolChromeControlsWholeWindow, Mode=OneWay, Converter={x:Static BoolConverters.Not}}" />
-    </Style>
-
-    <Style Selector="^:active /template/ Grid#PART_Grip">
-      <Setter Property="Background" Value="Transparent" />
-    </Style>
-
-
-
-    <Style Selector="^/template/ Path">
-      <Setter Property="Stretch" Value="UniformToFill" />
-     
-    </Style>
-
-    <Style Selector="^/template/ Path#PART_ClosePath">
-      <Setter Property="Data"
-              Value="M1169 1024l879 -879l-145 -145l-879 879l-879 -879l-145 145l879 879l-879 879l145 145l879 -879l879 879l145 -145z" />
-    </Style>
-
-    <Style Selector="^/template/ Path#PART_MaximizeRestorePath">
-      <Setter Property="Data" Value="M0,0L0,9 9,9 9,0 0,0 0,3 8,3 8,8 1,8 1,3 0,3z" />
-    </Style>
-
-    <Style Selector="^/template/ Path#PART_PinPath">
-      <Setter Property="Data" Value="m0 1345.575 218.834 0 0-1121.5042 0-177.2397 0-46.8138 673.827 0 416.57 0 32.417 0 0 1345.5577 230.153 0 0 224.0546-672.133 0 0 894.3935-225.764 0 0-894.3935-673.904 0 0-224.0546zm444.598-1121.4996 0 1121.4996 448.063 0 0-1121.4996-448.063 0z" />
-    </Style>
-
-    <Style Selector="^/template/ Path#PART_MenuPath">
-      <Setter Property="Data" Value="M 352.041,32.0005L 320,0.000162761L 384,0.000162761L 352.041,32.0005 Z " />
-    </Style>
-
-    <Style Selector="^:pinned /template/ Path#PART_PinPath">
-      <Setter Property="Data" Value="m1119 0 0 218.834 1121.5042 0 177.2397 0 46.8138 0 0 673.827 0 416.57 0 32.417-1345.5577 0 0 230.153-224.0546 0 0-672.133-894.3935 0 0-225.764 894.3935 0 0-673.904zm1121.4996 444.598-1121.4996 0 0 448.063 1121.4996 0 0-448.063z" />
-    </Style>
-
-    <Style Selector="^:maximized /template/ Path#PART_MaximizeRestorePath">
-      <Setter Property="Data" Value="M0,10L0,3 3,3 3,0 10,0 10,2 4,2 4,3 7,3 7,6 6,6 6,5 1,5 1,10z M1,10L7,10 7,7 10,7 10,2 9,2 9,6 6,6 6,9 1,9z" />
-    </Style>
-
-    
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 20
Avalonia/SukiUI.Dock/ToolContentControl.axaml

@@ -1,20 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-  <Design.PreviewWith>
-    <ToolContentControl Width="300" Height="300" />
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="{x:Type ToolContentControl}" TargetType="ToolContentControl">
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        <DockableControl TrackingMode="Visible">
-          <ContentControl Content="{Binding}" 
-                          ContentTemplate="{Binding}" />
-        </DockableControl>
-      </ControlTemplate>
-    </Setter>
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 63
Avalonia/SukiUI.Dock/ToolControl.axaml

@@ -1,63 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:dmc="using:Dock.Model.Controls"
-                    xmlns:core="using:Dock.Model.Core">
-  <Design.PreviewWith>
-    <ToolControl Width="300" Height="400" />
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="{x:Type ToolControl}" TargetType="ToolControl">
-
-    <Setter Property="HeaderTemplate">
-      <DataTemplate DataType="core:IDockable">
-        <TextBlock Text="{Binding Title}" Padding="2" />
-      </DataTemplate>
-    </Setter>
-
-    <Setter Property="Template">
-      <ControlTemplate>
- 
-        <DockPanel x:Name="PART_DockPanel"
-                   DockProperties.IsDropArea="True"
-                   DockProperties.IsDockTarget="True"
-                   x:DataType="dmc:IToolDock"
-                   x:CompileBindings="True">
-          <ToolTabStrip x:Name="PART_TabStrip"
-                        ItemsSource="{Binding VisibleDockables}"
-                        SelectedItem="{Binding ActiveDockable, Mode=TwoWay}"
-                        DockPanel.Dock="Bottom"
-                        DockProperties.IsDropArea="True" />
-          <Border x:Name="PART_Border">
-            <DockableControl DataContext="{Binding ActiveDockable}"
-                             TrackingMode="Visible">
-              <ContentControl x:Name="PART_ContentPresenter"
-                              Content="{Binding}"
-                              HorizontalAlignment="Stretch"
-                              VerticalAlignment="Stretch">
-                <ContentControl.ContentTemplate>
-                  <ControlRecyclingDataTemplate Parent="{Binding #PART_ContentPresenter}" />
-                </ContentControl.ContentTemplate>
-              </ContentControl>
-            </DockableControl>
-          </Border>
-        </DockPanel>
-       
-      </ControlTemplate>
-    </Setter>
-
-    <Style Selector="^/template/ DockPanel#PART_DockPanel">
-      <Setter Property="Background" Value="Transparent" />
-      <Setter Property="ZIndex" Value="1" />
-    </Style>
-
-    <Style Selector="^/template/ Border#PART_Border">
-      <Setter Property="ZIndex" Value="-1" />
-      <Setter Property="Background" Value="{DynamicResource DockThemeBackgroundBrush}" />
-      <Setter Property="Margin" Value="0" />
-      <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
-      <Setter Property="BorderThickness" Value="0" />
-    </Style>
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 62
Avalonia/SukiUI.Dock/ToolDockControl.axaml

@@ -1,62 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:suki="https://github.com/kikipoulet/SukiUI"
-                    xmlns:converters="clr-namespace:Dock.Avalonia.Converters"
-                    xmlns:core="using:Dock.Model.Core">
-    <Design.PreviewWith>
-        <ToolDockControl Width="300" Height="300" />
-    </Design.PreviewWith>
-
-    <ControlTheme x:Key="{x:Type ToolDockControl}" TargetType="ToolDockControl">
-
-        <Setter Property="Template">
-            <ControlTemplate>
-                <Panel>
-                    <Border Margin="8"
-                            BoxShadow="{DynamicResource SukiPopupShadow}"
-                            CornerRadius="20"
-                            IsVisible="{TemplateBinding Background,
-                                                        Converter={x:Static converters:TransparentToTrueConverter.Instance}}" />
-                    <suki:GlassCard Margin="5" Padding="0">
-                        <Panel>
-
-                            <Panel IsVisible="{TemplateBinding Background, Converter={x:Static converters:TransparentToTrueConverter.Instance}}">
-                                <Panel Background="{DynamicResource SukiCardBackground}" />
-                                <Panel Margin="0">
-                                    <Panel.Background>
-                                        <LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,100%">
-                                            <GradientStop Offset="0" Color="{DynamicResource SukiAccentColor5}" />
-                                            <GradientStop Offset="1" Color="{DynamicResource SukiPrimaryColor10}" />
-                                        </LinearGradientBrush>
-                                    </Panel.Background>
-                                </Panel>
-                            </Panel>
-
-                            <DockableControl Name="PART_DockableControl"
-                                             Margin="12,15"
-                                             x:DataType="core:IDock"
-                                             Background="Transparent"
-                                             TrackingMode="Visible">
-                                <ToolChromeControl x:DataType="core:IDock"
-                                                   IsActive="{Binding IsActive}"
-                                                   IsVisible="{Binding !!VisibleDockables.Count}">
-                                    <ToolControl />
-                                </ToolChromeControl>
-                            </DockableControl>
-                        </Panel>
-                    </suki:GlassCard>
-                </Panel>
-            </ControlTemplate>
-        </Setter>
-        <!--
-    <Style Selector="^[(ProportionalStackPanelSplitter.IsEmpty)=False] /template/ DockableControl#PART_DockableControl">
-      <Setter Property="Background" Value="Blue" />
-    </Style>
-
-    <Style Selector="^[(ProportionalStackPanelSplitter.IsEmpty)=True] /template/ DockableControl#PART_DockableControl">
-      <Setter Property="Background" Value="Red" />
-    </Style>
-        -->
-    </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 64
Avalonia/SukiUI.Dock/ToolPinItemControl.axaml

@@ -1,64 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:core="using:Dock.Model.Core">
-  <Design.PreviewWith>
-    <ToolPinItemControl Width="30" Height="400" />
-  </Design.PreviewWith>
-
-  <ContextMenu x:Key="ToolPinItemControlContextMenu" x:DataType="core:IDockable" x:CompileBindings="True">
-    <MenuItem Header="_Float"
-              Command="{Binding Owner.Factory.FloatDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanFloat}"/>
-    <MenuItem Header="_Show"
-              Command="{Binding Owner.Factory.PreviewPinnedDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanPin}"/>
-    <MenuItem Header="_Close"
-              Command="{Binding Owner.Factory.CloseDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-  </ContextMenu>
-
-  <ControlTheme x:Key="{x:Type ToolPinItemControl}" TargetType="ToolPinItemControl">
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        
-        <DockableControl TrackingMode="Pinned"
-                         x:DataType="core:IDockable"
-                         x:CompileBindings="True">
-          <LayoutTransformControl x:Name="PART_LayoutTransformControl">
-            <Button Background="Transparent"
-                    BorderBrush="Transparent"
-                    BorderThickness="0"
-                    CornerRadius="0"
-                    Command="{Binding Owner.Factory.PreviewPinnedDockable}"
-                    CommandParameter="{Binding}"
-                    IsVisible="{Binding CanPin}">
-              <TextBlock Text="{Binding Title}"
-                         VerticalAlignment="Center"
-                         HorizontalAlignment="Left"
-                         ContextMenu="{DynamicResource ToolPinItemControlContextMenu}">
-              </TextBlock>
-            </Button>
-          </LayoutTransformControl>
-        </DockableControl>
-      </ControlTemplate>
-    </Setter>
-
-    <Style Selector="^[Orientation=Vertical]/template/ LayoutTransformControl#PART_LayoutTransformControl">
-      <Setter Property="LayoutTransform">
-        <RotateTransform Angle="270" />
-      </Setter>
-    </Style>
-
-    <Style Selector="^[Orientation=Horizontal]/template/ LayoutTransformControl#PART_LayoutTransformControl">
-      <Setter Property="LayoutTransform">
-        <RotateTransform Angle="0" />
-      </Setter>
-    </Style>
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 34
Avalonia/SukiUI.Dock/ToolPinnedControl.axaml

@@ -1,34 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:dmc="using:Dock.Model.Controls"
-                    xmlns:core="using:Dock.Model.Core">
-  <Design.PreviewWith>
-    <ToolPinnedControl Width="30" Height="400" />
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="{x:Type ToolPinnedControl}" TargetType="ToolPinnedControl">
-
-    <Setter Property="Orientation" Value="Vertical" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        <ItemsControl ItemsSource="{TemplateBinding Items}"
-                      x:DataType="dmc:IRootDock"
-                      x:CompileBindings="True">
-          <ItemsControl.ItemsPanel>
-            <ItemsPanelTemplate>
-              <StackPanel Orientation="{Binding $parent[ToolPinnedControl].Orientation}"
-                          DockProperties.IsDropArea="True" />
-            </ItemsPanelTemplate>
-          </ItemsControl.ItemsPanel>
-          <ItemsControl.DataTemplates>
-            <DataTemplate DataType="core:IDockable">
-              <ToolPinItemControl Orientation="{Binding $parent[ToolPinnedControl].Orientation}" />
-            </DataTemplate>
-          </ItemsControl.DataTemplates>
-        </ItemsControl>
-      </ControlTemplate>
-    </Setter>
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 57
Avalonia/SukiUI.Dock/ToolTabStrip.axaml

@@ -1,57 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-  <Design.PreviewWith>
-    <Border Padding="20">
-      <ToolTabStrip>
-        <ToolTabStripItem>Item 1</ToolTabStripItem>
-        <ToolTabStripItem>Item 2</ToolTabStripItem>
-        <ToolTabStripItem IsEnabled="False">Disabled</ToolTabStripItem>
-      </ToolTabStrip>
-    </Border>
-  </Design.PreviewWith>
-
-  <ControlTheme x:Key="{x:Type ToolTabStrip}" TargetType="ToolTabStrip">
-
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="Focusable" Value="False" />
-    <Setter Property="ClipToBounds" Value="False" />
-    <Setter Property="ZIndex" Value="1" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-       
-        <DockPanel>
-          <Border Name="PART_Border"
-                  Background="{TemplateBinding Background}"
-                  BorderBrush="Red"
-                  BorderThickness="0"
-                  CornerRadius="{TemplateBinding CornerRadius}"
-                  Padding="{TemplateBinding Padding}"
-                  DockPanel.Dock="Left">
-            <ItemsPresenter Name="PART_ItemsPresenter"
-                            ItemsPanel="{TemplateBinding ItemsPanel}"/>
-          </Border>
-          <Border Name="PART_BorderFill" />
-        </DockPanel>
-          
-      </ControlTemplate>
-    </Setter>
-
-    <Setter Property="ItemsPanel">
-      <ItemsPanelTemplate>
-        <StackPanel Orientation="Horizontal" ClipToBounds="False" />
-      </ItemsPanelTemplate>
-    </Setter>
-
-    <Style Selector="^:singleitem /template/ ItemsPresenter#PART_ItemsPresenter">
-      <Setter Property="IsVisible" Value="False" />
-    </Style>
-
-    <Style Selector="^/template/ Border#PART_BorderFill">
-      <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
-      <Setter Property="BorderThickness" Value="0 0 0  0" />
-    </Style>
-
-  </ControlTheme>
-
-</ResourceDictionary>

+ 0 - 109
Avalonia/SukiUI.Dock/ToolTabStripItem.axaml

@@ -1,109 +0,0 @@
-<ResourceDictionary xmlns="https://github.com/avaloniaui"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:dmc="using:Dock.Model.Controls"
-                    xmlns:suki="https://github.com/kikipoulet/SukiUI"
-                    x:CompileBindings="True">
-  <Design.PreviewWith>
-    <Border Padding="20">
-      <StackPanel Spacing="20">
-        <ToolTabStripItem>Leaf</ToolTabStripItem>
-        <ToolTabStripItem IsSelected="True">Arch</ToolTabStripItem>
-        <ToolTabStripItem Background="Yellow">Background</ToolTabStripItem>
-      </StackPanel>
-    </Border>
-  </Design.PreviewWith>
-
-  <x:Double x:Key="TabStripItemMinHeight">48</x:Double>
-  <x:Double x:Key="TabStripItemPipeThickness">2</x:Double>
-
-  <ContextMenu x:Key="ToolTabStripItemContextMenu" x:DataType="dmc:IToolDock" x:CompileBindings="True">
-    <MenuItem Header="_Float"
-              Command="{Binding Owner.Factory.FloatDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanFloat}"/>
-    <MenuItem Header="_Dock"
-              Command="{Binding Owner.Factory.PinDockable}"
-              CommandParameter="{Binding}"
-              IsEnabled="{Binding OriginalOwner, Converter={x:Static ObjectConverters.IsNotNull}, FallbackValue=False}"
-              IsVisible="{Binding CanPin, FallbackValue=False}"/>
-    <MenuItem Header="_Auto Hide"
-              Command="{Binding Owner.Factory.PinDockable}"
-              CommandParameter="{Binding }"
-              IsEnabled="{Binding OriginalOwner, Converter={x:Static ObjectConverters.IsNull}, FallbackValue=False}">
-      <MenuItem.IsVisible>
-        <MultiBinding Converter="{x:Static BoolConverters.And}">
-          <Binding Path="CanPin" FallbackValue="{x:False}" />
-          <Binding Path="$parent[HostWindow]" Converter="{x:Static ObjectConverters.IsNull}" />
-        </MultiBinding>
-      </MenuItem.IsVisible>
-    </MenuItem>
-    <MenuItem Header="_Close"
-              Command="{Binding Owner.Factory.CloseDockable}"
-              CommandParameter="{Binding}"
-              IsVisible="{Binding CanClose}"/>
-  </ContextMenu>
-  
-  <ControlTheme x:Key="{x:Type ToolTabStripItem}" TargetType="ToolTabStripItem">
-
-    <Setter Property="(TextElement.FontSize)" Value="{DynamicResource DockFontSizeNormal}" />
-    <Setter Property="FontWeight" Value="Normal" />
-    <Setter Property="MinHeight" Value="0" />
-    <Setter Property="VerticalContentAlignment" Value="Center" />
-    <Setter Property="Background" Value="Transparent" />
-    <Setter Property="Foreground" Value="{DynamicResource DockThemeForegroundBrush}" />
-    <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
-    <Setter Property="BorderThickness" Value="0 0 0 0" />
-    <Setter Property="Margin" Value="0" />
-    <Setter Property="Padding" Value="4 1 4 0" />
-
-    <Setter Property="Template">
-      <ControlTemplate>
-        <Panel Margin="0,5" >
-          <Border Name="SelectedBorder" IsVisible="False"
-                  Margin="6,0"
-                  Padding="0"
-                 
-                  CornerRadius="8">
-            <suki:GlassCard Classes="Control" CornerRadius="8" >
-             
-            </suki:GlassCard>
-          </Border>
-        <Border Margin="12,4" Background="{TemplateBinding Background}"
-                TextElement.FontFamily="{TemplateBinding FontFamily}"
-                TextElement.FontSize="{TemplateBinding FontSize}"
-                TextElement.FontWeight="{TemplateBinding FontWeight}"
-                BorderBrush="{TemplateBinding BorderBrush}"
-                BorderThickness="0"
-                Padding="{TemplateBinding Padding}"
-                ContextMenu="{DynamicResource ToolTabStripItemContextMenu}"
-                x:DataType="dmc:IToolDock" x:CompileBindings="True">
-            <DockableControl TrackingMode="Tab">
-              <StackPanel x:Name="DragTool"
-                          Background="Transparent"
-                          Orientation="Horizontal"
-                          Spacing="2"
-                          DockProperties.IsDragArea="True"
-                          DockProperties.IsDropArea="True">
-                <Panel Margin="2">
-                  <ContentPresenter FontWeight="DemiBold"  ContentTemplate="{Binding $parent[ToolControl].HeaderTemplate}"
-                                    Content="{Binding}" />
-                </Panel>
-              </StackPanel>
-            </DockableControl>
-          </Border>
-         </Panel>
-      </ControlTemplate>
-    </Setter>
-    
-
-    <Style Selector="^:selected /template/ Border#SelectedBorder">
-      <Setter Property="IsVisible" Value="True"></Setter>
-      
-    </Style>
-
-
-  
-    
-  </ControlTheme>
-
-</ResourceDictionary>

+ 2 - 1
Language/Zh-CN/Language.axaml

@@ -96,7 +96,8 @@
     <s:String x:Key="DeviceIP">IP地址</s:String>
     <s:String x:Key="DevicePort">端口</s:String>
     <s:String x:Key="DeviceSearch">搜索设备</s:String>
-    <s:String x:Key="DeviceSearching">正在搜索</s:String>
+    <s:String x:Key="FindedDeviceInfo">找到设备</s:String>
+    <s:String x:Key="DeviceSearching">正在搜索设备</s:String>
     <s:String x:Key="DeviceNoFound">未找到任何设备</s:String>
     <s:String x:Key="DeviceConnect">连接设备</s:String>
     <s:String x:Key="DisConnect">连接断开</s:String>

+ 4 - 0
Shaker.Model/Models/DeviceInfoModel.cs

@@ -12,6 +12,10 @@ namespace Shaker.Models
         public string SN = string.Empty;
         public string IP = "127.0.0.1";
         public int Port = 5555;
+        public override string ToString()
+        {
+            return $"{Name}[{IP}:{Port}]-{SN}";
+        }
         public override object Clone()
         {
             return this.CloneBase();