Example #1
0
        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()
                );
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
 ///<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;
 }
Example #4
0
        /// <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);
        }
Example #5
0
 ///<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;
 }
Example #6
0
 ///<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)
 {
 }
Example #7
0
        internal void ExtendSelection(GridPanel panel)
        {
            _HitItem = this;

            _MouseDownHitRow = _HitItem;
            _MouseDownHitArea = RowArea.InContent;

            InvalidateRowHeader(_MouseDownHitRow);

            ProcessExtendSelection(panel, false);
        }
Example #8
0
        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;
            }
        }
Example #9
0
        /// <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);
                }
            }
        }
Example #10
0
        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;
            }
        }
Example #11
0
        /// <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);
        }