mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-31 17:53:32 +00:00
Added surface editor device sorting
This commit is contained in:
parent
10bc3f84dd
commit
7f49d2ae6d
@ -36,6 +36,7 @@ namespace Artemis.UI.ViewModels.Screens
|
|||||||
{
|
{
|
||||||
var device = new SurfaceDeviceViewModel(surfaceDevice) {Cursor = Cursors.Hand};
|
var device = new SurfaceDeviceViewModel(surfaceDevice) {Cursor = Cursors.Hand};
|
||||||
Devices.Add(device);
|
Devices.Add(device);
|
||||||
|
device.ZIndex = Devices.IndexOf(device) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,6 +57,7 @@ namespace Artemis.UI.ViewModels.Screens
|
|||||||
{
|
{
|
||||||
var device = new SurfaceDeviceViewModel(e.Device) {Cursor = Cursors.Hand};
|
var device = new SurfaceDeviceViewModel(e.Device) {Cursor = Cursors.Hand};
|
||||||
Devices.Add(device);
|
Devices.Add(device);
|
||||||
|
device.ZIndex = Devices.IndexOf(device) + 1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -103,56 +105,47 @@ namespace Artemis.UI.ViewModels.Screens
|
|||||||
|
|
||||||
public void BringToFront(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
public void BringToFront(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
||||||
{
|
{
|
||||||
var original = surfaceDeviceViewModel.ZIndex;
|
Devices.Move(Devices.IndexOf(surfaceDeviceViewModel), Devices.Count - 1);
|
||||||
surfaceDeviceViewModel.ZIndex = Devices.Count;
|
for (var i = 0; i < Devices.Count; i++)
|
||||||
foreach (var deviceViewModel in Devices)
|
|
||||||
{
|
{
|
||||||
if (deviceViewModel.ZIndex >= original && deviceViewModel != surfaceDeviceViewModel)
|
var deviceViewModel = Devices[i];
|
||||||
deviceViewModel.ZIndex--;
|
deviceViewModel.ZIndex = i + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var deviceViewModel in Devices)
|
|
||||||
Console.WriteLine(deviceViewModel.ZIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BringForward(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
public void BringForward(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
||||||
{
|
{
|
||||||
var newIndex = Math.Max(Devices.Count, surfaceDeviceViewModel.ZIndex + 1);
|
var currentIndex = Devices.IndexOf(surfaceDeviceViewModel);
|
||||||
var neighbor = Devices.FirstOrDefault(d => d.ZIndex == newIndex);
|
var newIndex = Math.Min(currentIndex + 1, Devices.Count - 1);
|
||||||
if (neighbor != null)
|
Devices.Move(currentIndex, newIndex);
|
||||||
neighbor.ZIndex--;
|
|
||||||
|
|
||||||
surfaceDeviceViewModel.ZIndex = newIndex;
|
for (var i = 0; i < Devices.Count; i++)
|
||||||
|
{
|
||||||
foreach (var deviceViewModel in Devices)
|
var deviceViewModel = Devices[i];
|
||||||
Console.WriteLine(deviceViewModel.ZIndex);
|
deviceViewModel.ZIndex = i + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendToBack(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
public void SendToBack(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
||||||
{
|
{
|
||||||
var original = surfaceDeviceViewModel.ZIndex;
|
Devices.Move(Devices.IndexOf(surfaceDeviceViewModel), 0);
|
||||||
surfaceDeviceViewModel.ZIndex = 1;
|
for (var i = 0; i < Devices.Count; i++)
|
||||||
foreach (var deviceViewModel in Devices)
|
|
||||||
{
|
{
|
||||||
if (deviceViewModel.ZIndex <= original && deviceViewModel != surfaceDeviceViewModel)
|
var deviceViewModel = Devices[i];
|
||||||
deviceViewModel.ZIndex++;
|
deviceViewModel.ZIndex = i + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var deviceViewModel in Devices)
|
|
||||||
Console.WriteLine(deviceViewModel.ZIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendBackward(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
public void SendBackward(SurfaceDeviceViewModel surfaceDeviceViewModel)
|
||||||
{
|
{
|
||||||
var newIndex = Math.Max(0, surfaceDeviceViewModel.ZIndex - 1);
|
var currentIndex = Devices.IndexOf(surfaceDeviceViewModel);
|
||||||
var neighbor = Devices.FirstOrDefault(d => d.ZIndex == newIndex);
|
var newIndex = Math.Max(currentIndex - 1, 0);
|
||||||
if (neighbor != null)
|
Devices.Move(currentIndex, newIndex);
|
||||||
neighbor.ZIndex++;
|
for (var i = 0; i < Devices.Count; i++)
|
||||||
|
{
|
||||||
surfaceDeviceViewModel.ZIndex = newIndex;
|
var deviceViewModel = Devices[i];
|
||||||
|
deviceViewModel.ZIndex = i + 1;
|
||||||
foreach (var deviceViewModel in Devices)
|
}
|
||||||
Console.WriteLine(deviceViewModel.ZIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
<Grid.Background>
|
<Grid.Background>
|
||||||
<ImageBrush TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,15,15" ImageSource="/Artemis.UI;component/Resources/tile.png" />
|
<ImageBrush TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,15,15" ImageSource="/Artemis.UI;component/Resources/tile.png" />
|
||||||
</Grid.Background>
|
</Grid.Background>
|
||||||
<ItemsControl ItemsSource="{Binding Devices}" ClipToBounds="True" Panel.ZIndex="{Binding Device.ZIndex}">
|
<ItemsControl ItemsSource="{Binding Devices}" ClipToBounds="True">
|
||||||
<ItemsControl.ItemsPanel>
|
<ItemsControl.ItemsPanel>
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
<Canvas />
|
<Canvas />
|
||||||
@ -71,7 +71,7 @@
|
|||||||
</ItemsControl.ItemContainerStyle>
|
</ItemsControl.ItemContainerStyle>
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<ContentControl Width="{Binding Device.Size.Width}" Height="{Binding Device.Size.Height}" s:View.Model="{Binding }">
|
<ContentControl Width="{Binding Device.Size.Width}" Height="{Binding Device.Size.Height}" s:View.Model="{Binding }" >
|
||||||
<ContentControl.ContextMenu>
|
<ContentControl.ContextMenu>
|
||||||
<ContextMenu>
|
<ContextMenu>
|
||||||
<MenuItem Header="Bring to Front">
|
<MenuItem Header="Bring to Front">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user