Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- SystemIPv4InterfaceProperties.cs
- Selection.cs
- BrowserTree.cs
- XLinq.cs
- EntityDescriptor.cs
- CellTreeNode.cs
- ObjectHelper.cs
- AudienceUriMode.cs
- XmlArrayAttribute.cs
- ConnectionProviderAttribute.cs
- UIElementHelper.cs
- CellParagraph.cs
- odbcmetadatafactory.cs
- BindingMAnagerBase.cs
- EntityDataSourceStatementEditor.cs
- TaiwanCalendar.cs
- FormClosedEvent.cs
- SemanticResultValue.cs
- BindUriHelper.cs
- IIS7UserPrincipal.cs
- Enum.cs
- DataGridViewRowStateChangedEventArgs.cs
- SizeAnimationClockResource.cs
- WCFModelStrings.Designer.cs
- WebPartDesigner.cs
- PropertyOrder.cs
- XmlSchemaProviderAttribute.cs
- BitmapEffectGroup.cs
- UnsafeCollabNativeMethods.cs
- IMembershipProvider.cs
- UInt64.cs
- StylusPointPropertyInfo.cs
- TextRangeSerialization.cs
- PickBranchDesigner.xaml.cs
- Image.cs
- ModuleBuilder.cs
- GridViewSelectEventArgs.cs
- _ConnectionGroup.cs
- EndOfStreamException.cs
- WorkflowServiceBuildProvider.cs
- PersonalizationEntry.cs
- NameValuePair.cs
- User.cs
- JsonSerializer.cs
- Privilege.cs
- DecimalAnimation.cs
- httpserverutility.cs
- Reference.cs
- AssociationSetEnd.cs
- LineMetrics.cs
- SchemaAttDef.cs
- MenuRenderer.cs
- ExtendedProperty.cs
- GridViewRowCollection.cs
- TableColumnCollection.cs
- AmbientValueAttribute.cs
- EntryPointNotFoundException.cs
- HyperlinkAutomationPeer.cs
- WeakReadOnlyCollection.cs
- ValueType.cs
- GridViewColumn.cs
- RelatedPropertyManager.cs
- Stack.cs
- ProcessModelInfo.cs
- MethodToken.cs
- XmlHierarchyData.cs
- SynchronizationHandlesCodeDomSerializer.cs
- Stack.cs
- ThousandthOfEmRealPoints.cs
- COM2ExtendedUITypeEditor.cs
- PreviousTrackingServiceAttribute.cs
- Request.cs
- EmptyControlCollection.cs
- SafeNativeMethods.cs
- DBConcurrencyException.cs
- RegexParser.cs
- CacheRequest.cs
- Cloud.cs
- FontClient.cs
- BinaryObjectReader.cs
- DurableMessageDispatchInspector.cs
- LateBoundBitmapDecoder.cs
- BindingSource.cs
- IndexOutOfRangeException.cs
- Table.cs
- URLAttribute.cs
- TreeViewEvent.cs
- LabelLiteral.cs
- MessageLogger.cs
- SoundPlayer.cs
- FileDetails.cs
- StylusOverProperty.cs
- QuaternionAnimationBase.cs
- RuleProcessor.cs
- SystemTcpConnection.cs
- ContentPosition.cs
- __Filters.cs
- ReferenceService.cs
- ServiceParser.cs
- SerializableAttribute.cs