Changed color-control to brushes, improved keygroups

This commit is contained in:
DarthAffe committed 2015-09-22 21:34:36 +02:00
1 parent 02aaf24c41
commit 0a47642c38
11 files changed
+106 -73

No files matched your search

+6 -5
View File
@@ -1,20 +1,19 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using CUE.NET.Devices.Keyboard.ColorBrushes;
using CUE.NET.Devices.Keyboard.Extensions;
namespace CUE.NET.Devices.Keyboard.Keys
{
public class BaseKeyGroup : IKeyGroup
public abstract class BaseKeyGroup : IKeyGroup
{
#region Properties & Fields
internal CorsairKeyboard Keyboard { get; }
public IEnumerable<CorsairKey> Keys => new ReadOnlyCollection<CorsairKey>(GroupKeys);
protected IList<CorsairKey> GroupKeys { get; } = new List<CorsairKey>();
public IEnumerable<CorsairKey> Keys => new ReadOnlyCollection<CorsairKey>(GetGroupKeys());
public Color Color { get; set; } = Color.Transparent;
public IBrush Brush { get; set; }
#endregion
@@ -28,6 +27,8 @@ namespace CUE.NET.Devices.Keyboard.Keys
this.Attach();
}
protected abstract IList<CorsairKey> GetGroupKeys();
#endregion
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
using System.Collections.Generic;
using System.Drawing;
using CUE.NET.Devices.Keyboard.ColorBrushes;
namespace CUE.NET.Devices.Keyboard.Keys
{
@@ -7,6 +7,6 @@ namespace CUE.NET.Devices.Keyboard.Keys
{
IEnumerable<CorsairKey> Keys { get; }
Color Color { get; set; }
IBrush Brush { get; set; }
}
}
@@ -1,30 +1,37 @@
using CUE.NET.Devices.Keyboard.Enums;
using System.Collections.Generic;
using CUE.NET.Devices.Keyboard.Enums;
namespace CUE.NET.Devices.Keyboard.Keys
{
public class SimpleKeyGroup : BaseKeyGroup
public class ListKeyGroup : BaseKeyGroup
{
#region Properties & Fields
protected IList<CorsairKey> GroupKeys { get; } = new List<CorsairKey>();
#endregion
#region Constructors
public SimpleKeyGroup(CorsairKeyboard keyboard, bool autoAttach = true)
public ListKeyGroup(CorsairKeyboard keyboard, bool autoAttach = true)
: base(keyboard, autoAttach)
{ }
public SimpleKeyGroup(CorsairKeyboard keyboard, params CorsairKey[] keys)
public ListKeyGroup(CorsairKeyboard keyboard, params CorsairKey[] keys)
: this(keyboard, true, keys)
{ }
public SimpleKeyGroup(CorsairKeyboard keyboard, bool autoAttach, params CorsairKey[] keys)
public ListKeyGroup(CorsairKeyboard keyboard, bool autoAttach, params CorsairKey[] keys)
: base(keyboard, autoAttach)
{
AddKey(keys);
}
public SimpleKeyGroup(CorsairKeyboard keyboard, params CorsairKeyboardKeyId[] keys)
public ListKeyGroup(CorsairKeyboard keyboard, params CorsairKeyboardKeyId[] keys)
: this(keyboard, true, keys)
{ }
public SimpleKeyGroup(CorsairKeyboard keyboard, bool autoAttach, params CorsairKeyboardKeyId[] keys)
public ListKeyGroup(CorsairKeyboard keyboard, bool autoAttach, params CorsairKeyboardKeyId[] keys)
: base(keyboard, autoAttach)
{
AddKey(keys);
@@ -82,6 +89,12 @@ namespace CUE.NET.Devices.Keyboard.Keys
GroupKeys.Add(key);
}
protected override IList<CorsairKey> GetGroupKeys()
{
return GroupKeys;
}
#endregion
}
}
+11 -8
View File
@@ -1,4 +1,5 @@
using System.Drawing;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using CUE.NET.Devices.Keyboard.Enums;
using CUE.NET.Helper;
@@ -9,8 +10,8 @@ namespace CUE.NET.Devices.Keyboard.Keys
{
#region Properties & Fields
public RectangleF RequestedRectangle { get; }
public float MinOverlayPercentage { get; }
public RectangleF Rectangle { get; set; }
public float MinOverlayPercentage { get; set; }
#endregion
@@ -28,20 +29,22 @@ namespace CUE.NET.Devices.Keyboard.Keys
: this(keyboard, RectangleHelper.CreateRectangleFromPoints(fromPoint, toPoint), minOverlayPercentage, autoAttach)
{ }
public RectangleKeyGroup(CorsairKeyboard keyboard, RectangleF requestedRectangle, float minOverlayPercentage = 0.5f, bool autoAttach = true)
public RectangleKeyGroup(CorsairKeyboard keyboard, RectangleF rectangle, float minOverlayPercentage = 0.5f, bool autoAttach = true)
: base(keyboard, autoAttach)
{
this.RequestedRectangle = requestedRectangle;
this.Rectangle = rectangle;
this.MinOverlayPercentage = minOverlayPercentage;
foreach (CorsairKey key in Keyboard.Where(x => RectangleHelper.CalculateIntersectPercentage(x.KeyRectangle, requestedRectangle) >= minOverlayPercentage))
GroupKeys.Add(key);
}
#endregion
#region Methods
protected override IList<CorsairKey> GetGroupKeys()
{
return Keyboard.Where(x => RectangleHelper.CalculateIntersectPercentage(x.KeyRectangle, Rectangle) >= MinOverlayPercentage).ToList();
}
#endregion
}
}