コード例 #1
0
ファイル: TextBox.cs プロジェクト: lmaxim/MultiScrollNES
        protected internal override void KeyDown(InputEventKeyboard e)
        {
            lock (RenderRule)
            {
                if (RenderRule.Length != 0)
                {
                    switch (e.KeyCode)
                    {
                    case WinKeys.Left:
                        RenderRule.TextCursor--;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Right:
                        RenderRule.TextCursor++;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Up:
                        RenderRule.CursorUp();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Down:
                        RenderRule.CursorDown();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Home:
                        RenderRule.CursorHome();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.End:
                        RenderRule.CursorEnd();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.PageUp:
                        RenderRule.TextCursor   = 0;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.PageDown:
                        RenderRule.TextCursor   = RenderRule.Length;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Delete:
                        RenderRule.Delete();
                        RenderRule.BakeText();
                        RenderRule.SelectedChar = null;
                        break;
                    }
                }
            }

            ResetTimer();
        }
コード例 #2
0
ファイル: TextBox.cs プロジェクト: lmaxim/MultiScrollNES
 protected internal override void OnLayout()
 {
     if (Area != Parent.InputArea)
     {
         var a = Parent.InputArea;
         Area = new Rectangle(0, 0, a.Width, a.Height);
     }
     RenderRule.BakeText();
 }
コード例 #3
0
ファイル: TextBox.cs プロジェクト: yadiate/MonoGameGui
        internal override void Layout()
        {
            RenderRule.BakeText();

            base.Layout();
        }
コード例 #4
0
ファイル: TextBox.cs プロジェクト: yadiate/MonoGameGui
        protected internal override void CharEntered(CharacterEventArgs e)
        {
            var ch = e.Character;

            lock (RenderRule) {
                switch (ch)
                {
                case '\b': {
                    //Backspace <= remove selected or remove before cursor
                    if (RenderRule.HasSelected)
                    {
                        RenderRule.RemoveSelected();
                    }
                    else
                    {
                        RenderRule.BackSpace();
                    }
                    break;
                }

                case '\n':
                case '\r': {
                    //New Line <= Insert character after cursor
                    if (RenderRule.HasSelected)
                    {
                        RenderRule.RemoveSelected();
                    }
                    RenderRule.Insert(ch);
                    break;
                }

                case '\t': {
                    //Tabs currently not supported
                    return;
                }

                case (char)3: {
                    //Copy
                    Clipboard.SetDataObject(RenderRule.GetSelected(), true);
                    break;
                }

                case (char)22: {
                    //Paste
                    if (RenderRule.HasSelected)
                    {
                        RenderRule.RemoveSelected();
                    }

                    var dataObject = Clipboard.GetDataObject();
                    if (dataObject != null)
                    {
                        var text = dataObject.GetData(DataFormats.Text).ToString();
                        RenderRule.Insert(text);
                    }
                    break;
                }

                case (char)24: {
                    //Cut
                    if (RenderRule.HasSelected)
                    {
                        Clipboard.SetDataObject(RenderRule.GetSelected(), true);
                        RenderRule.RemoveSelected();
                    }
                    break;
                }

                default: {
                    //Add the character
                    if (RenderRule.HasSelected)
                    {
                        RenderRule.RemoveSelected();
                    }
                    RenderRule.Insert(ch);
                    RenderRule.SelectedChar = null;
                    break;
                }
                }
                RenderRule.BakeText();
            }

            ResetTimer();
        }