Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 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();
     }
 }