public bool Show() { string prompt = Prompt ?? ""; var size = Far.Api.UI.WindowSize; _Dialog = Far.Api.CreateDialog(0, size.Y - 2, size.X - 1, size.Y - 1); _Dialog.TypeId = TypeId; _Dialog.NoShadow = true; _Dialog.KeepWindowTitle = true; if (Password) { _Edit = _Dialog.AddEditPassword(prompt.Length, 0, size.X - 1, string.Empty); } else { int right = string.IsNullOrEmpty(History) ? size.X - 1 : size.X - 2; _Edit = _Dialog.AddEdit(prompt.Length, 0, right, string.Empty); _Edit.History = History; } _Edit.Coloring += Coloring.ColorEditAsConsole; if (prompt.Length > 0) { var uiText = _Dialog.AddText(0, 0, prompt.Length - 1, prompt); uiText.Coloring += Coloring.ColorTextAsConsole; } var uiArea = _Dialog.AddText(0, 1, size.X - 1, string.Empty); uiArea.Coloring += Coloring.ColorTextAsConsole; // hotkeys _Edit.KeyPressed += OnKey; // ignore clicks outside _Dialog.MouseClicked += (sender, e) => { if (e.Control == null) e.Ignore = true; }; return _Dialog.Show(); }