Example #1
0
        protected override void OnFigureDragFinish(System.Windows.Forms.MouseEventArgs e)
        {
            var prev = _target;

            _target = Host.Root.FindEditor(
                e.Location,
                editor => !_request.Combineds.Contains(editor) && editor.Model is MemoText
                );
            if (_target != prev && prev != null)
            {
                prev.HideFeedback(_request);
            }
            if (_target != null)
            {
                if (_target.CanUnderstand(_request))
                {
                    /// Moveのフィードバック消去・キャンセル
                    base.OnFigureDragCancel();

                    _target.HideFeedback(_request);
                    _target.PerformRequest(_request);
                    _target = null;
                    return;
                }
                _target.HideFeedback(_request);
                _target = null;
            }

            base.OnFigureDragFinish(e);
        }
Example #2
0
        protected override void OnFigureDragMove(System.Windows.Forms.MouseEventArgs e)
        {
            base.OnFigureDragMove(e);

            var prev = _target;

            _target = Host.Root.FindEditor(
                e.Location,
                editor => !_request.Combineds.Contains(editor) && editor.Model is MemoText
                );
            if (_target != prev && prev != null)
            {
                prev.HideFeedback(_request);
            }
            if (_target != null)
            {
                if (_target.CanUnderstand(_request))
                {
                    _target.ShowFeedback(_request);
                }
                else
                {
                    _target = null;
                }
            }
        }
        // ------------------------------
        // private
        // ------------------------------
        private bool UpdateItem(
            ToolStripMenuItem item, IEditor target, Func <IRequest> requestProvider, bool forceAdding
            )
        {
            /// CanUnderstandなら表示,さらにCanExecuteならEnabled
            var req = requestProvider();

            if (forceAdding || target.CanUnderstand(req))
            {
                var cmd = target.GetCommand(req);
                item.Enabled = cmd != null && cmd.CanExecute;
                _ContextMenu.Items.Add(item);
                return(true);
            }
            return(false);
        }
Example #4
0
 // ========================================
 // static method
 // ========================================
 public static void Paste(IEditor editor, bool inBlock)
 {
     if (editor.CanUnderstand(new PasteRequest()))
     {
         var caret = editor.Site.Caret;
         var loc   = CaretUtil.GetExpectedMemoTextPosition(caret.Position);
         var cmd   = editor.RequestPaste(loc, inBlock? EditorConsts.InBlockPasteDescription: null) as PasteCommand;
         cmd.MergeJudge = next => next is FocusCommand;
         if (cmd != null && cmd.PastedEditors != null)
         {
             editor.Site.SelectionManager.DeselectAll();
             foreach (var pasted in cmd.PastedEditors)
             {
                 pasted.RequestSelect(SelectKind.True, false);
             }
         }
     }
 }