TableLayoutPanelResizeGlyph.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / Behavior / TableLayoutPanelResizeGlyph.cs / 1 / TableLayoutPanelResizeGlyph.cs

                            namespace System.Windows.Forms.Design.Behavior { 
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.ComponentModel.Design; 
    using System.Design;
    using System.Diagnostics; 
    using System.Drawing; 
    using System.Drawing.Drawing2D;
    using System.Windows.Forms.Design; 

    /// 
    /// 
    ///     This glyph is associated with every row/column line rendered by the TableLayouPanelDesigner. 
    //      Each glyph simply tracks the bounds, type (row or column), and row/col style that it is associated
    //      with.  All glyphs on a TableLayoutPanelDesigner share one instance of the TableLayoutPanelBehavior. 
    ///  
    internal class TableLayoutPanelResizeGlyph : Glyph {
 
        private Rectangle                   bounds;//bounds of the column/row line
        private Cursor                      hitTestCursor;//cursor used for hittesting - vsplit/hsplit
        private TableLayoutStyle   style;//the style (row or column) associated
        private TableLayoutResizeType       type;//the "Type" used by the Behavior for resizing 

        ///  
        ///  
        ///     This constructor caches our necessary state and determine what 'type'
        ///     it is. 
        /// 
        internal TableLayoutPanelResizeGlyph (Rectangle controlBounds, TableLayoutStyle style, Cursor hitTestCursor, Behavior behavior) : base(behavior) {
            this.bounds = controlBounds;
            this.hitTestCursor = hitTestCursor; 
            this.style = style;
 
            if (style is ColumnStyle) { 
                type = TableLayoutResizeType.Column;
            } 
            else {
                type = TableLayoutResizeType.Row;
            }
        } 

        ///  
        ///  
        ///     Represents the bounds of the row or column line being rendered
        ///     by the TableLayoutPanelDesigner. 
        /// 
        public override Rectangle Bounds {
            get {
                return bounds; 
            }
        } 
 
        /// 
        ///  
        ///     Represents the Style associated with this glyph: Row or Column.
        ///     This is used by the behaviors resize methods to set the values.
        /// 
        public TableLayoutStyle Style { 
            get {
                return style; 
            } 
        }
 
        /// 
        /// 
        ///     Used as quick check by our behavior when dragging/resizing.
        ///  
        public TableLayoutResizeType Type {
            get { 
                return type; 
            }
        } 

        /// 
        /// 
        ///     Simply returns the proper cursor if the mouse pointer is within 
        ///     our cached boudns.
        ///  
        public override Cursor GetHitTest(Point p) { 
            if (bounds.Contains(p)) {
                return hitTestCursor; 
            }

            return null;
        } 

        ///  
        ///  
        ///     No painting necessary - this glyph is more of a 'hot spot'
        ///  
        public override void Paint(PaintEventArgs pe) {
        }

        ///  
        /// 
        ///     Internal Enum defining the two different types of glyphs a TableLayoutPanel 
        ///     can have: column or row. 
        /// 
        public enum TableLayoutResizeType { 
            Column,
            Row
        }
 
    }
 
 

} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK