private void DrawKey() { int scanCode = this.scanCode; int extended = this.extended; ButtonEffect effect; if (MappingsManager.IsEmptyMapping(Map) == false) { // Remapped or disabled? if (MappingsManager.IsDisabledMapping(Map)) { // Disabled if (MappingsManager.IsMappingPending(Map)) { effect = ButtonEffect.DisabledPending; } else { effect = ButtonEffect.Disabled; } } else { // Is this key mapped under the current filter? if (MappingsManager.IsMappingPending(Map)) { effect = ButtonEffect.MappedPending; } else { effect = ButtonEffect.Mapped; } // Either way, we want the button to show what it is (will be) mapped to: scanCode = Map.To.ScanCode; extended = Map.To.Extended; } } else { // Not mapped now, but was this key mapped before under the current filter?? var km = MappingsManager.GetClearedMapping(scanCode, extended); if (MappingsManager.IsEmptyMapping(km)) { effect = ButtonEffect.None; } else if (MappingsManager.IsDisabledMapping(km)) { effect = ButtonEffect.EnabledPending; } else { effect = ButtonEffect.UnmappedPending; } } var keybmp = ButtonImages.GetButtonImage( scanCode, extended, button, horizontalStretch, verticalStretch, scale, effect); SetImage(keybmp); }