/// <summary> /// Adds a button modification data to the collection of the key modifications of the active device. /// </summary> /// <param name="modifyData">Structure that contains the key modification data to be added.</param> public void MouseAddButtonModification(ButtonModifyData modifyData) { var currentModifications = MouseGetModifications(); if (currentModifications.ModifyCount == 0) { currentModifications.ModifyCount = 1; currentModifications.ModifyData = new ButtonModifyData[1] { modifyData }; MouseSetModification(currentModifications); return; } for (int i = 0; i < currentModifications.ModifyData.Length; i++) { if (currentModifications.ModifyData[i].FromState == modifyData.FromState && currentModifications.ModifyData[i].ToState == modifyData.ToState) { return;//already exists } } Array.Resize(ref currentModifications.ModifyData, currentModifications.ModifyData.Length + 1); currentModifications.ModifyData[currentModifications.ModifyData.Length - 1] = modifyData; currentModifications.ModifyCount = (ushort)currentModifications.ModifyData.Length; MouseSetModification(currentModifications); }
/// <summary> /// Removes a button modification data from the collection of key modifications of the active device. /// </summary> /// <param name="modifyData">Structure that contains the key modification data to be removed.</param> public void MouseRemoveButtonModification(ButtonModifyData modifyData) { var currentModifications = MouseGetModifications(); if (currentModifications.ModifyCount == 0 || currentModifications.ModifyData == null) { return; } currentModifications.ModifyData = currentModifications.ModifyData.Where(d => d.FromState != modifyData.FromState || d.ToState != modifyData.ToState).ToArray(); MouseSetModification(currentModifications); }