using System.Collections.Generic; namespace OpenMacroBoard.SDK { /// /// Describes the key layout of an . /// public interface IKeyLayout : IReadOnlyList { /// /// Gets the image size of the keys that are supported. /// /// /// /// In the rare case that the underlying board doesn't have square keys /// the value will be the size that most keys use, an average or a guess. /// If you need more accurate sizes you have the enumerate the key rectangles of /// this collection. /// /// int KeySize { get; } /// /// Gets the smallest rectangle area that fits all keys. /// OmbRectangle Area { get; } /// /// Gets the number of keys in the horizontal direction. /// /// /// In the rare case that the underlying board doesn't have a rectangular key layout /// this value might be an estimate or even wrong. It's not even guaranteed that /// times will be equal to Count /// but all implementations should make sure that the product is at least /// not greater than Count and is at least 1. /// int CountX { get; } /// /// Gets the number of keys in the vertical direction. /// /// /// In the rare case that the underlying board doesn't have a rectangular key layout /// this value might be an estimate or even wrong. It's not even guaranteed that /// times will be equal to Count /// but all implementations should make sure that the product is at least /// not greater than Count and is at least 1. /// int CountY { get; } /// /// Gets the gap between the keys. /// /// /// In the rare case that the underlying board doesn't have /// a rectangular key layout this value might be an estimate, made up or wrong. /// int GapSize { get; } } }