public void Display_KeyPress(object sender, KeyPressEventArgs e) { if (Engine.m_EventOk) { if (Gumps.KeyDown(e.KeyChar)) { e.Handled = true; } else { e.Handled = true; if (e.KeyChar == '\x001b') { if (Engine.TargetHandler != null) { Engine.TargetHandler.OnCancel(TargetCancelType.UserCancel); Engine.TargetHandler = null; return; } if (Engine.Prompt != null) { Engine.Prompt.OnCancel(PromptCancelType.UserCancel); Engine.Prompt = null; return; } } if (!Engine.m_Locked) { if (e.KeyChar == '\b') { if (Engine.m_Text.Length > 0) { Engine.m_Text = Engine.m_Text.Substring(0, Engine.m_Text.Length - 1); Renderer.SetText(Engine.m_Text); } } else if (e.KeyChar == '\r') { Engine.commandEntered(Engine.Encode(Engine.m_Text)); Engine.m_Text = ""; Renderer.SetText(""); } else if (e.KeyChar < ' ') { e.Handled = false; e.Handled = true; } else { int num; string input = Engine.m_Text + e.KeyChar; string text = Engine.Encode(input) + "_"; Mobile player = World.Player; if (((player != null) && player.OpenedStatus) && (player.StatusBar == null)) { num = Engine.GameWidth - 0x2e; } else { num = Engine.GameWidth - 4; } if (Engine.GetUniFont(3).GetStringWidth(text) < num) { Engine.m_Text = input; Renderer.SetText(input); } } } } } }
public void Display_KeyPress(object sender, KeyPressEventArgs e) { if (!Engine.m_EventOk) { return; } if (Gumps.KeyDown(e.KeyChar)) { e.Handled = true; } else { e.Handled = true; if ((int)e.KeyChar == 27) { if (TargetManager.IsActive) { TargetManager.Active.Cancel(); } else if (Engine.Prompt != null) { Engine.Prompt.OnCancel(PromptCancelType.UserCancel); Engine.Prompt = (IPrompt)null; return; } } if (Engine.m_Locked) { return; } if ((int)e.KeyChar == 8) { if (Engine.m_Text.Length <= 0) { return; } Engine.m_Text = Engine.m_Text.Substring(0, Engine.m_Text.Length - 1); Renderer.SetText(Engine.m_Text); } else if ((int)e.KeyChar == 13) { Engine.commandEntered(Engine.Encode(Engine.m_Text)); Engine.m_Text = ""; Renderer.SetText(""); } else if ((int)e.KeyChar < 32) { e.Handled = false; e.Handled = true; } else { string str = Engine.m_Text + (object)e.KeyChar; string text = Engine.Encode(str) + "_"; Mobile player = World.Player; int num = player == null || !player.OpenedStatus || player.StatusBar != null ? Engine.GameWidth - 4 : Engine.GameWidth - 46; if (Engine.GetUniFont(3).GetStringWidth(text) >= num) { return; } Engine.m_Text = str; Renderer.SetText(str); } } }