private void SettingButtonClicked(KeyBindingDef keyDef, KeyPrefs.BindingSlot slot) { if (Event.current.button == 0) { Find.WindowStack.Add(new Dialog_DefineBinding(keyPrefsData, keyDef, slot)); Event.current.Use(); } else if (Event.current.button == 1) { List <FloatMenuOption> list = new List <FloatMenuOption>(); list.Add(new FloatMenuOption("ResetBinding".Translate(), delegate { KeyCode keyCode = (slot != 0) ? keyDef.defaultKeyCodeB : keyDef.defaultKeyCodeA; keyPrefsData.SetBinding(keyDef, slot, keyCode); })); list.Add(new FloatMenuOption("ClearBinding".Translate(), delegate { keyPrefsData.SetBinding(keyDef, slot, KeyCode.None); })); Find.WindowStack.Add(new FloatMenu(list)); } }
public override void DoWindowContents(Rect inRect) { Text.Anchor = TextAnchor.MiddleCenter; Widgets.Label(inRect, "PressAnyKeyOrEsc".Translate()); Text.Anchor = TextAnchor.UpperLeft; if (Event.current.isKey && Event.current.type == EventType.KeyDown && Event.current.keyCode != 0) { if (Event.current.keyCode != KeyCode.Escape) { keyPrefsData.EraseConflictingBindingsForKeyCode(keyDef, Event.current.keyCode, delegate(KeyBindingDef oldDef) { Messages.Message("KeyBindingOverwritten".Translate(oldDef.LabelCap), MessageTypeDefOf.TaskCompletion, historical: false); }); keyPrefsData.SetBinding(keyDef, slot, Event.current.keyCode); } Close(); Event.current.Use(); } }