using System.Collections.Generic; using System.Drawing; using CUE.NET.Devices.Keyboard.Enums; using CUE.NET.Devices.Keyboard.Keys; namespace CUE.NET.Brushes { /// /// Represents a brush drawing the lighting of a CUE profile. /// public class ProfileBrush : AbstractBrush { #region Properties & Fields protected override IBrush EffectTarget => this; private Dictionary _keyLights; #endregion #region Constructors /// /// Initializes a new instance of the class. /// /// The light settings of the CUE profile. internal ProfileBrush(Dictionary keyLights) { this._keyLights = keyLights; } #endregion #region Methods /// /// Gets the color at an specific point getting the color of the key at the given point. /// /// The rectangle in which the brush should be drawn. /// The point from which the color should be taken. /// The color of the key at the specified point. public override Color GetColorAtPoint(RectangleF rectangle, PointF point) { CorsairKey key = CueSDK.KeyboardSDK[point]; if (key == null) return Color.Transparent; Color color; if (!_keyLights.TryGetValue(key.KeyId, out color)) return Color.Transparent; return FinalizeColor(color); } #endregion } }