Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / PtsTable / CalculatedColumn.cs / 1 / 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
- Update.cs
- SqlConnection.cs
- ProgressiveCrcCalculatingStream.cs
- CredentialCache.cs
- DoubleConverter.cs
- GenericTypeParameterBuilder.cs
- BadImageFormatException.cs
- TextTabProperties.cs
- DataSourceExpression.cs
- _NetRes.cs
- ToolStripDropDownItemDesigner.cs
- DesignerActionMethodItem.cs
- externdll.cs
- WebProxyScriptElement.cs
- FixedSOMLineRanges.cs
- XslCompiledTransform.cs
- TextRange.cs
- Helpers.cs
- SoapEnumAttribute.cs
- DebugController.cs
- ListViewGroupItemCollection.cs
- TextAdaptor.cs
- ColumnHeaderCollectionEditor.cs
- ContentIterators.cs
- ByteStack.cs
- CodeSnippetTypeMember.cs
- RSAOAEPKeyExchangeDeformatter.cs
- IntSumAggregationOperator.cs
- WorkflowInstanceRecord.cs
- EventLogException.cs
- WebServiceTypeData.cs
- SystemPens.cs
- BrowserCapabilitiesFactory.cs
- HttpModuleAction.cs
- SecurityToken.cs
- NativeMethods.cs
- ServerValidateEventArgs.cs
- ViewPort3D.cs
- RoutedEventValueSerializer.cs
- ConditionalAttribute.cs
- ModelServiceImpl.cs
- DataGridViewCellConverter.cs
- DateTimeFormatInfo.cs
- DataGridViewSelectedRowCollection.cs
- FixedSOMPageConstructor.cs
- webproxy.cs
- FieldNameLookup.cs
- HttpHandlerActionCollection.cs
- SharedPersonalizationStateInfo.cs
- ConnectionPointGlyph.cs
- WebRequest.cs
- SchemaNames.cs
- CompilerGlobalScopeAttribute.cs
- ScrollBarAutomationPeer.cs
- ObjectDataSourceFilteringEventArgs.cs
- WebPartCloseVerb.cs
- DataGridColumn.cs
- EventArgs.cs
- TransformConverter.cs
- HeaderedItemsControl.cs
- DbConnectionHelper.cs
- Encoding.cs
- SqlConnectionStringBuilder.cs
- ApplicationTrust.cs
- ReflectTypeDescriptionProvider.cs
- ClientSponsor.cs
- StatusBar.cs
- SerializerProvider.cs
- Select.cs
- Comparer.cs
- WebConfigurationManager.cs
- BridgeDataRecord.cs
- CodeAttributeArgumentCollection.cs
- Win32KeyboardDevice.cs
- TransactionFlowProperty.cs
- Boolean.cs
- TextTreeTextNode.cs
- SqlCacheDependencySection.cs
- dataprotectionpermissionattribute.cs
- ObjectDataSource.cs
- XslCompiledTransform.cs
- SizeValueSerializer.cs
- NgenServicingAttributes.cs
- DoubleLinkList.cs
- SpellCheck.cs
- DropAnimation.xaml.cs
- SessionStateSection.cs
- TextElementCollection.cs
- CssTextWriter.cs
- Math.cs
- OpCodes.cs
- BuildProviderAppliesToAttribute.cs
- CapiSafeHandles.cs
- RowType.cs
- FontEmbeddingManager.cs
- LassoHelper.cs
- CodeTypeDeclarationCollection.cs
- IResourceProvider.cs
- PictureBox.cs
- KnownBoxes.cs