// ======================================== // constructor // ======================================== public MemoStyledTextFocusContextMenuProvider(StyledTextFocus focus, IEditor editor, bool canSplit) : base(focus) { _app = MemopadApplication.Instance; _focus = focus; _editor = editor; _canSplit = canSplit; }
// ======================================== // 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); }
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)); } } }
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(); }
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); } }
// ======================================== // 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); }