コード例 #1
0
 // ========================================
 // constructor
 // ========================================
 public MemoStyledTextFocusContextMenuProvider(StyledTextFocus focus, IEditor editor, bool canSplit) : base(focus)
 {
     _app      = MemopadApplication.Instance;
     _focus    = focus;
     _editor   = editor;
     _canSplit = canSplit;
 }
コード例 #2
0
        // ========================================
        // method
        // ========================================
        public override void ConfigureEditor(IEditor editor)
        {
            var editorHandle = new SelectEditorHandle();

            editor.InstallEditorHandle(editorHandle);
            var facade = MemopadApplication.Instance;

            editorHandle.KeyMap = facade.KeySchema.UmlFeatureEditorKeyMap;

            editor.InstallHandle(new SelectionIndicatingHandle());
            editor.InstallRole(new SelectRole());
            editor.InstallRole(
                new FocusRole(
                    UmlFeatureEditorHelper.InitUmlOperationFocus,
                    UmlFeatureEditorHelper.CommitUmlOperationFocus
                    )
                );
            editor.InstallRole(new ReorderRole());
            editor.InstallRole(new RemoveRole());
            //editor.InstallRole(new SetPlainTextFontRole(FontModificationKinds.Name));
            var editorFocus = new StyledTextFocus();

            editorFocus.KeyMap = facade.KeySchema.MemoContentSingleLineFocusKeyMap;
            editor.InstallFocus(editorFocus);
        }
コード例 #3
0
 private bool SearchInFocus(StyledTextFocus focus, string s, bool isFirst, bool isForward)
 {
     if (isForward)
     {
         if (isFirst)
         {
             return(focus.SearchForwardFirst(s));
         }
         else
         {
             return(focus.SearchForwardNext(s));
         }
     }
     else
     {
         if (isFirst)
         {
             return(focus.SearchBackwardFirst(s));
         }
         else
         {
             return(focus.SearchBackwardNext(s));
         }
     }
 }
コード例 #4
0
        public static void AddCommentForMemoText(StyledTextFocus focus)
        {
            if (!(focus.Host.Model is MemoText))
            {
                return;
            }

            var editor     = focus.Host;
            var memoEditor = editor.Parent;

            editor.Site.Caret.Hide();
            var charRect = focus.Figure.GetCharRect(focus.Referer.CaretIndex);
            var loc      = new Point(focus.Figure.Right + 80, charRect.Top);

            editor.RequestFocusCommit(true);

            /// テキスト作成
            var created      = MemoEditorHelper.AddText(memoEditor, loc, "(コメント)", false);
            var createdText  = (MemoText)created.Model;
            var createdFocus = (StyledTextFocus)created.Focus;

            createdText.IsSticky = true;

            /// コメント線作成
            var cmd = new CreateCommentCommand(
                memoEditor,
                new DelegatingModelFactory <MemoAnchorReference>(
                    () => {
                var ret = MemoFactory.CreateAnchorReference();
                return(ret);
            }
                    ),
                new [] { created.Figure.Location + new Size(1, 1), charRect.Location + new Size(1, 1), },
                created,
                focus.Host
                );

            editor.Site.CommandExecutor.Execute(cmd);
            editor.Site.Caret.Show();

            created.RequestSelect(SelectKind.True, true);
            createdFocus.SelectAll();
        }
コード例 #5
0
        private void RemoveIfEmpty(StyledTextFocus focus, Keys keyData)
        {
            var mtext = Host.Model as MemoText;

            if (mtext.IsSticky)
            {
                /// stickyなら何もしない
                return;
            }

            var editorCanvas = Host.Site.EditorCanvas;

            if (
                focus.StyledText.IsEmpty &&
                keyData != Keys.ProcessKey &&
                editorCanvas.GetImeString().Length == 0
                )
            {
                var parent = Host.Parent;
                Host.RequestFocus(FocusKind.Rollback, null);
                Host.RequestRemove();
                parent.RequestSelect(SelectKind.True, true);
            }
        }
コード例 #6
0
        // ========================================
        // method
        // ========================================
        public override void ConfigureEditor(IEditor editor)
        {
            var editorHandle = new MoveEditorHandle()
            {
                Cursor = Cursors.SizeAll
            };
            var facade = MemopadApplication.Instance;

            editorHandle.KeyMap = facade.KeySchema.MemoContentEditorKeyMap;
            editor.InstallEditorHandle(editorHandle);

            editor.InstallHandle(
                new ResizeHandle(Directions.Left)
            {
                Cursor = Cursors.SizeWE
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.Up)
            {
                Cursor = Cursors.SizeNS
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.Right)
            {
                Cursor = Cursors.SizeWE
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.Down)
            {
                Cursor = Cursors.SizeNS
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.UpLeft)
            {
                Cursor = Cursors.SizeNWSE
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.UpRight)
            {
                Cursor = Cursors.SizeNESW
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.DownLeft)
            {
                Cursor = Cursors.SizeNESW
            }
                );
            editor.InstallHandle(
                new ResizeHandle(Directions.DownRight)
            {
                Cursor = Cursors.SizeNWSE
            }
                );

            editor.InstallRole(new SelectRole());
            editor.InstallRole(new FocusRole(UmlClassifierHelper.InitUmlInterfaceFocus, UmlClassifierHelper.CommitInterfaceFocus));
            editor.InstallRole(new ResizeRole());
            editor.InstallRole(new RemoveRole());
            //editor.InstallRole(new CopyRole());
            editor.InstallRole(new ReorderRole());
            //editor.InstallRole(new SetPlainTextFontRole(FontModificationKinds.Name));

            var editorFocus = new StyledTextFocus();

            editorFocus.KeyMap         = facade.KeySchema.MemoContentSingleLineFocusKeyMap;
            editorFocus.Figure.Padding = editorFocus.Figure.Padding.GetTopChanged(4);
            editor.InstallFocus(editorFocus);
        }