//######################################################################################### //★★★★★★★ http://www.cnpopsoft.com [华普软件] ★★★★★★★ //★★★★★★★ 华普软件 - VB & C#.NET 专业论文与源码荟萃! ★★★★★★★ //######################################################################################### /* * Copyright ?2005, Mathew Hall * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. */ using System; using System.Drawing; using System.Windows.Forms; using XPTable.Models; namespace XPTable.Events { #region Delegates /// /// Represents the method that will handle the HeaderMouseEnter, HeaderMouseLeave, /// HeaderMouseDown, HeaderMouseUp, HeaderMouseMove, HeaderClick and HeaderDoubleClick /// events of a Table /// public delegate void HeaderMouseEventHandler(object sender, HeaderMouseEventArgs e); #endregion #region HeaderMouseEventArgs /// /// Provides data for the HeaderMouseEnter, HeaderMouseLeave, HeaderMouseDown, /// HeaderMouseUp, HeaderMouseMove, HeaderClick and HeaderDoubleClick events of a Table /// public class HeaderMouseEventArgs : MouseEventArgs { #region Class Data /// /// The Column that raised the event /// private Column column; /// /// The Table the Column belongs to /// private Table table; /// /// The index of the Column /// private int index; /// /// The column header's bounding rectangle /// private Rectangle headerRect; #endregion #region Constructor /// /// Initializes a new instance of the HeaderMouseEventArgs class with /// the specified source Column, Table, column index and column header bounds /// /// The Column that Raised the event /// The Table the Column belongs to /// The index of the Column /// The column header's bounding rectangle public HeaderMouseEventArgs(Column column, Table table, int index, Rectangle headerRect) : base(MouseButtons.None, 0, -1, -1, 0) { this.column = column; this.table = table; this.index = index; this.headerRect = headerRect; } /// /// Initializes a new instance of the HeaderMouseEventArgs class with /// the specified source Column, Table, column index, column header bounds /// and MouseEventArgs /// /// The Column that Raised the event /// The Table the Column belongs to /// The index of the Column /// The column header's bounding rectangle /// The MouseEventArgs that contains data about the /// mouse event public HeaderMouseEventArgs(Column column, Table table, int index, Rectangle headerRect, MouseEventArgs mea) : base(mea.Button, mea.Clicks, mea.X, mea.Y, mea.Delta) { this.column = column; this.table = table; this.index = index; this.headerRect = headerRect; } #endregion #region Properties /// /// Gets the Column that Raised the event /// public Column Column { get { return this.column; } } /// /// Gets the Table the Cell belongs to /// public Table Table { get { return this.table; } } /// /// Gets the index of the Column /// public int Index { get { return this.index; } } /// /// Gets the column header's bounding rectangle /// public Rectangle HeaderRect { get { return this.headerRect; } } #endregion } #endregion }