Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / ColumnResizeUndoUnit.cs / 1305600 / ColumnResizeUndoUnit.cs
//----------------------------------------------------------------------------
//
// File: ColumnResizeUndoUnit.cs
//
// Description: Undo unit for resizing columns
//
// History:
// 01/27/2005 : GHermann - Created
//
//---------------------------------------------------------------------------
using MS.Internal.Documents;
namespace System.Windows.Documents
{
internal class ColumnResizeUndoUnit : ParentUndoUnit
{
#region Constructors
internal ColumnResizeUndoUnit(TextPointer textPointerTable, int columnIndex, double[] columnWidths, double resizeAmount) : base("ColumnResize")
{
_textContainer = textPointerTable.TextContainer;
_cpTable = _textContainer.Start.GetOffsetToPosition(textPointerTable);
_columnWidths = columnWidths;
_columnIndex = columnIndex;
_resizeAmount = resizeAmount;
}
#endregion Constructors
#region Public Methods
///
/// Perform the appropriate action for this unit. If this is a parent undo unit, the
/// parent must create an appropriate parent undo unit to contain the redo units.
///
public override void Do()
{
UndoManager undoManager;
IParentUndoUnit redo;
TextPointer textPointerTable;
Table table;
undoManager = TopContainer as UndoManager;
redo = null;
textPointerTable = new TextPointer(_textContainer.Start, _cpTable, LogicalDirection.Forward);
table = (Table) textPointerTable.Parent;
_columnWidths[_columnIndex] -= _resizeAmount;
if(_columnIndex < table.ColumnCount - 1)
{
_columnWidths[_columnIndex + 1] += _resizeAmount;
}
if(undoManager != null && undoManager.IsEnabled)
{
redo = new ColumnResizeUndoUnit(textPointerTable, _columnIndex, _columnWidths, -_resizeAmount);
undoManager.Open(redo);
}
TextRangeEditTables.EnsureTableColumnsAreFixedSize(table, _columnWidths);
if(redo != null)
{
undoManager.Close(redo, UndoCloseAction.Commit);
}
}
#endregion Public Methods
#region Private Data
private TextContainer _textContainer;
private double[] _columnWidths;
private int _cpTable;
private int _columnIndex;
private double _resizeAmount;
#endregion Private Data
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
// File: ColumnResizeUndoUnit.cs
//
// Description: Undo unit for resizing columns
//
// History:
// 01/27/2005 : GHermann - Created
//
//---------------------------------------------------------------------------
using MS.Internal.Documents;
namespace System.Windows.Documents
{
internal class ColumnResizeUndoUnit : ParentUndoUnit
{
#region Constructors
internal ColumnResizeUndoUnit(TextPointer textPointerTable, int columnIndex, double[] columnWidths, double resizeAmount) : base("ColumnResize")
{
_textContainer = textPointerTable.TextContainer;
_cpTable = _textContainer.Start.GetOffsetToPosition(textPointerTable);
_columnWidths = columnWidths;
_columnIndex = columnIndex;
_resizeAmount = resizeAmount;
}
#endregion Constructors
#region Public Methods
///
/// Perform the appropriate action for this unit. If this is a parent undo unit, the
/// parent must create an appropriate parent undo unit to contain the redo units.
///
public override void Do()
{
UndoManager undoManager;
IParentUndoUnit redo;
TextPointer textPointerTable;
Table table;
undoManager = TopContainer as UndoManager;
redo = null;
textPointerTable = new TextPointer(_textContainer.Start, _cpTable, LogicalDirection.Forward);
table = (Table) textPointerTable.Parent;
_columnWidths[_columnIndex] -= _resizeAmount;
if(_columnIndex < table.ColumnCount - 1)
{
_columnWidths[_columnIndex + 1] += _resizeAmount;
}
if(undoManager != null && undoManager.IsEnabled)
{
redo = new ColumnResizeUndoUnit(textPointerTable, _columnIndex, _columnWidths, -_resizeAmount);
undoManager.Open(redo);
}
TextRangeEditTables.EnsureTableColumnsAreFixedSize(table, _columnWidths);
if(redo != null)
{
undoManager.Close(redo, UndoCloseAction.Commit);
}
}
#endregion Public Methods
#region Private Data
private TextContainer _textContainer;
private double[] _columnWidths;
private int _cpTable;
private int _columnIndex;
private double _resizeAmount;
#endregion Private Data
}
}
// 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
- MSAAWinEventWrap.cs
- Normalization.cs
- OdbcParameterCollection.cs
- PrintPreviewControl.cs
- EntityDesignerUtils.cs
- TextElementEnumerator.cs
- DrawingAttributes.cs
- ByteAnimation.cs
- MenuTracker.cs
- Win32SafeHandles.cs
- MulticastIPAddressInformationCollection.cs
- Menu.cs
- CopyOfAction.cs
- FlowLayoutSettings.cs
- _StreamFramer.cs
- BitVec.cs
- ElementsClipboardData.cs
- InputReportEventArgs.cs
- DataGridColumnReorderingEventArgs.cs
- StrongName.cs
- DataControlFieldHeaderCell.cs
- SafeMarshalContext.cs
- ListItemCollection.cs
- TreeNode.cs
- StreamGeometry.cs
- DataGridTablesFactory.cs
- ValidationErrorCollection.cs
- VisualTreeUtils.cs
- KeyedHashAlgorithm.cs
- MetadataArtifactLoader.cs
- RangeValidator.cs
- MemberInfoSerializationHolder.cs
- SessionEndingCancelEventArgs.cs
- RecognitionEventArgs.cs
- XmlLanguageConverter.cs
- SubstitutionList.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- IncomingWebRequestContext.cs
- DtdParser.cs
- ClientFormsIdentity.cs
- TextLine.cs
- KeyManager.cs
- MobileSysDescriptionAttribute.cs
- Debugger.cs
- HelpKeywordAttribute.cs
- RandomNumberGenerator.cs
- CachedBitmap.cs
- VideoDrawing.cs
- RijndaelManaged.cs
- GenerateTemporaryAssemblyTask.cs
- GroupBoxRenderer.cs
- MultiDataTrigger.cs
- SettingsPropertyValue.cs
- BaseValidator.cs
- SectionXmlInfo.cs
- WebPartHeaderCloseVerb.cs
- HtmlTernaryTree.cs
- PropertyEntry.cs
- FixedSOMSemanticBox.cs
- ParentUndoUnit.cs
- XmlBufferReader.cs
- PartialToken.cs
- SqlClientPermission.cs
- HelpKeywordAttribute.cs
- XmlSecureResolver.cs
- XmlAtomicValue.cs
- RectangleGeometry.cs
- ClientSettingsProvider.cs
- SmiSettersStream.cs
- WebPartConnectionsCloseVerb.cs
- Inflater.cs
- RootBrowserWindow.cs
- FontUnitConverter.cs
- StatusBarItemAutomationPeer.cs
- ComAdminWrapper.cs
- XmlSchemaSimpleTypeList.cs
- Byte.cs
- SequentialOutput.cs
- Internal.cs
- XmlQueryContext.cs
- SystemIPInterfaceProperties.cs
- NameObjectCollectionBase.cs
- PeerNameRecord.cs
- LineGeometry.cs
- PropertyInformation.cs
- TextDecorationCollectionConverter.cs
- ScriptingAuthenticationServiceSection.cs
- ProcessProtocolHandler.cs
- BitmapEffectInput.cs
- ChannelFactoryBase.cs
- WebPartDescriptionCollection.cs
- entityreference_tresulttype.cs
- DayRenderEvent.cs
- RSAPKCS1SignatureDeformatter.cs
- ScalarConstant.cs
- DesignerLabelAdapter.cs
- StatusBar.cs
- FileUtil.cs
- HttpListenerContext.cs
- StorageMappingFragment.cs