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