private void ShowKeys()
{
int controlID = GUIUtility.GetControlID(PreferencesWindow.s_KeysControlHash, FocusType.Keyboard);
GUILayout.Space(10f);
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
GUILayout.BeginVertical(new GUILayoutOption[]
{
GUILayout.Width(185f)
});
GUILayout.Label("Actions", PreferencesWindow.constants.settingsBoxTitle, new GUILayoutOption[]
{
GUILayout.ExpandWidth(true)
});
this.m_KeyScrollPos = GUILayout.BeginScrollView(this.m_KeyScrollPos, PreferencesWindow.constants.settingsBox);
PrefKey prefKey = null;
PrefKey prefKey2 = null;
bool flag = false;
foreach (KeyValuePair <string, PrefKey> current in Settings.Prefs <PrefKey>())
{
if (!flag)
{
if (current.Value == this.m_SelectedKey)
{
flag = true;
}
else
{
prefKey = current.Value;
}
}
else
{
if (prefKey2 == null)
{
prefKey2 = current.Value;
}
}
EditorGUI.BeginChangeCheck();
if (GUILayout.Toggle(current.Value == this.m_SelectedKey, current.Key, PreferencesWindow.constants.keysElement, new GUILayoutOption[0]))
{
this.m_SelectedKey = current.Value;
}
if (EditorGUI.EndChangeCheck())
{
GUIUtility.keyboardControl = controlID;
}
}
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUILayout.Space(10f);
GUILayout.BeginVertical(new GUILayoutOption[0]);
if (this.m_SelectedKey != null)
{
Event @event = this.m_SelectedKey.KeyboardEvent;
GUI.changed = false;
string[] array = this.m_SelectedKey.Name.Split(new char[]
{
'/'
});
GUILayout.Label(array[0], "boldLabel", new GUILayoutOption[0]);
GUILayout.Label(array[1], "boldLabel", new GUILayoutOption[0]);
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
GUILayout.Label("Key:", new GUILayoutOption[0]);
@event = EditorGUILayout.KeyEventField(@event, new GUILayoutOption[0]);
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
GUILayout.Label("Modifiers:", new GUILayoutOption[0]);
GUILayout.BeginVertical(new GUILayoutOption[0]);
if (Application.platform == RuntimePlatform.OSXEditor)
{
@event.command = GUILayout.Toggle(@event.command, "Command", new GUILayoutOption[0]);
}
@event.control = GUILayout.Toggle(@event.control, "Control", new GUILayoutOption[0]);
@event.shift = GUILayout.Toggle(@event.shift, "Shift", new GUILayoutOption[0]);
@event.alt = GUILayout.Toggle(@event.alt, "Alt", new GUILayoutOption[0]);
GUILayout.EndVertical();
GUILayout.EndHorizontal();
if (GUI.changed)
{
this.m_SelectedKey.KeyboardEvent = @event;
Settings.Set <PrefKey>(this.m_SelectedKey.Name, this.m_SelectedKey);
}
else
{
if (GUIUtility.keyboardControl == controlID && Event.current.type == EventType.KeyDown)
{
KeyCode keyCode = Event.current.keyCode;
if (keyCode != KeyCode.UpArrow)
{
if (keyCode == KeyCode.DownArrow)
{
if (prefKey2 != null)
{
this.m_SelectedKey = prefKey2;
}
Event.current.Use();
}
}
else
{
if (prefKey != null)
{
this.m_SelectedKey = prefKey;
}
Event.current.Use();
}
}
}
}
GUILayout.EndVertical();
GUILayout.Space(10f);
GUILayout.EndHorizontal();
GUILayout.Space(5f);
if (GUILayout.Button("Use Defaults", new GUILayoutOption[]
{
GUILayout.Width(120f)
}))
{
this.RevertKeys();
}
}