// --- mouse --- protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); ClearDragTarget(); if (e.Button != MouseButtons.Left || e.Clicks >= 2) { return; } var tabPage = GetTabPage(e.Location); if (tabPage != null) { if (e.Button == MouseButtons.Left && !KeyUtil.IsShiftPressed() && !KeyUtil.IsControlPressed()) { var r = GetCloseButtonBounds(tabPage); if (r.Contains(e.Location)) { OnCloseButtonPressed(tabPage); _closeButtonState = CloseButtonState.None; Invalidate(r); return; } } } SetupDragTarget(e.X, e.Y); }
public virtual void HandleDragFinish(object sender, MouseEventArgs e) { using (Handle.Host.Figure.DirtManager.BeginDirty()) { var moveDelta = (Size)e.Location - (Size)_startPoint; if (KeyUtil.IsControlPressed()) { _targets.HideFeedback(_moveRequest); if (_targets.Editors.Any()) { var target = _targets.Editors.First().Parent; var cloneRequest = new CloneRequest(_targets.Editors); cloneRequest.MoveDelta = moveDelta; var cmd = target.PerformRequest(cloneRequest) as CloneCommand; if (cmd != null && cmd.ClonedEditors != null) { var select = new SelectMultiCommand(cmd.ClonedEditors, SelectKind.True, true); select.Execute(); } } } else { _moveRequest.MoveDelta = moveDelta; _targets.HideFeedback(_moveRequest); _targets.PerformCompositeRequest(_moveRequest, Handle.Host.Site.CommandExecutor); } Handle.Host.ShowFeedback(new HighlightRequest()); } }
public override bool HandleDragFinish(MouseEventArgs e) { if (_target != null) { _request.EndPoint = e.Location; var oldEdgeTargetEditor = _request.EdgeTargetEditor; _request.EdgeSourceEditor = _Host.RootEditor.FindEditor( _request.StartPoint, editor => !editor.IsRoot && editor != _target && editor.IsConnectable && (_sourceConnectionJudge == null? true: _sourceConnectionJudge(editor.Model)) ); _request.EdgeTargetEditor = _Host.RootEditor.FindEditor( _request.EndPoint, editor => !editor.IsRoot && editor != _target && editor.IsConnectable && (_targetConnectionJudge == null? true: _targetConnectionJudge(editor.Model)) ); if (_request.EdgeTargetEditor != null && _request.EdgeTargetEditor == _request.EdgeSourceEditor) { /// ループ接続はだめ _request.EdgeTargetEditor = null; } _target.HideFeedback(_request); if (oldEdgeTargetEditor != null) { HideDropTextFeedback(oldEdgeTargetEditor); } var cmd = _target.PerformRequest(_request) as CreateEdgeCommand; if (_edgeInitializer != null && cmd != null) { var created = cmd.CreatedEditor; var edge = created.Figure as IEdge; if (edge != null) { _edgeInitializer(edge); } } if (!KeyUtil.IsControlPressed()) { _target.Site.EditorCanvas.Tool = _defaultTool; } OnEdgeCreated(); _target = null; } return(true); }
protected override void OnFigureMouseDown(MouseEventArgs e) { _startRowIndex = -1; _startColIndex = -1; _endRowIndex = -1; _endColIndex = -1; _isScenarioHandled = false; if (KeyUtil.IsShiftPressed()) { var parent = Host.Parent; var man = Host.Site.SelectionManager; var selectedEditors = man.SelectedEditors; if (selectedEditors.Any() && selectedEditors.First().Parent == parent) { var tableData = GetParentTableData(); var firstEditor = selectedEditors.First(); _startRowIndex = tableData.GetRowIndex(firstEditor.Figure as TableCellFigure); _startColIndex = tableData.GetColumnIndex(firstEditor.Figure as TableCellFigure); _endRowIndex = tableData.GetRowIndex(Host.Figure as TableCellFigure); _endColIndex = tableData.GetColumnIndex(Host.Figure as TableCellFigure); SelectRange(_startRowIndex, _startColIndex, _endRowIndex, _endColIndex); } } else if ( e.Button == MouseButtons.Left && !KeyUtil.IsAltPressed() && !KeyUtil.IsControlPressed() && !KeyUtil.IsShiftPressed() ) { var run = GetRun(e.Location); if (run != null && run.HasLink) { LinkUtil.GoLink(run.Link); _isScenarioHandled = true; } else { _selectScenario.HandleMouseDown(this, e); } } else { _selectScenario.HandleMouseDown(this, e); } base.OnFigureMouseDown(e); }
protected virtual void HandleMouseDown(object sender, MouseEventArgs e) { /// 他のEditorがFocusされていたらCommitしておく var prevFocused = Handle.Host.Site.FocusManager.FocusedEditor; if (prevFocused != null && prevFocused != Handle.Host) { prevFocused.RequestFocusCommit(true); } _toggle = KeyUtil.IsControlPressed(); if (!_toggle) { Handle.Host.RequestSelect(SelectKind.True, true); } }
public override bool HandleMouseClick(MouseEventArgs e) { if (_target != null) { var bounds = new Rectangle(_startPoint, _defaultNodeSize); _request.Bounds = bounds; _target.HideFeedback(_request); if (!KeyUtil.IsControlPressed()) { _target.Site.EditorCanvas.Tool = _defaultTool; } CreateNode(_target, bounds); _target = null; } return(true); }
public override bool HandleDragFinish(MouseEventArgs e) { if (_target != null) { var bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location); _request.Bounds = bounds; _target.HideFeedback(_request); CreateNode(_target, bounds); if (!KeyUtil.IsControlPressed()) { _target.Site.EditorCanvas.Tool = _defaultTool; } _target = null; } return(true); }
// ======================================== // method // ======================================== // ------------------------------ // protected // ------------------------------ protected override void OnFigureMouseDown(MouseEventArgs e) { base.OnFigureMouseDoubleClick(e); /// 他のEditorがFocusされていたらCommitしておく var prevFocused = Host.Site.FocusManager.FocusedEditor; if (prevFocused != null && prevFocused != Host) { prevFocused.RequestFocusCommit(true); } _toggle = KeyUtil.IsControlPressed(); if (!_toggle) { Host.RequestSelect(SelectKind.True, true); } }
// ------------------------------ // protected // ------------------------------ public virtual void HandleMouseDown(object sender, MouseEventArgs e) { _isSelectedOnMouseDown = Handle.Host.IsSelected; _toggle = KeyUtil.IsControlPressed(); /// EditorがFocusされていたらCommitしておく var focused = Handle.Host.Site.FocusManager.FocusedEditor; if (focused != null) { focused.RequestFocusCommit(true); } Handle.Host.RequestSelect( SelectKind.True, _needClearSelectionOnMouseDown || (!_toggle && !_isSelectedOnMouseDown) ); }
protected virtual void HandleMouseDown(object sender, MouseEventArgs e) { /// 他のEditorがFocusされていたらCommitしておく var prevFocused = Handle.Host.Site.FocusManager.FocusedEditor; if (prevFocused != null && prevFocused != Handle.Host) { prevFocused.RequestFocusCommit(true); } _toggle = KeyUtil.IsControlPressed(); if (!_toggle) { Handle.Host.RequestSelect(SelectKind.True, true); } if (_Caret != null) { var expectedTextPos = CaretUtil.GetExpectedMemoTextPosition(new Point(e.X, e.Y - _Caret.Height / 2)); _Caret.Position = CaretUtil.GetExpectedCaretPosition(expectedTextPos, Handle.Host.Site.GridService); } }
protected override void OnFigureMouseClick(MouseEventArgs e) { var handled = false; if ( e.Button == MouseButtons.Left && !KeyUtil.IsAltPressed() && !KeyUtil.IsControlPressed() && !KeyUtil.IsShiftPressed() ) { var run = GetRun(e.Location); if (run != null && run.HasLink) { LinkUtil.GoLink(run.Link); handled = true; } } if (!handled) { base.OnFigureMouseClick(e); } }
protected override void OnFigureMouseDown(MouseEventArgs e) { var handled = false; if ( (e.Button == MouseButtons.Left || e.Button == MouseButtons.Middle) && !KeyUtil.IsAltPressed() && !KeyUtil.IsControlPressed() && !KeyUtil.IsShiftPressed() ) { var run = GetRun(e.Location); if (run != null && run.HasLink) { LinkUtil.GoLink(run.Link); handled = true; } } /// checkbox if (e.Button == MouseButtons.Left) { var node = _Figure as INode; if (node != null) { var bulcmd = node.GetProcessCheckBoxBulletCommand(e.Location); if (bulcmd != null) { /// bulcmdはFigureのStyledTextを変更するだけ /// ModelのStyledTextを変えないといけない bulcmd.Execute(); var model = Host.Model as MemoText; var oldStext = model.StyledText; var newStext = node.StyledText.CloneDeeply() as StyledText.Core.StyledText; var cmd = new DelegatingCommand( () => { model.StyledText = newStext; }, () => { model.StyledText = oldStext; } ); Host.Site.CommandExecutor.Execute(cmd); handled = true; } } } if (!handled) { _isSelectedOnMouseDown = Host.IsSelected; _toggle = KeyUtil.IsControlPressed(); /// EditorがFocusされていたらCommitしておく var focused = Host.Site.FocusManager.FocusedEditor; if (focused != null) { focused.RequestFocusCommit(true); } Host.RequestSelect(SelectKind.True, !_toggle && !Host.IsSelected); if (e.Button == MouseButtons.Left && !KeyUtil.IsControlPressed()) { Host.RequestFocus(FocusKind.Begin, e.Location); Host.Site.EditorCanvas.EventDispatcher.SetDnDTarget(Host.Focus.Figure); } base.OnFigureMouseDown(e); } }