public override void OnMouseMove(Point point)
        {
            Point        subItemPoint;
            GridItemBase subItem = CurrentItem(point, out subItemPoint);

            if (mouseTrackedItem != subItem)
            {
                if (mouseTrackedItem != null)
                {
                    mouseTrackedItem.OnLeave();
                }

                mouseTrackedItem = subItem;

                if (subItem != null)
                {
                    subItem.OnEnter(subItemPoint);
                }
            }

            if (mouseTrackedItem != null)
            {
                mouseTrackedItem.OnMouseMove(subItemPoint);
            }
        }
Example #2
0
        internal void OnMouseMove(Point point)
        {
            if (HasLeftExpander)
            {
                Image     image = Expanded ? ExpandedImage : ShrunkenImage;
                Rectangle r     = new Rectangle(image.Width, image.Height, image.Width, image.Height);
                Cursor = r.Contains(point) ? Cursors.Hand : Cursors.Default;
            }

            // Make sure only one is valid
            System.Diagnostics.Trace.Assert(LastItem == null || LastSubRow == null);

            Point p;

            if (point.Y > RowHeight)
            {
                if (LastItem != null)
                {
                    LastItem.OnLeave();
                    LastItem = null;
                }

                GridRow row = FindRowFromPoint(point, out p);

                if (row != null && LastSubRow == row)
                {
                    LastSubRow.OnMouseMove(p);
                    return;
                }

                if (LastSubRow != null)
                {
                    LastSubRow.OnLeave();
                }

                LastSubRow = row;

                if (LastSubRow != null)
                {
                    LastSubRow.OnEnter(p);
                }
            }
            else
            {
                if (LastSubRow != null)
                {
                    LastSubRow.OnLeave();
                    LastSubRow = null;
                }

                GridItemBase item = FindItemFromPoint(point, out p);

                if (item != null && LastItem == item)
                {
                    LastItem.OnMouseMove(p);
                    return;
                }

                if (LastItem != null)
                {
                    LastItem.OnLeave();
                }

                LastItem = item;

                if (LastItem != null)
                {
                    LastItem.OnEnter(p);
                }
            }
        }