Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // //// 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _NativeSSPI.cs
- ClientRoleProvider.cs
- HandoffBehavior.cs
- DataGridPagerStyle.cs
- Freezable.cs
- StatusBarDrawItemEvent.cs
- IncrementalHitTester.cs
- QueryGeneratorBase.cs
- EntityDataSourceDesigner.cs
- EntitySet.cs
- ToolStripDropDownClosedEventArgs.cs
- SparseMemoryStream.cs
- ListItemsPage.cs
- VirtualizingStackPanel.cs
- RoleManagerEventArgs.cs
- ServiceReference.cs
- PostBackOptions.cs
- PreservationFileWriter.cs
- WebAdminConfigurationHelper.cs
- EncoderBestFitFallback.cs
- TypeElement.cs
- ExpanderAutomationPeer.cs
- PseudoWebRequest.cs
- WebReferencesBuildProvider.cs
- RoutedCommand.cs
- StringExpressionSet.cs
- DetailsViewCommandEventArgs.cs
- DataServiceQueryOfT.cs
- LinqDataSourceStatusEventArgs.cs
- connectionpool.cs
- ScrollEventArgs.cs
- WindowsStreamSecurityUpgradeProvider.cs
- EntityProviderFactory.cs
- PropertyGroupDescription.cs
- DataSpaceManager.cs
- baseaxisquery.cs
- XmlnsCache.cs
- PathGradientBrush.cs
- AttachInfo.cs
- ConfigurationManagerHelper.cs
- safex509handles.cs
- TextSelectionProcessor.cs
- XmlResolver.cs
- ExtendedProperty.cs
- PopupRootAutomationPeer.cs
- StandardToolWindows.cs
- TreeNodeSelectionProcessor.cs
- SourceSwitch.cs
- MDIWindowDialog.cs
- ColorConverter.cs
- ActiveXHost.cs
- QuotedStringFormatReader.cs
- SequentialOutput.cs
- DiscoveryClientElement.cs
- SafeFileHandle.cs
- Vector3DCollectionValueSerializer.cs
- ErrorFormatterPage.cs
- SubclassTypeValidator.cs
- DataBindEngine.cs
- EntityReference.cs
- Models.cs
- ThemeableAttribute.cs
- Row.cs
- TypeHelpers.cs
- OracleTransaction.cs
- DataGridViewColumnTypePicker.cs
- RadioButton.cs
- GroupItemAutomationPeer.cs
- Propagator.JoinPropagator.cs
- MailWriter.cs
- ThreadAttributes.cs
- DirectoryLocalQuery.cs
- Documentation.cs
- HtmlFormWrapper.cs
- OutputWindow.cs
- BufferModeSettings.cs
- ScriptRef.cs
- RecognizeCompletedEventArgs.cs
- RTLAwareMessageBox.cs
- TransformDescriptor.cs
- ConstraintManager.cs
- ButtonAutomationPeer.cs
- ProjectionCamera.cs
- PtsPage.cs
- ConstructorBuilder.cs
- Pair.cs
- TypeLoadException.cs
- FtpWebRequest.cs
- GeometryGroup.cs
- MouseGestureConverter.cs
- ArrayConverter.cs
- CodeAccessSecurityEngine.cs
- EntityWrapperFactory.cs
- MutexSecurity.cs
- ApplicationHost.cs
- ExpressionPrefixAttribute.cs
- MaterialGroup.cs
- SqlBuilder.cs
- Pointer.cs
- PrintingPermissionAttribute.cs