mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Update packages
This commit is contained in:
parent
ff55168f23
commit
ca1e3ce365
3
src/.idea/.idea.Artemis/.idea/avalonia.xml
generated
3
src/.idea/.idea.Artemis/.idea/avalonia.xml
generated
@ -4,8 +4,11 @@
|
||||
<option name="projectPerEditor">
|
||||
<map>
|
||||
<entry key="Artemis.UI.Avalonia/App.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Home/Views/HomeView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Main/Sidebar/Views/SidebarView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Main/Views/MainWindow.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Root/Views/RootView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Root/Views/SidebarCategoryView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Sidebar/SidebarView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Sidebar/Views/SidebarCategoryView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
<entry key="Artemis.UI.Avalonia/Screens/Sidebar/Views/SidebarProfileConfigurationView.axaml" value="Artemis.UI.Avalonia/Artemis.UI.Avalonia.csproj" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
@ -7,11 +7,12 @@
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactions" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactions" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="0.10.10" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@ -28,6 +28,7 @@ namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
private readonly List<DeviceVisualizerLed> _deviceVisualizerLeds;
|
||||
private readonly DispatcherTimer _timer;
|
||||
|
||||
private Rect _deviceBounds;
|
||||
private RenderTargetBitmap? _deviceImage;
|
||||
private List<DeviceVisualizerLed>? _dimmedLeds;
|
||||
private List<DeviceVisualizerLed>? _highlightedLeds;
|
||||
@ -48,35 +49,30 @@ namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
if (Device == null)
|
||||
return;
|
||||
|
||||
List<DrawingContext.PushedState> pushes = new(4);
|
||||
|
||||
// Determine the scale required to fit the desired size of the control
|
||||
Rect measureSize = MeasureDevice();
|
||||
double scale = Math.Min(Bounds.Width / measureSize.Width, Bounds.Height / measureSize.Height);
|
||||
double scale = Math.Min(Bounds.Width / _deviceBounds.Width, Bounds.Height / _deviceBounds.Height);
|
||||
|
||||
// Scale the visualization in the desired bounding box
|
||||
|
||||
DrawingContext.PushedState? boundsPush = null;
|
||||
if (Bounds.Width > 0 && Bounds.Height > 0)
|
||||
pushes.Add(drawingContext.PushPostTransform(Matrix.CreateScale(scale, scale)));
|
||||
boundsPush = drawingContext.PushPostTransform(Matrix.CreateScale(scale, scale));
|
||||
|
||||
// Apply device rotation
|
||||
pushes.Add(drawingContext.PushPostTransform(Matrix.CreateTranslation(0 - measureSize.Left, 0 - measureSize.Top)));
|
||||
pushes.Add(drawingContext.PushPostTransform(Matrix.CreateRotation(Device.Rotation)));
|
||||
using DrawingContext.PushedState translationPush = drawingContext.PushPostTransform(Matrix.CreateTranslation(0 - _deviceBounds.Left, 0 - _deviceBounds.Top));
|
||||
using DrawingContext.PushedState rotationPush = drawingContext.PushPostTransform(Matrix.CreateRotation(Device.Rotation));
|
||||
|
||||
// Apply device scale
|
||||
pushes.Add(drawingContext.PushPostTransform(Matrix.CreateScale(Device.Scale, Device.Scale)));
|
||||
using DrawingContext.PushedState scalePush = drawingContext.PushPostTransform(Matrix.CreateScale(Device.Scale, Device.Scale));
|
||||
|
||||
// Render device and LED images
|
||||
if (_deviceImage != null)
|
||||
drawingContext.DrawImage(_deviceImage, new Rect(0, 0, Device.RgbDevice.ActualSize.Width, Device.RgbDevice.ActualSize.Height));
|
||||
|
||||
foreach (DeviceVisualizerLed deviceVisualizerLed in _deviceVisualizerLeds)
|
||||
deviceVisualizerLed.RenderGeometry(drawingContext);
|
||||
deviceVisualizerLed.RenderGeometry(drawingContext, false);
|
||||
|
||||
for (int index = pushes.Count - 1; index >= 0; index--)
|
||||
{
|
||||
DrawingContext.PushedState pushedState = pushes[index];
|
||||
pushedState.Dispose();
|
||||
}
|
||||
boundsPush?.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -244,6 +240,7 @@ namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
}
|
||||
|
||||
_oldDevice = Device;
|
||||
_deviceBounds = MeasureDevice();
|
||||
|
||||
Device.RgbDevice.PropertyChanged += DevicePropertyChanged;
|
||||
Device.DeviceUpdated += DeviceUpdated;
|
||||
|
||||
@ -18,8 +18,6 @@ namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
private readonly SolidColorBrush _penBrush;
|
||||
private readonly SolidColorBrush _fillBrush;
|
||||
private readonly Pen _pen;
|
||||
private const byte Dimmed = 100;
|
||||
private const byte NonDimmed = 255;
|
||||
|
||||
public DeviceVisualizerLed(ArtemisLed led)
|
||||
{
|
||||
@ -64,13 +62,22 @@ namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
}
|
||||
}
|
||||
|
||||
public void RenderGeometry(DrawingContext drawingContext)
|
||||
public void RenderGeometry(DrawingContext drawingContext, bool dimmed)
|
||||
{
|
||||
byte r = Led.RgbLed.Color.GetR();
|
||||
byte g = Led.RgbLed.Color.GetG();
|
||||
byte b = Led.RgbLed.Color.GetB();
|
||||
|
||||
if (dimmed)
|
||||
{
|
||||
_fillBrush.Color = new Color(50, r, g, b);
|
||||
_penBrush.Color = new Color(100, r, g, b);
|
||||
}
|
||||
else
|
||||
{
|
||||
_fillBrush.Color = new Color(100, r, g, b);
|
||||
_penBrush.Color = new Color(255, r, g, b);
|
||||
}
|
||||
|
||||
// Render the LED geometry
|
||||
drawingContext.DrawGeometry(_fillBrush, _pen, DisplayGeometry);
|
||||
|
||||
193
src/Artemis.UI.Avalonia.Shared/Controls/SelectionRectangle.cs
Normal file
193
src/Artemis.UI.Avalonia.Shared/Controls/SelectionRectangle.cs
Normal file
@ -0,0 +1,193 @@
|
||||
using System;
|
||||
using System.Windows.Input;
|
||||
using Artemis.Core;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Media;
|
||||
using FluentAvalonia.Styling;
|
||||
|
||||
namespace Artemis.UI.Avalonia.Shared.Controls
|
||||
{
|
||||
/// <summary>
|
||||
/// Visualizes an <see cref="ArtemisDevice" /> with optional per-LED colors
|
||||
/// </summary>
|
||||
public class SelectionRectangle : Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the <see cref="Background" /> property.
|
||||
/// </summary>
|
||||
public static readonly StyledProperty<IBrush> BackgroundProperty =
|
||||
AvaloniaProperty.Register<SelectionRectangle, IBrush>(nameof(Background),
|
||||
new SolidColorBrush(AvaloniaLocator.Current.GetService<FluentAvaloniaTheme>().CustomAccentColor ?? Colors.Transparent, 0.25));
|
||||
|
||||
/// <summary>
|
||||
/// Defines the <see cref="BorderBrush" /> property.
|
||||
/// </summary>
|
||||
public static readonly StyledProperty<IBrush> BorderBrushProperty =
|
||||
AvaloniaProperty.Register<SelectionRectangle, IBrush>(nameof(BorderBrush),
|
||||
new SolidColorBrush(AvaloniaLocator.Current.GetService<FluentAvaloniaTheme>().CustomAccentColor ?? Colors.Transparent));
|
||||
|
||||
/// <summary>
|
||||
/// Defines the <see cref="BorderBrush" /> property.
|
||||
/// </summary>
|
||||
public static readonly StyledProperty<double> BorderThicknessProperty =
|
||||
AvaloniaProperty.Register<SelectionRectangle, double>(nameof(BorderThickness), 1);
|
||||
|
||||
/// <summary>
|
||||
/// Defines the <see cref="get_InputElement" /> property.
|
||||
/// </summary>
|
||||
public static readonly StyledProperty<IControl?> InputElementProperty =
|
||||
AvaloniaProperty.Register<SelectionRectangle, IControl?>(nameof(InputElement), notifying: OnInputElementChanged);
|
||||
|
||||
public static readonly StyledProperty<ICommand?> SelectionUpdatedProperty
|
||||
= AvaloniaProperty.Register<SelectionRectangle, ICommand?>(nameof(SelectionUpdated));
|
||||
|
||||
public static readonly StyledProperty<ICommand?> SelectionFinishedProperty
|
||||
= AvaloniaProperty.Register<SelectionRectangle, ICommand?>(nameof(SelectionUpdated));
|
||||
|
||||
private Rect? _displayRect;
|
||||
private IControl? _oldInputElement;
|
||||
private Point _startPosition;
|
||||
|
||||
/// <inheritdoc />
|
||||
public SelectionRectangle()
|
||||
{
|
||||
AffectsRender<TextBlock>(BackgroundProperty, BorderBrushProperty, BorderThicknessProperty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a brush used to paint the control's background.
|
||||
/// </summary>
|
||||
public IBrush Background
|
||||
{
|
||||
get => GetValue(BackgroundProperty);
|
||||
set => SetValue(BackgroundProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a brush used to paint the control's border
|
||||
/// </summary>
|
||||
public IBrush BorderBrush
|
||||
{
|
||||
get => GetValue(BorderBrushProperty);
|
||||
set => SetValue(BorderBrushProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the width of the control's border
|
||||
/// </summary>
|
||||
public double BorderThickness
|
||||
{
|
||||
get => GetValue(BorderThicknessProperty);
|
||||
set => SetValue(BorderThicknessProperty, value);
|
||||
}
|
||||
|
||||
public IControl? InputElement
|
||||
{
|
||||
get => GetValue(InputElementProperty);
|
||||
set => SetValue(InputElementProperty, value);
|
||||
}
|
||||
|
||||
public ICommand? SelectionUpdated
|
||||
{
|
||||
get => GetValue(SelectionUpdatedProperty);
|
||||
set => SetValue(SelectionUpdatedProperty, value);
|
||||
}
|
||||
|
||||
public ICommand? SelectionFinished
|
||||
{
|
||||
get => GetValue(SelectionFinishedProperty);
|
||||
set => SetValue(SelectionFinishedProperty, value);
|
||||
}
|
||||
|
||||
private static void OnInputElementChanged(IAvaloniaObject sender, bool before)
|
||||
{
|
||||
((SelectionRectangle) sender).SubscribeToInputElement();
|
||||
}
|
||||
|
||||
private void ParentOnPointerPressed(object? sender, PointerPressedEventArgs e)
|
||||
{
|
||||
e.Pointer.Capture(this);
|
||||
|
||||
_startPosition = e.GetPosition(Parent);
|
||||
_displayRect = null;
|
||||
}
|
||||
|
||||
private void ParentOnPointerMoved(object? sender, PointerEventArgs e)
|
||||
{
|
||||
if (!ReferenceEquals(e.Pointer.Captured, this))
|
||||
return;
|
||||
|
||||
Point currentPosition = e.GetPosition(Parent);
|
||||
_displayRect = new Rect(
|
||||
new Point(Math.Min(_startPosition.X, currentPosition.X), Math.Min(_startPosition.Y, currentPosition.Y)),
|
||||
new Point(Math.Max(_startPosition.X, currentPosition.X), Math.Max(_startPosition.Y, currentPosition.Y))
|
||||
);
|
||||
SelectionUpdated?.Execute(_displayRect.Value);
|
||||
|
||||
InvalidateVisual();
|
||||
}
|
||||
|
||||
private void ParentOnPointerReleased(object? sender, PointerReleasedEventArgs e)
|
||||
{
|
||||
e.Pointer.Capture(null);
|
||||
|
||||
if (_displayRect != null)
|
||||
SelectionFinished?.Execute(_displayRect.Value);
|
||||
|
||||
_displayRect = null;
|
||||
InvalidateVisual();
|
||||
}
|
||||
|
||||
private void SubscribeToInputElement()
|
||||
{
|
||||
if (_oldInputElement != null)
|
||||
{
|
||||
_oldInputElement.PointerPressed -= ParentOnPointerPressed;
|
||||
_oldInputElement.PointerMoved -= ParentOnPointerMoved;
|
||||
_oldInputElement.PointerReleased -= ParentOnPointerReleased;
|
||||
}
|
||||
|
||||
_oldInputElement = InputElement;
|
||||
|
||||
if (InputElement != null)
|
||||
{
|
||||
InputElement.PointerPressed += ParentOnPointerPressed;
|
||||
InputElement.PointerMoved += ParentOnPointerMoved;
|
||||
InputElement.PointerReleased += ParentOnPointerReleased;
|
||||
}
|
||||
}
|
||||
|
||||
#region Overrides of Visual
|
||||
|
||||
public override void Render(DrawingContext drawingContext)
|
||||
{
|
||||
if (_displayRect != null)
|
||||
drawingContext.DrawRectangle(Background, new Pen(BorderBrush, BorderThickness), _displayRect.Value);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
|
||||
{
|
||||
SubscribeToInputElement();
|
||||
base.OnAttachedToVisualTree(e);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
|
||||
{
|
||||
if (_oldInputElement != null)
|
||||
{
|
||||
_oldInputElement.PointerPressed -= ParentOnPointerPressed;
|
||||
_oldInputElement.PointerMoved -= ParentOnPointerMoved;
|
||||
_oldInputElement.PointerReleased -= ParentOnPointerReleased;
|
||||
_oldInputElement = null;
|
||||
}
|
||||
|
||||
base.OnDetachedFromVisualTree(e);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using Avalonia;
|
||||
|
||||
namespace Artemis.UI.Avalonia.Shared.Events
|
||||
{
|
||||
public class SelectionRectangleEventArgs : EventArgs
|
||||
{
|
||||
public SelectionRectangleEventArgs(Rect rect)
|
||||
{
|
||||
Rect = rect;
|
||||
}
|
||||
|
||||
public Rect Rect { get; }
|
||||
}
|
||||
}
|
||||
@ -4,11 +4,11 @@
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"Avalonia": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "/m31yPKz7iqV5thzlLGi8ERgiTV+FYl7NePafwDpN41aLwz8u4rrTviWm9QJH78cwj8tGCf9Pqp8Nm0fckfAZA==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "wHkEiuUKDNbgzR6VOAMmKcvunRnAX2CpZeZHTjMUqvTHEHaBFsqpinabmQ2ABtxBkdQF7Lyv6AgoS6dlM9eowQ==",
|
||||
"dependencies": {
|
||||
"Avalonia.Remote.Protocol": "0.10.8",
|
||||
"Avalonia.Remote.Protocol": "0.10.10",
|
||||
"JetBrains.Annotations": "10.3.0",
|
||||
"System.ComponentModel.Annotations": "4.5.0",
|
||||
"System.Memory": "4.5.3",
|
||||
@ -31,32 +31,43 @@
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "3nkh36Qp9fK8/Fh/nxqaVMlAzj8iuH5RUcs2rTrcyqn1WPJTslwQrxk+HDMYneuBE9+Oi31ZWiZImEM9kEQN7w==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Xaml.Interactions": "0.10.8",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "3pXshQ1pNr+ul7Q2Sn6jjWMHOgRM2uKsUCh95QD2O2wpjgxpRpqiNEy1xPv2+bX2FMWTQIaOdQ8eNM8EunAWMg==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "ObL26GjME53R3KRkGB97dIB3jwGzyNS/7Www8fZjCEbK4AnjXVgzyw7gkHNsHD9DEZArovvURQI0qvvz3tb24g==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.1.5, )",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
}
|
||||
},
|
||||
"Material.Icons.Avalonia": {
|
||||
@ -69,23 +80,100 @@
|
||||
"Material.Icons": "1.0.2"
|
||||
}
|
||||
},
|
||||
"Avalonia.Angle.Windows.Natives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.1.0.2020091801",
|
||||
"contentHash": "nGsCPI8FuUknU/e6hZIqlsKRDxClXHZyztmgM8vuwslFC/BIV3LqM2wKefWbr6SORX4Lct4nivhSMkdF/TrKgg=="
|
||||
},
|
||||
"Avalonia.Controls.DataGrid": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "AiBcvRi6Dbu0q45l2rQYa0uh05VsM2NYtjrAi2KKjDlu7c9molsZ2hFAKzhf0ugxgRT5tLMHAUA2urCWCzDzFw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Remote.Protocol": "0.10.9",
|
||||
"JetBrains.Annotations": "10.3.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.Desktop": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "RWWfnBpslILJEqrdVySJP4leZfINXNiTIsNVEs/pKM5cBM/rwlCAKnfKASKgkbAfBByknUpmJd4PgLoavabz3w==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Native": "0.10.9",
|
||||
"Avalonia.Skia": "0.10.9",
|
||||
"Avalonia.Win32": "0.10.9",
|
||||
"Avalonia.X11": "0.10.9"
|
||||
}
|
||||
},
|
||||
"Avalonia.Diagnostics": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "Zc6iMO1TLRMvEi7pwRnpq/jlPyHvz0HotrJelyQs3VYzbrLxNy4YvLfiuWeIT9b3DCozD7V8blzgN7NSBU2mPg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Controls.DataGrid": "0.10.9",
|
||||
"Microsoft.CodeAnalysis.CSharp.Scripting": "3.4.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "SG1hwJNktnCrDK4COtL+IArd2CbAlHBDAYP8wnTEVfnmrAsGvSijvICN8jrNRQnomYRNgA5TjsEFq5Vz8Z9PPQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Tmds.DBus": "0.9.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.Native": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "IOZ7S7o2F2STZAj2uTve4nnnF008CK4/nGSqvYxXyM0X3jK4yCkhydbBN7jmItDfD7hR0h+CQfRUS7qekTNlEQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9"
|
||||
}
|
||||
},
|
||||
"Avalonia.Remote.Protocol": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "flpM/ZF2vkzbHbmSKdq6qWxy/bw/2C1k3Oc73ewlUdwBUWMov6mX99yUWNNI26oYrgD2fpaRhHMukcoSCYqbuQ=="
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "ZGxDGtIj4SU361ILVBQFd4kqimya7x+aris3CRCzbJuwUXl6bRlQa8MVqsCVx1y1wwnkhteCAS2IEnHHQ/Vghw=="
|
||||
},
|
||||
"Avalonia.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "FsCeOhzDCE4GJnqBGzH/54tqsn0j39Xpkdf3TmuC0MZzjW82Me3GUGeO25E9zs7sEMtX0MKWocmBx6c6ADcGXA==",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "NMnwpHg98IgBG334GOD/lOiXZhXnKEuwCV3ztFwURg3IDKdL+erSW7VM/2rpKm6d914j627UvRaAkvMWht2K6g==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.9",
|
||||
"HarfBuzzSharp": "2.6.1.7",
|
||||
"HarfBuzzSharp.NativeAssets.Linux": "2.6.1.7",
|
||||
"SkiaSharp": "2.80.2",
|
||||
"SkiaSharp.NativeAssets.Linux": "2.80.2"
|
||||
}
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "hZtdaEyqynFCCoYT/NCZxeE4KajJodLZCzUThv9/diZFqxYsasEQjguDVeTvLaNBVjqxsZXt35C3D72fjDzPww==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Angle.Windows.Natives": "2.1.0.2020091801",
|
||||
"System.Drawing.Common": "4.5.0",
|
||||
"System.Numerics.Vectors": "4.5.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.X11": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.9",
|
||||
"contentHash": "+PoPHSmAhIcxQ1qmxc2kfbBr7Dxddaqi8FNrbCk2dqvEdQAeaxBswYupSoIARtpDE0wqtrXXneWeAnHxl/YgMw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.FreeDesktop": "0.10.9",
|
||||
"Avalonia.Skia": "0.10.9"
|
||||
}
|
||||
},
|
||||
"Castle.Core": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
@ -172,6 +260,75 @@
|
||||
"Microsoft.Extensions.DependencyModel": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Analyzers": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.9.6",
|
||||
"contentHash": "Kmms3TxGQMNb95Cu/3K+0bIcMnV4qf/phZBLAB0HUi65rBPxP4JO3aM2LoAcb+DFS600RQJMZ7ZLyYDTbLwJOQ=="
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Common": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.4.0",
|
||||
"contentHash": "3ncA7cV+iXGA1VYwe2UEZXcvWyZSlbexWjM9AvocP7sik5UD93qt9Hq0fMRGk0jFRmvmE4T2g+bGfXiBVZEhLw==",
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Analyzers": "2.9.6",
|
||||
"System.Collections.Immutable": "1.5.0",
|
||||
"System.Memory": "4.5.3",
|
||||
"System.Reflection.Metadata": "1.6.0",
|
||||
"System.Runtime.CompilerServices.Unsafe": "4.5.2",
|
||||
"System.Text.Encoding.CodePages": "4.5.1",
|
||||
"System.Threading.Tasks.Extensions": "4.5.3"
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.CSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.4.0",
|
||||
"contentHash": "/LsTtgcMN6Tu1oo7/WYbRAHL4/ubXC/miEakwTpcZKJKtFo7D0AK95Hw0dbGxul6C8WJu60v6NP2435TDYZM+Q==",
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Common": "[3.4.0]"
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.CSharp.Scripting": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.4.0",
|
||||
"contentHash": "tLgqc76qXHmONUhWhxo7z3TcL/LmGFWIUJm1exbQmVJohuQvJnejUMxmVkdxDfMuMZU1fIyJXPZ6Fkp4FEneAg==",
|
||||
"dependencies": {
|
||||
"Microsoft.CSharp": "4.3.0",
|
||||
"Microsoft.CodeAnalysis.CSharp": "[3.4.0]",
|
||||
"Microsoft.CodeAnalysis.Common": "[3.4.0]",
|
||||
"Microsoft.CodeAnalysis.Scripting.Common": "[3.4.0]"
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Scripting.Common": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.4.0",
|
||||
"contentHash": "+b6I3DZL2zvck+B/E/aiOveakj5U2G2BcYODQxcGh2IDbatNU3XXxGT1HumkWB5uIZI2Leu0opBgBpjScmjGMA==",
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Common": "[3.4.0]"
|
||||
}
|
||||
},
|
||||
"Microsoft.CSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Dynamic.Runtime": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Linq": "4.3.0",
|
||||
"System.Linq.Expressions": "4.3.0",
|
||||
"System.ObjectModel": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Extensions": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Reflection.TypeExtensions": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.DotNet.PlatformAbstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.6",
|
||||
@ -538,6 +695,11 @@
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Collections.Immutable": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.5.0",
|
||||
"contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ=="
|
||||
},
|
||||
"System.Collections.NonGeneric": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
@ -959,15 +1121,8 @@
|
||||
},
|
||||
"System.Reflection.Emit": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
|
||||
"dependencies": {
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
"resolved": "4.7.0",
|
||||
"contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
|
||||
},
|
||||
"System.Reflection.Emit.ILGeneration": {
|
||||
"type": "Transitive",
|
||||
@ -1277,6 +1432,15 @@
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.CodePages": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.1",
|
||||
"contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "2.1.2",
|
||||
"System.Runtime.CompilerServices.Unsafe": "4.5.2"
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
@ -1317,13 +1481,8 @@
|
||||
},
|
||||
"System.Threading.Tasks.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
"resolved": "4.5.3",
|
||||
"contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ=="
|
||||
},
|
||||
"System.Threading.Timer": {
|
||||
"type": "Transitive",
|
||||
@ -1398,6 +1557,15 @@
|
||||
"System.Xml.ReaderWriter": "4.3.0"
|
||||
}
|
||||
},
|
||||
"Tmds.DBus": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.9.0",
|
||||
"contentHash": "KcTWL9aKuob9Qo2sOTTKFePs1rKGTwZrcBvMFuGVIVR5RojX3oIFj5UBLYfSGjYgrcImC7LjQI3DdCFwUnhNXw==",
|
||||
"dependencies": {
|
||||
"System.Reflection.Emit": "4.7.0",
|
||||
"System.Security.Principal.Windows": "4.7.0"
|
||||
}
|
||||
},
|
||||
"Unosquare.Swan.Lite": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.0.0",
|
||||
|
||||
@ -13,13 +13,13 @@
|
||||
<None Remove="Assets\Images\home-banner.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="4.2.0" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.8" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
|
||||
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.3" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
|
||||
<PackageReference Include="Flurl.Http" Version="3.2.0" />
|
||||
<PackageReference Include="Live.Avalonia" Version="1.3.1" />
|
||||
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Reactive;
|
||||
using Artemis.Core;
|
||||
using Artemis.Core.Services;
|
||||
using Avalonia;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Avalonia.Screens.SurfaceEditor.ViewModels
|
||||
@ -11,8 +14,23 @@ namespace Artemis.UI.Avalonia.Screens.SurfaceEditor.ViewModels
|
||||
{
|
||||
DisplayName = "Surface Editor";
|
||||
Devices = new ObservableCollection<ArtemisDevice>(rgbService.Devices);
|
||||
|
||||
UpdateSelection = ReactiveCommand.Create<Rect>(ExecuteUpdateSelection);
|
||||
ApplySelection = ReactiveCommand.Create<Rect>(ExecuteApplySelection);
|
||||
}
|
||||
|
||||
public ObservableCollection<ArtemisDevice> Devices { get; }
|
||||
public ReactiveCommand<Rect, Unit> UpdateSelection { get; }
|
||||
public ReactiveCommand<Rect, Unit> ApplySelection { get; }
|
||||
|
||||
private void ExecuteUpdateSelection(Rect rect)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void ExecuteApplySelection(Rect rect)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -27,6 +27,7 @@
|
||||
</VisualBrush.Visual>
|
||||
</VisualBrush>
|
||||
</paz:ZoomBorder.Background>
|
||||
<Grid Background="Transparent">
|
||||
<ItemsControl Items="{Binding Devices}">
|
||||
<ItemsControl.Styles>
|
||||
<Style Selector="ContentPresenter">
|
||||
@ -41,11 +42,17 @@
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<controls:DeviceVisualizer
|
||||
Device="{Binding}" ShowColors="True" />
|
||||
<controls:DeviceVisualizer Device="{Binding}" ShowColors="True" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<controls:SelectionRectangle Name="SelectionRectangle"
|
||||
InputElement="{Binding #ZoomBorder}"
|
||||
SelectionUpdated="{Binding UpdateSelection}"
|
||||
SelectionFinished="{Binding ApplySelection}"/>
|
||||
</Grid>
|
||||
|
||||
</paz:ZoomBorder>
|
||||
|
||||
</UserControl>
|
||||
@ -1,4 +1,5 @@
|
||||
using Artemis.UI.Avalonia.Screens.SurfaceEditor.ViewModels;
|
||||
using Artemis.UI.Avalonia.Shared.Controls;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.PanAndZoom;
|
||||
@ -10,6 +11,7 @@ namespace Artemis.UI.Avalonia.Screens.SurfaceEditor.Views
|
||||
{
|
||||
public class SurfaceEditorView : ReactiveUserControl<SurfaceEditorViewModel>
|
||||
{
|
||||
private readonly SelectionRectangle _selectionRectangle;
|
||||
private readonly ZoomBorder _zoomBorder;
|
||||
|
||||
public SurfaceEditorView()
|
||||
@ -17,6 +19,8 @@ namespace Artemis.UI.Avalonia.Screens.SurfaceEditor.Views
|
||||
InitializeComponent();
|
||||
|
||||
_zoomBorder = this.Find<ZoomBorder>("ZoomBorder");
|
||||
_selectionRectangle = this.Find<SelectionRectangle>("SelectionRectangle");
|
||||
|
||||
((VisualBrush) _zoomBorder.Background).DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute);
|
||||
}
|
||||
|
||||
@ -28,6 +32,7 @@ namespace Artemis.UI.Avalonia.Screens.SurfaceEditor.Views
|
||||
private void ZoomBorder_OnZoomChanged(object sender, ZoomChangedEventArgs e)
|
||||
{
|
||||
((VisualBrush) _zoomBorder.Background).DestinationRect = new RelativeRect(_zoomBorder.OffsetX * -1, _zoomBorder.OffsetY * -1, 20, 20, RelativeUnit.Absolute);
|
||||
_selectionRectangle.BorderThickness = 1 / _zoomBorder.ZoomX;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,11 +4,11 @@
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"Avalonia": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "/m31yPKz7iqV5thzlLGi8ERgiTV+FYl7NePafwDpN41aLwz8u4rrTviWm9QJH78cwj8tGCf9Pqp8Nm0fckfAZA==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "wHkEiuUKDNbgzR6VOAMmKcvunRnAX2CpZeZHTjMUqvTHEHaBFsqpinabmQ2ABtxBkdQF7Lyv6AgoS6dlM9eowQ==",
|
||||
"dependencies": {
|
||||
"Avalonia.Remote.Protocol": "0.10.8",
|
||||
"Avalonia.Remote.Protocol": "0.10.10",
|
||||
"JetBrains.Annotations": "10.3.0",
|
||||
"System.ComponentModel.Annotations": "4.5.0",
|
||||
"System.Memory": "4.5.3",
|
||||
@ -28,36 +28,36 @@
|
||||
},
|
||||
"Avalonia.Desktop": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "DbY+6vMWR7i7mo5oVvPHhyui/LNsxfpXJaPNj3ka38EqcQOptZQI5DDrCHSAxGoFNrOsfNBTEs4Uv4rW5BW0Lg==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "K23aC2UxplUqbKvSehgcwLRU0dACRLSQGLs3bXKKW1n6ICXtWhwqSmx8a1Ju0PbbQISRfoc0IjHoAXlGRNZ1dA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Native": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8",
|
||||
"Avalonia.Win32": "0.10.8",
|
||||
"Avalonia.X11": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Native": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10",
|
||||
"Avalonia.Win32": "0.10.10",
|
||||
"Avalonia.X11": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Diagnostics": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "nBvcRd5RFDpRli5z/gEbuUKHEhp6NCTUo3PWQFEYi9hOIVIgCqwgEljc9oo7FGPBA6HDbUZGqoopwFhbLXi+pg==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "k4VA+uch7Xtd6kqp+A6XEpsVuARseIh6PQtarI3lxcTFFrNbxDZhD1nXUILXrnp44uQ7JPGpKYGlJ0EElfxhbA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Controls.DataGrid": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Controls.DataGrid": "0.10.10",
|
||||
"Microsoft.CodeAnalysis.CSharp.Scripting": "3.4.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.ReactiveUI": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.10.8, )",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "AnE4Rw9YQOLgHDK3TTkGXk3r4RCQgvYY/qMlspMfwdTyzJhvrjn7maDgAKhbs+m49Wr7dc9b1lfxqt7mNJWq/w==",
|
||||
"requested": "[0.10.10, )",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "hDMPhusehGxsHpwaFQwGOgEmAuFLp9VVnFDrX6Le1+8idpfxgHYWyzqo4uVYUiEO1OC2ab0Ik9Un/utLZcvh7w==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"ReactiveUI": "13.2.10",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
@ -76,13 +76,13 @@
|
||||
},
|
||||
"FluentAvaloniaUI": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.1.3, )",
|
||||
"resolved": "1.1.3",
|
||||
"contentHash": "SKobR7BxnOc2eZ/b+jWXRDDtCK0wqJVTn5zplkgJhaQN3re99RSD0KYtcOqTSnfotzE9SbN4D1mWkorCo18xiQ==",
|
||||
"requested": "[1.1.5, )",
|
||||
"resolved": "1.1.5",
|
||||
"contentHash": "1W1VZQaCeH4/kzNM2c9yPHAVVs9lW9/09bzz1lqu7Tvu79u9JCOjwkZmR8rGC0KbyOA7twwVr2/VvB84zDZYvA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.7",
|
||||
"Avalonia.Desktop": "0.10.7",
|
||||
"Avalonia.Diagnostics": "0.10.7"
|
||||
"Avalonia": "0.10.9",
|
||||
"Avalonia.Desktop": "0.10.9",
|
||||
"Avalonia.Diagnostics": "0.10.9"
|
||||
}
|
||||
},
|
||||
"Flurl.Http": {
|
||||
@ -132,43 +132,43 @@
|
||||
},
|
||||
"Avalonia.Controls.DataGrid": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "AWS/s+tEDUX0icnDdsMpk6NoLAZeq+QEIiDhleJkxMTitfwvYVJlXePaoOm4w8Oi134KV/fkj7aoiU3QRr/ltg==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "AsKm4xBJuCnIdUibNnsU5mNd6+kivhO5gEmpzO9+kNvVZCXxJkKZfmqS+9ghqXnF5c4BDYF5BPvPjZ1cP/jn7Q==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Remote.Protocol": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Remote.Protocol": "0.10.10",
|
||||
"JetBrains.Annotations": "10.3.0",
|
||||
"System.Reactive": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.FreeDesktop": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "QvkzItAsww8zZmKyEKXMmhIN+ZnV8h3FGikNhqWjvVHSDQkaZ2FfltQ+MH7011lO7z+igkNshXRBfs+HB2syXw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "pflbsb3CQkZH6T7NCG16Cu/LhA0kJD2ZvRprjzueIWonuS4pxF231Z2T3xv5LGaXpN44ufBjpMvlczCmb6sieQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Tmds.DBus": "0.9.0"
|
||||
}
|
||||
},
|
||||
"Avalonia.Native": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "FfIeLXDycQglDFqC6KnqgjPFCMZIemgPiB2ShZ8xzqwwFJFKd9WpOSDsEImASSqTVMra0se55vP/Ey2TO7ZVvA==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "pJ8mlzjtlhPA7ueHnCN4FjBmXZMXJ+hKG+6uLnz+3A879oGLei6yacYRVel80sVoIML1ir8A5InWL52ra1Qdag==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Remote.Protocol": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "flpM/ZF2vkzbHbmSKdq6qWxy/bw/2C1k3Oc73ewlUdwBUWMov6mX99yUWNNI26oYrgD2fpaRhHMukcoSCYqbuQ=="
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "ZGxDGtIj4SU361ILVBQFd4kqimya7x+aris3CRCzbJuwUXl6bRlQa8MVqsCVx1y1wwnkhteCAS2IEnHHQ/Vghw=="
|
||||
},
|
||||
"Avalonia.Skia": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "FsCeOhzDCE4GJnqBGzH/54tqsn0j39Xpkdf3TmuC0MZzjW82Me3GUGeO25E9zs7sEMtX0MKWocmBx6c6ADcGXA==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "8KtlObMQ+8pDMch6SMdPNpIWk9J0OaPjA7lbALEsDkRNb+XLDdIZXWbKle5Y6ASUEQhQGIX4DCP/8UYp7Us5zg==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"HarfBuzzSharp": "2.6.1.7",
|
||||
"HarfBuzzSharp.NativeAssets.Linux": "2.6.1.7",
|
||||
"SkiaSharp": "2.80.2",
|
||||
@ -177,10 +177,10 @@
|
||||
},
|
||||
"Avalonia.Win32": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "OUuzYGw4h+9KMvJZkX0bZbQ4T5TTkGdJSyfUdq/WTc4PFV0mp7fF+ofBMSVfFFDsw+7WmGJgN8ZqoPLGFFaPRw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "6AS6yIB+OS8+g96mj+ShJihjxqhVH6v7jfdqLwjQfGAsqqqN7zBNsFdvoVVCnutuVx0g/9FhCnBTIZyZDlwqkA==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Angle.Windows.Natives": "2.1.0.2020091801",
|
||||
"System.Drawing.Common": "4.5.0",
|
||||
"System.Numerics.Vectors": "4.5.0"
|
||||
@ -188,39 +188,39 @@
|
||||
},
|
||||
"Avalonia.X11": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "kjzH9q4ZfLIdSoVe9e5lABmpEGs85B7RSk3aynnMDHldwya8mDNOPD6urItNrxQgiU1vOzPXGNjt1WBtveyOkw==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "XsWWNYlKy3XJ8HFzCvv/2Ym8Ku72tN+JxbPX8lLBZSYzQEtvfKQ+DcKb8us1AWjXQhQQSrZQylrtVZ043a4SsQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.FreeDesktop": "0.10.8",
|
||||
"Avalonia.Skia": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.FreeDesktop": "0.10.10",
|
||||
"Avalonia.Skia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Behaviors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "3nkh36Qp9fK8/Fh/nxqaVMlAzj8iuH5RUcs2rTrcyqn1WPJTslwQrxk+HDMYneuBE9+Oi31ZWiZImEM9kEQN7w==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "rHDkieWZDTjG+PVGQzronzknmH24r2VDtzbNfC3O8FLZGqREsBoCRDrqW4R4bmtD6CqpDPBey5soBYnnDE1m3Q==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Xaml.Interactions": "0.10.8",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "3pXshQ1pNr+ul7Q2Sn6jjWMHOgRM2uKsUCh95QD2O2wpjgxpRpqiNEy1xPv2+bX2FMWTQIaOdQ8eNM8EunAWMg==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "bOJvciyk6kUjPx+mg6n+bwHQqRqgNiTDzTBkpokfkcWl9pMAlKvqqUe6YXWVCpKIDBjbzvkAbYa29S0ajqwFxw==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.8"
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Avalonia.Xaml.Interactivity": {
|
||||
"type": "Transitive",
|
||||
"resolved": "0.10.8",
|
||||
"contentHash": "ObL26GjME53R3KRkGB97dIB3jwGzyNS/7Www8fZjCEbK4AnjXVgzyw7gkHNsHD9DEZArovvURQI0qvvz3tb24g==",
|
||||
"resolved": "0.10.10",
|
||||
"contentHash": "xxWrpi0HsySczpU3Zl6c2ugbkTOs9qwqbvClfi/AKncoVbWpXv7W6J3kfQcfRlnKFwkTPjLyTYKVERIkb7kNCQ==",
|
||||
"dependencies": {
|
||||
"Avalonia": "0.10.8"
|
||||
"Avalonia": "0.10.10"
|
||||
}
|
||||
},
|
||||
"Castle.Core": {
|
||||
@ -1694,11 +1694,12 @@
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"Artemis.Core": "1.0.0",
|
||||
"Avalonia": "0.10.8",
|
||||
"Avalonia": "0.10.10",
|
||||
"Avalonia.Svg.Skia": "0.10.8.3",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.8",
|
||||
"Avalonia.Xaml.Interactions": "0.10.8",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.8",
|
||||
"Avalonia.Xaml.Behaviors": "0.10.10",
|
||||
"Avalonia.Xaml.Interactions": "0.10.10",
|
||||
"Avalonia.Xaml.Interactivity": "0.10.10",
|
||||
"FluentAvaloniaUI": "1.1.5",
|
||||
"Material.Icons.Avalonia": "1.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user