public void Select_Test() { var grid = new GridState { CellsMatrix = Utils.BuildCellMatrix(3, 3) }; var area = new RowArea() { RowIndex = 1 }; CollectionAssert.AreEquivalent( grid.GetRow(1), area.Select(grid).ToArray() ); }
/// <summary> /// Handles invocation of RowMouseUp events /// </summary> internal void DoRowMouseUpEvent(GridRow gridRow, MouseEventArgs args, RowArea area) { if (RowMouseUp != null) { GridRowMouseEventArgs ev = new GridRowMouseEventArgs(gridRow.GridPanel, gridRow, args, area); RowMouseUp(this, ev); } }
///<summary> /// GridRowMouseEventArgs ///</summary> ///<param name="gridPanel"></param> ///<param name="gridRow"></param> ///<param name="ev"></param> ///<param name="rowArea"></param> public GridRowMouseEventArgs(GridPanel gridPanel, GridContainer gridRow, MouseEventArgs ev, RowArea rowArea) : base(ev.Button, ev.Clicks, ev.X, ev.Y, ev.Delta) { _GridPanel = gridPanel; _GridRow = gridRow; _RowArea = rowArea; }
/// <summary> /// Handles invocation of RowDoubleClick events /// </summary> internal bool DoRowDoubleClickEvent(GridRow row, RowArea rowArea, MouseEventArgs e) { if (RowDoubleClick != null) { GridRowDoubleClickEventArgs ev = new GridRowDoubleClickEventArgs(row.GridPanel, row, rowArea, e); RowDoubleClick(this, ev); return (ev.Cancel); } return (false); }
///<summary> /// GridRowClickEventArgs ///</summary> ///<param name="gridPanel"></param> ///<param name="gridRow"></param> ///<param name="rowArea"></param> ///<param name="e"></param> public GridRowClickEventArgs( GridPanel gridPanel, GridRow gridRow, RowArea rowArea, MouseEventArgs e) : base(gridPanel, gridRow) { _RowArea = rowArea; _MouseEventArgs = e; }
///<summary> /// GridRowDoubleClickEventArgs ///</summary> ///<param name="gridPanel"></param> ///<param name="gridRow"></param> ///<param name="rowArea"></param> ///<param name="e"></param> public GridRowDoubleClickEventArgs( GridPanel gridPanel, GridRow gridRow, RowArea rowArea, MouseEventArgs e) : base(gridPanel, gridRow, rowArea, e) { }
internal void ExtendSelection(GridPanel panel) { _HitItem = this; _MouseDownHitRow = _HitItem; _MouseDownHitArea = RowArea.InContent; InvalidateRowHeader(_MouseDownHitRow); ProcessExtendSelection(panel, false); }
private void InitRowResize(MouseEventArgs e) { if ((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left) { Capture = true; _MouseDownDelta = e.Y - _MouseDownHitRow.BoundsRelative.Bottom; if (IsVFrozen == false) _MouseDownDelta += VScrollOffset; IsResizing = false; } else { _MouseDownHitArea = RowArea.NoWhere; } }
/// <summary> /// InternalMouseDown /// </summary> /// <param name="e"></param> internal override void InternalMouseDown(MouseEventArgs e) { GridPanel panel = GridPanel; RowArea hitArea = _HitArea; GridContainer hitItem = _HitItem; if (panel != null && hitItem != null) { SuperGrid.DoRowMouseDownEvent(this, e, hitArea); if (_HitArea == RowArea.InRowResize) { _MouseDownHitArea = _HitArea; _MouseDownHitRow = _HitItem; _MouseDownPoint = e.Location; InitRowResize(e); return; } if (CanSetActiveRow(panel, hitItem, true) == true) { _HitItem = hitItem; _HitArea = hitArea; int rowIndex = RowIndex; if (panel.SetActiveRow(_HitItem, true) == true) { if (_HitArea != RowArea.InContent) panel.DeactivateEdit(); if (rowIndex > RowIndex) { SuperGrid.ArrangeGrid(); GridContainer row = panel.GetElementAt(e) as GridContainer; if (row != null) { row.InternalMouseMove(e); row.InternalMouseDown(e); return; } } _MouseDownHitArea = _HitArea; _MouseDownHitRow = _HitItem; _MouseDownPoint = e.Location; _dragSelection = false; _dragStarted = false; switch (_HitArea) { case RowArea.InRowHeader: panel.LastProcessedItem = _HitItem; switch (panel.RowDragBehavior) { case RowDragBehavior.Move: case RowDragBehavior.GroupMove: InitExtendSelection(panel); if ((Control.ModifierKeys & (Keys.Control | Keys.Shift)) == 0) InitRowMove(panel); break; case RowDragBehavior.ExtendSelection: if (IsSelected == false || ((Control.ModifierKeys & (Keys.Control | Keys.Shift)) != Keys.None)) { InitExtendSelection(panel); } else if (IsMouseDown == true) { Capture = true; _dragSelection = true; } break; } return; case RowArea.InContent: if (_HitItem is GridPanel || panel.SelectionGranularity != SelectionGranularity.Cell) { InitExtendSelection(panel); } break; case RowArea.InWhiteSpace: panel.LastProcessedItem = _HitItem; switch (panel.RowWhitespaceClickBehavior) { case RowWhitespaceClickBehavior.ClearSelection: panel.ClearAll(); break; case RowWhitespaceClickBehavior.ExtendSelection: InitExtendSelection(panel); break; } return; case RowArea.InCellExpand: panel.LastProcessedItem = _HitItem; ProcessInExpandButton(); if (panel.SelectionGranularity != SelectionGranularity.Cell) return; break; } } else { _MouseDownHitArea = RowArea.NoWhere; _MouseDownHitRow = null; } base.InternalMouseDown(e); } } }
private void ProcessMouseMove(MouseEventArgs e, GridPanel panel) { _HitArea = GetHitArea(e.Location); if (IsMouseDown == false) { switch (_HitArea) { case RowArea.InRowHeader: panel.HotItem = _HitItem; SuperGrid.GridCursor = Cursors.Default; break; case RowArea.InRowCheckBox: case RowArea.InCellCheckBox: case RowArea.InCellExpand: panel.HotItem = null; SuperGrid.GridCursor = Cursors.Hand; break; case RowArea.InRowResize: panel.HotItem = _HitItem; SuperGrid.GridCursor = Cursors.HSplit; break; default: panel.HotItem = null; SuperGrid.GridCursor = Cursors.Default; break; } } else { if ((Control.MouseButtons & MouseButtons.Left) != MouseButtons.Left) SuperGrid.GridCursor = Cursors.Default; } if (_HitArea != _LastArea) { if (_HitArea == RowArea.InRowInfo) ProcessRowInfoEnter(e); else if (_LastArea == RowArea.InRowInfo) ProcessRowInfoLeave(); if (_HitArea == RowArea.InWhiteSpace || _LastArea == RowArea.InWhiteSpace) { if (panel.RowHighlightType == RowHighlightType.Full) InvalidateRender(Bounds); else InvalidateWhitespace(); } _LastArea = _HitArea; } }
/// <summary> /// InternalMouseLeave /// </summary> /// <param name="e"></param> internal override void InternalMouseLeave(EventArgs e) { GridPanel panel = GridPanel; if (panel != null) { IsMouseOver = false; if (GridPanel.RowHighlightType == RowHighlightType.Full) InvalidateRender(Bounds); if (panel.ShowRowHeaders == true) { panel.HotItem = null; _HitArea = RowArea.NoWhere; _HitItem = null; } //_MouseDownHitRow = null; //_MouseDownHitArea = RowArea.NoWhere; SuperGrid.ToolTip.Hide(SuperGrid); if (_LastArea == RowArea.InRowInfo) ProcessRowInfoLeave(); } CancelCapture(); base.InternalMouseLeave(e); SuperGrid.DoRowMouseLeaveEvent(this); }