CalculatedColumn.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsTable / CalculatedColumn.cs / 1305600 / CalculatedColumn.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: Implementation of calculated column class. 
//              Calculated columns are created as a result of table
//              width calculations. Calculated columns are used internally 
//              to hold information about table's horizontal geometry
//
// History:
//  06/19/2003 : olego - Created 
//
//--------------------------------------------------------------------------- 
 
using MS.Internal.PtsHost;
using System; 
using System.Diagnostics;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Media; 

using MS.Internal.PtsHost.UnsafeNativeMethods; 
 
namespace MS.Internal.PtsTable
{ 
    /// 
    /// Calculated column implementation.
    /// 
    internal struct CalculatedColumn 
    {
        //----------------------------------------------------- 
        // 
        //  Constructors
        // 
        //-----------------------------------------------------

        #region Constructors
        #endregion Constructors 

        //------------------------------------------------------ 
        // 
        //  Internal Methods
        // 
        //-----------------------------------------------------

        #region Internal Methods
 
        /// 
        /// ValidateAuto 
        ///  
        /// New min width value
        /// New max width value 
        internal void ValidateAuto(double durMinWidth, double durMaxWidth)
        {
            Debug.Assert(0 <= durMinWidth && durMinWidth <= durMaxWidth);
            _durMinWidth = durMinWidth; 
            _durMaxWidth = durMaxWidth;
            SetFlags(true, Flags.ValidAutofit); 
        } 

        #endregion Internal Methods 

        //------------------------------------------------------
        //
        //  Internal Properties 
        //
        //------------------------------------------------------ 
 
        #region Internal Properties
 
        /// 
        /// Returns understood by PTS state of cell width dirtiness.
        /// 
        internal int PtsWidthChanged { get { return (PTS.FromBoolean(!CheckFlags(Flags.ValidWidth))); } } 

        ///  
        /// DurMinWidth 
        /// 
        internal double DurMinWidth { get { return (_durMinWidth); } } 

        /// 
        /// DurMaxWidth
        ///  
        internal double DurMaxWidth { get { return (_durMaxWidth); } }
 
        ///  
        /// UserWidth
        ///  
        internal GridLength UserWidth
        {
            get
            { 
                return (_userWidth);
            } 
            set 
            {
                if (_userWidth != value) 
                {
                    SetFlags(false, Flags.ValidAutofit);
                }
 
                _userWidth = value;
            } 
        } 

        ///  
        /// DurWidth
        /// 
        internal double DurWidth
        { 
            get
            { 
                return (_durWidth); 
            }
            set 
            {
                if (!DoubleUtil.AreClose(_durWidth, value))
                {
                    SetFlags(false, Flags.ValidWidth); 
                }
 
                _durWidth = value; 
            }
        } 

        /// 
        /// UrOffset
        ///  
        internal double UrOffset
        { 
            get { return (_urOffset); } 
            set { _urOffset = value; }
        } 

        #endregion Internal Properties

        //----------------------------------------------------- 
        //
        //  Private Methods 
        // 
        //------------------------------------------------------
 
        #region Private Methods

        /// 
        /// SetFlags is used to set or unset one or multiple flags on the cell. 
        /// 
        private void SetFlags(bool value, Flags flags) 
        { 
            _flags = value ? (_flags | flags) : (_flags & (~flags));
        } 

        /// 
        /// CheckFlags returns true if all passed flags in the bitmask are set.
        ///  
        private bool CheckFlags(Flags flags)
        { 
            return ((_flags & flags) == flags); 
        }
 
        #endregion Private Methods

        //-----------------------------------------------------
        // 
        //  Private Fields
        // 
        //----------------------------------------------------- 

        #region Private Fields 
        private GridLength _userWidth;      //  user specified width for the column
        private double _durWidth;       //  calculated widht for the column
        private double _durMinWidth;    //  calculated minimum width for the column
        private double _durMaxWidth;    //  calculated maximum width for the column 
        private double _urOffset;       //  column's offset
        private Flags _flags;           //  state 
        #endregion Private Fields 

        //----------------------------------------------------- 
        //
        //  Private Structures / Classes
        //
        //------------------------------------------------------ 

        #region Private Structures Classes 
 
        [System.Flags]
        private enum Flags 
        {
            ValidWidth      =   0x1,    //  resulting width unchanged
            ValidAutofit    =   0x2,    //  auto width unchanged
        } 

        #endregion Private Structures Classes 
    } 
}

// 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