コード例 #1
0
ファイル: TextEntry.cs プロジェクト: InjectionDev/UltimaXNA
        protected override void OnKeyboardInput(InputEventKeyboard e)
        {
            switch (e.KeyCode)
            {
            case WinKeys.Tab:
                Parent.KeyboardTabToNextFocus(this);
                break;

            case WinKeys.Enter:
                Parent.ActivateByKeyboardReturn(EntryID, Text);
                break;

            case WinKeys.Back:
                if (ReplaceDefaultTextOnFirstKeypress)
                {
                    Text = string.Empty;
                    ReplaceDefaultTextOnFirstKeypress = false;
                }
                else if (Text.Length > 0)
                {
                    int escapedLength;
                    if (EscapeCharacters.TryFindEscapeCharacterBackwards(Text, Text.Length - 1, out escapedLength))
                    {
                        Text = Text.Substring(0, Text.Length - escapedLength);
                    }
                    else
                    {
                        Text = Text.Substring(0, Text.Length - 1);
                    }
                }
                break;

            default:
                if (NumericOnly && !char.IsNumber(e.KeyChar))
                {
                    return;
                }

                if (ReplaceDefaultTextOnFirstKeypress)
                {
                    Text = string.Empty;
                    ReplaceDefaultTextOnFirstKeypress = false;
                }

                if (e.IsChar)
                {
                    string escapedCharacter;
                    if (EscapeCharacters.TryMatchChar(e.KeyChar, out escapedCharacter))
                    {
                        Text += escapedCharacter;
                    }
                    else
                    {
                        Text += e.KeyChar;
                    }
                }
                break;
            }
        }
コード例 #2
0
ファイル: TextEntryPage.cs プロジェクト: BclEx/object-assets
        public void RemoveCharacter(int index)
        {
            int escapedLength;

            if (EscapeCharacters.TryFindEscapeCharacterBackwards(Text, index, out escapedLength))
            {
                Text = Text.Substring(0, Text.Length - escapedLength);
                var carat  = index - 1;
                var before = index == 0 ? null : Text.Substring(0, index - 1);
                var after  = Text.Substring(index);
                Text    = before + after;
                CaratAt = carat;
            }
            else
            {
                var carat  = index - 1;
                var before = index == 0 ? null : Text.Substring(0, index - 1);
                var after  = Text.Substring(index);
                Text    = before + after;
                CaratAt = carat;
            }
        }
コード例 #3
0
ファイル: TextEntry.cs プロジェクト: uotools/UORenaissanceXNA
        // ============================================================================================================
        // Input
        // ============================================================================================================

        protected override void OnKeyboardInput(InputEventKeyboard e)
        {
            switch (e.KeyCode)
            {
            case WinKeys.Tab:
                Parent.KeyboardTabToNextFocus(this);
                break;

            case WinKeys.Enter:
                Parent.OnKeyboardReturn(EntryID, Text);
                break;

            case WinKeys.Back:
                if (ReplaceDefaultTextOnFirstKeypress)
                {
                    Text = string.Empty;
                    ReplaceDefaultTextOnFirstKeypress = false;
                }
                else if (!string.IsNullOrEmpty(Text))
                {
                    int escapedLength;
                    if (EscapeCharacters.TryFindEscapeCharacterBackwards(Text, Text.Length - 1, out escapedLength))
                    {
                        Text = Text.Substring(0, Text.Length - escapedLength);
                    }
                    else
                    {
                        Text = Text.Substring(0, Text.Length - 1);
                    }
                }
                break;

            default:
                // place a char, so long as it's within the char count limit.
                if (MaxCharCount != 0 && Text.Length >= MaxCharCount)
                {
                    return;
                }
                if (NumericOnly && !char.IsNumber(e.KeyChar))
                {
                    return;
                }
                if (ReplaceDefaultTextOnFirstKeypress)
                {
                    Text = string.Empty;
                    ReplaceDefaultTextOnFirstKeypress = false;
                }
                if (e.IsChar && e.KeyChar >= 32)
                {
                    string escapedCharacter;
                    if (EscapeCharacters.TryMatchChar(e.KeyChar, out escapedCharacter))
                    {
                        Text += escapedCharacter;
                    }
                    else
                    {
                        Text += e.KeyChar;
                    }
                }
                break;
            }
        }