Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / StaticTextPointer.cs / 1305600 / StaticTextPointer.cs
//---------------------------------------------------------------------------- // // File: StaticTextPointer.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Optimized minimal version of TextPointer that gets stored on the stack. // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using System; using MS.Internal; using System.Threading; using System.Windows; using System.Collections; internal struct StaticTextPointer { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors internal StaticTextPointer(ITextContainer textContainer, object handle0) : this(textContainer, handle0, 0) { } internal StaticTextPointer(ITextContainer textContainer, object handle0, int handle1) { _textContainer = textContainer; _generation = (textContainer != null) ? textContainer.Generation : 0; _handle0 = handle0; _handle1 = handle1; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods internal ITextPointer CreateDynamicTextPointer(LogicalDirection direction) { AssertGeneration(); return _textContainer.CreateDynamicTextPointer(this, direction); } internal TextPointerContext GetPointerContext(LogicalDirection direction) { AssertGeneration(); return _textContainer.GetPointerContext(this, direction); } internal int GetOffsetToPosition(StaticTextPointer position) { AssertGeneration(); return _textContainer.GetOffsetToPosition(this, position); } internal int GetTextInRun(LogicalDirection direction, char[] textBuffer, int startIndex, int count) { AssertGeneration(); return _textContainer.GetTextInRun(this, direction, textBuffer, startIndex, count); } internal object GetAdjacentElement(LogicalDirection direction) { AssertGeneration(); return _textContainer.GetAdjacentElement(this, direction); } internal StaticTextPointer CreatePointer(int offset) { AssertGeneration(); return _textContainer.CreatePointer(this, offset); } internal StaticTextPointer GetNextContextPosition(LogicalDirection direction) { AssertGeneration(); return _textContainer.GetNextContextPosition(this, direction); } internal int CompareTo(StaticTextPointer position) { AssertGeneration(); return _textContainer.CompareTo(this, position); } internal int CompareTo(ITextPointer position) { AssertGeneration(); return _textContainer.CompareTo(this, position); } internal object GetValue(DependencyProperty formattingProperty) { AssertGeneration(); return _textContainer.GetValue(this, formattingProperty); } internal static StaticTextPointer Min(StaticTextPointer position1, StaticTextPointer position2) { position2.AssertGeneration(); return position1.CompareTo(position2) <= 0 ? position1 : position2; } internal static StaticTextPointer Max(StaticTextPointer position1, StaticTextPointer position2) { position2.AssertGeneration(); return position1.CompareTo(position2) >= 0 ? position1 : position2; } // Asserts this StaticTextPointer is synchronized to the current tree generation. internal void AssertGeneration() { if (_textContainer != null) { Invariant.Assert(_generation == _textContainer.Generation, "StaticTextPointer not synchronized to tree generation!"); } } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties internal ITextContainer TextContainer { get { return _textContainer; } } internal DependencyObject Parent { get { return _textContainer.GetParent(this); } } internal bool IsNull { get { return (_textContainer == null); } } internal object Handle0 { get { return _handle0; } } internal int Handle1 { get { return _handle1; } } #endregion Internal Properties //----------------------------------------------------- // // Internal Fields // //------------------------------------------------------ #region Internal Fields internal static StaticTextPointer Null = new StaticTextPointer(null, null, 0); #endregion Internal Fields //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private readonly ITextContainer _textContainer; private readonly uint _generation; private readonly object _handle0; private readonly int _handle1; #endregion Private Fields } } // 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
- ScrollItemProviderWrapper.cs
- SvcMapFileLoader.cs
- TextServicesCompartment.cs
- OdbcTransaction.cs
- Subtree.cs
- ConstraintStruct.cs
- AutoSizeComboBox.cs
- LabelDesigner.cs
- EntityContainer.cs
- RoutedEventHandlerInfo.cs
- SecurityAlgorithmSuite.cs
- FormViewDeleteEventArgs.cs
- GB18030Encoding.cs
- AsyncContentLoadedEventArgs.cs
- SslStreamSecurityBindingElement.cs
- XmlQualifiedName.cs
- ConstantCheck.cs
- Keywords.cs
- SiteMembershipCondition.cs
- RtfNavigator.cs
- BitmapData.cs
- SiteIdentityPermission.cs
- DefaultHttpHandler.cs
- FormatSettings.cs
- XmlBinaryReader.cs
- DataStreams.cs
- PropertyEmitter.cs
- TextBoxLine.cs
- XsltCompileContext.cs
- DataError.cs
- FileChangesMonitor.cs
- InvalidMessageContractException.cs
- PropertyGridCommands.cs
- TimelineGroup.cs
- SelectionGlyphBase.cs
- StreamWriter.cs
- XmlDomTextWriter.cs
- ProjectionCamera.cs
- TextTreeExtractElementUndoUnit.cs
- SignedXml.cs
- ListViewGroupConverter.cs
- ClientScriptManager.cs
- CheckPair.cs
- D3DImage.cs
- TraceHandler.cs
- BaseTemplateParser.cs
- WinEventHandler.cs
- ApplicationSecurityInfo.cs
- NonBatchDirectoryCompiler.cs
- BindingBase.cs
- TerminateWorkflow.cs
- HighlightVisual.cs
- CompilerLocalReference.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TableCellCollection.cs
- TemplatePartAttribute.cs
- DataGridClipboardHelper.cs
- ContentFilePart.cs
- RelatedEnd.cs
- XmlEventCache.cs
- DataGridViewTextBoxColumn.cs
- WebPartConnectionCollection.cs
- EdmComplexTypeAttribute.cs
- XslCompiledTransform.cs
- TextTreeObjectNode.cs
- AuthorizationContext.cs
- SecurityTimestamp.cs
- XamlWrappingReader.cs
- DesigntimeLicenseContextSerializer.cs
- EventRecord.cs
- Stroke2.cs
- COM2ExtendedUITypeEditor.cs
- MD5CryptoServiceProvider.cs
- RemotingConfigParser.cs
- ResourcesGenerator.cs
- LongMinMaxAggregationOperator.cs
- SessionStateUtil.cs
- StickyNote.cs
- NetMsmqSecurityElement.cs
- TraceProvider.cs
- Trustee.cs
- ComponentCollection.cs
- newitemfactory.cs
- UidManager.cs
- TrackingServices.cs
- XmlChildNodes.cs
- Char.cs
- CustomAttribute.cs
- SHA256Managed.cs
- RequestCachePolicy.cs
- HotSpot.cs
- SourceElementsCollection.cs
- EventSchemaTraceListener.cs
- CmsInterop.cs
- WorkflowRuntimeEndpoint.cs
- ALinqExpressionVisitor.cs
- NonParentingControl.cs
- TextSyndicationContent.cs
- XmlSchemaInfo.cs
- CapabilitiesState.cs