LayoutFarm.Text.TextSurfaceEventListener.NotifyCharactersRemoved C# (CSharp) Méthode

NotifyCharactersRemoved() static private méthode

static private NotifyCharactersRemoved ( TextSurfaceEventListener listener, TextDomEventArgs e ) : void
listener TextSurfaceEventListener
e TextDomEventArgs
Résultat void
        internal static void NotifyCharactersRemoved(TextSurfaceEventListener listener, TextDomEventArgs e)
        {
            if (listener.CharacterRemoved != null)
            {
                listener.CharacterRemoved(listener, e);
            }
        }
        internal static void NotifyKeyDown(TextSurfaceEventListener listener, UIKeys key)

Usage Example

        public void OnKeyDown(UIKeyEventArgs e)
        {
            this.SetCaretState(true);
            if (!e.HasKeyData)
            {
                return;
            }

            switch (e.KeyCode)
            {
            case UIKeys.Home:
            {
                this.DoHome(e.Shift);
            } break;

            case UIKeys.End:
            {
                this.DoEnd(e.Shift);
            } break;

            case UIKeys.Back:
            {
                if (internalTextLayerController.SelectionRange != null)
                {
                    InvalidateGraphicLocalArea(this, GetSelectionUpdateArea());
                }
                else
                {
                    InvalidateGraphicOfCurrentLineArea();
                }
                if (textSurfaceEventListener == null)
                {
                    internalTextLayerController.DoBackspace();
                }
                else
                {
                    if (!TextSurfaceEventListener.NotifyPreviewBackSpace(textSurfaceEventListener) &&
                        internalTextLayerController.DoBackspace())
                    {
                        TextSurfaceEventListener.NotifyCharactersRemoved(textSurfaceEventListener,
                                                                         new TextDomEventArgs(internalTextLayerController.updateJustCurrentLine));
                    }
                }

                EnsureCaretVisible();
            } break;

            case UIKeys.Delete:
            {
                if (internalTextLayerController.SelectionRange != null)
                {
                    InvalidateGraphicLocalArea(this, GetSelectionUpdateArea());
                }
                else
                {
                    InvalidateGraphicOfCurrentLineArea();
                }
                if (textSurfaceEventListener == null)
                {
                    internalTextLayerController.DoDelete();
                }
                else
                {
                    VisualSelectionRangeSnapShot delpart = internalTextLayerController.DoDelete();
                    TextSurfaceEventListener.NotifyCharactersRemoved(textSurfaceEventListener,
                                                                     new TextDomEventArgs(internalTextLayerController.updateJustCurrentLine));
                }

                EnsureCaretVisible();
            } break;

            default:
            {
                if (textSurfaceEventListener != null)
                {
                    UIKeys keycode = e.KeyCode;
                    if (keycode >= UIKeys.F1 && keycode <= UIKeys.F12)
                    {
                        InvalidateGraphicLocalArea(this, GetSelectionUpdateArea());
                        TextSurfaceEventListener.NotifyFunctionKeyDown(textSurfaceEventListener, keycode);
                        EnsureCaretVisible();
                    }
                }
            } break;
            }

            if (e.HasKeyData && e.Ctrl)
            {
                switch (e.KeyCode)
                {
                case UIKeys.C:
                {
                    StringBuilder stBuilder = GetFreeStringBuilder();
                    internalTextLayerController.CopySelectedTextToPlainText(stBuilder);
                    if (stBuilder != null)
                    {
                        if (stBuilder.Length == 0)
                        {
                            Clipboard.Clear();
                        }
                        else
                        {
                            Clipboard.SetText(stBuilder.ToString());
                        }
                    }
                    ReleaseStringBuilder(stBuilder);
                } break;

                case UIKeys.V:
                {
                    if (Clipboard.ContainUnicodeText())
                    {
                        internalTextLayerController.AddTextRunsToCurrentLine(
                            new EditableRun[] {
                                new EditableTextRun(this.Root,
                                                    Clipboard.GetUnicodeText(), this.CurrentTextSpanStyle)
                            });
                        EnsureCaretVisible();
                    }
                } break;

                case UIKeys.X:
                {
                    if (internalTextLayerController.SelectionRange != null)
                    {
                        if (internalTextLayerController.SelectionRange != null)
                        {
                            InvalidateGraphicLocalArea(this, GetSelectionUpdateArea());
                        }
                        StringBuilder stBuilder = GetFreeStringBuilder();
                        internalTextLayerController.CopySelectedTextToPlainText(stBuilder);
                        if (stBuilder != null)
                        {
                            Clipboard.SetText(stBuilder.ToString());
                        }

                        internalTextLayerController.DoDelete();


                        EnsureCaretVisible();
                        ReleaseStringBuilder(stBuilder);
                    }
                } break;

                case UIKeys.Z:
                {
                    internalTextLayerController.UndoLastAction();
                    EnsureCaretVisible();
                } break;

                case UIKeys.Y:
                {
                    internalTextLayerController.ReverseLastUndoAction();
                    EnsureCaretVisible();
                } break;

                case UIKeys.B:
                {
                    //TextSpanStyle style = internalTextLayerController.GetFirstTextStyleInSelectedRange();
                    //TextSpanStyle textStyle = null;

                    ////test only ***
                    ////TODO: make this more configurable
                    //if (style != null)
                    //{
                    //    TextSpanStyle defaultBeh = ((TextSpanStyle)style);
                    //    if (defaultBeh.FontBold)
                    //    {
                    //        textStyle = StyleHelper.CreateNewStyle(Color.Black);
                    //    }
                    //    else
                    //    {
                    //        textStyle = StyleHelper.CreateNewStyle(Color.Blue);
                    //    }
                    //}
                    //else
                    //{
                    //    textStyle = StyleHelper.CreateNewStyle(Color.Blue);
                    //}

                    //internalTextLayerController.DoFormatSelection(textStyle);

                    //if (internalTextLayerController.updateJustCurrentLine)
                    //{

                    //    InvalidateGraphicOfCurrentLineArea();
                    //}
                    //else
                    //{
                    //    InvalidateGraphics();
                    //}
                } break;
                }
            }
            if (textSurfaceEventListener != null)
            {
                TextSurfaceEventListener.NotifyKeyDown(textSurfaceEventListener, e.KeyCode);
            }
        }
All Usage Examples Of LayoutFarm.Text.TextSurfaceEventListener::NotifyCharactersRemoved