protected void HandleKeyboard()
{
Event current = Event.current;
if (((current.GetTypeForControl(this.m_ControlID) == EventType.KeyDown) && (this.m_ControlID == GUIUtility.keyboardControl)) && (this.m_MemorySelection.Selected != null))
{
int num;
KeyCode keyCode = current.keyCode;
switch (keyCode)
{
case KeyCode.UpArrow:
this.m_MemorySelection.MoveUp();
break;
case KeyCode.DownArrow:
this.m_MemorySelection.MoveDown();
break;
case KeyCode.RightArrow:
if (this.m_MemorySelection.Selected.ChildCount() > 0)
{
this.m_MemorySelection.Selected.expanded = true;
}
break;
case KeyCode.LeftArrow:
if (!this.m_MemorySelection.Selected.expanded)
{
this.m_MemorySelection.MoveParent();
}
else
{
this.m_MemorySelection.Selected.expanded = false;
}
break;
case KeyCode.Home:
this.m_MemorySelection.MoveFirst();
break;
case KeyCode.End:
this.m_MemorySelection.MoveLast();
break;
case KeyCode.PageUp:
num = Mathf.RoundToInt(this.m_VisibleHeight / 16f);
for (int i = 0; i < num; i++)
{
this.m_MemorySelection.MoveUp();
}
break;
case KeyCode.PageDown:
num = Mathf.RoundToInt(this.m_VisibleHeight / 16f);
for (int j = 0; j < num; j++)
{
this.m_MemorySelection.MoveDown();
}
break;
default:
if (keyCode == KeyCode.Return)
{
if (this.m_MemorySelection.Selected.memoryInfo != null)
{
Selection.instanceIDs = new int[0];
Selection.activeInstanceID = this.m_MemorySelection.Selected.memoryInfo.instanceId;
}
}
else
{
return;
}
break;
}
this.RowClicked(current, this.m_MemorySelection.Selected);
this.EnsureVisible();
this.m_EditorWindow.Repaint();
}
}