Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / IO / Packaging / fixedPageContentExtractor.cs / 1305600 / fixedPageContentExtractor.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Given a DOM node for a fixed page, enumerates its text content. // // History: // 05/11/2004: JohnLarc: Initial implementation //--------------------------------------------------------------------------- using System; using System.Xml; namespace MS.Internal.IO.Packaging { ////// Implements a sequence of (textContent, precedingDelimiter) pairs for /// a fixed page node. /// internal class FixedPageContentExtractor { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Initialize a FixedPageContentExtractor from a DOM node. /// internal FixedPageContentExtractor(XmlNode fixedPage) { _fixedPageInfo = new XmlFixedPageInfo(fixedPage); _nextGlyphRun = 0; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Return the content of the next glyph run, with a boolean indication /// whether it is separated by a space form the preceding glyph run. /// internal string NextGlyphContent(out bool inline, out uint lcid) { // Right now, we use the simplest possible heuristic for // spacing glyph runs: All pairs of adjacent glyph runs are assumed // to be separated by a word break. inline = false; lcid = 0; // End of page? if (_nextGlyphRun >= _fixedPageInfo.GlyphRunCount) { return null; } // Retrieve inline, lcid and return value from the next glyph run info. GlyphRunInfo glyphRunInfo = _fixedPageInfo.GlyphRunAtPosition(_nextGlyphRun); lcid = glyphRunInfo.LanguageID; // Point to the next glyph run for the next call and return. ++_nextGlyphRun; return glyphRunInfo.UnicodeString; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Indicates whether no more content can be returned. /// internal bool AtEndOfPage { get { return _nextGlyphRun >= _fixedPageInfo.GlyphRunCount; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private XmlFixedPageInfo _fixedPageInfo; private int _nextGlyphRun; #endregion Private Fields } } // 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: // Given a DOM node for a fixed page, enumerates its text content. // // History: // 05/11/2004: JohnLarc: Initial implementation //--------------------------------------------------------------------------- using System; using System.Xml; namespace MS.Internal.IO.Packaging { ////// Implements a sequence of (textContent, precedingDelimiter) pairs for /// a fixed page node. /// internal class FixedPageContentExtractor { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Initialize a FixedPageContentExtractor from a DOM node. /// internal FixedPageContentExtractor(XmlNode fixedPage) { _fixedPageInfo = new XmlFixedPageInfo(fixedPage); _nextGlyphRun = 0; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Return the content of the next glyph run, with a boolean indication /// whether it is separated by a space form the preceding glyph run. /// internal string NextGlyphContent(out bool inline, out uint lcid) { // Right now, we use the simplest possible heuristic for // spacing glyph runs: All pairs of adjacent glyph runs are assumed // to be separated by a word break. inline = false; lcid = 0; // End of page? if (_nextGlyphRun >= _fixedPageInfo.GlyphRunCount) { return null; } // Retrieve inline, lcid and return value from the next glyph run info. GlyphRunInfo glyphRunInfo = _fixedPageInfo.GlyphRunAtPosition(_nextGlyphRun); lcid = glyphRunInfo.LanguageID; // Point to the next glyph run for the next call and return. ++_nextGlyphRun; return glyphRunInfo.UnicodeString; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Indicates whether no more content can be returned. /// internal bool AtEndOfPage { get { return _nextGlyphRun >= _fixedPageInfo.GlyphRunCount; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private XmlFixedPageInfo _fixedPageInfo; private int _nextGlyphRun; #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
- ListItemParagraph.cs
- TransformerInfo.cs
- RectConverter.cs
- WrappedReader.cs
- shaperfactory.cs
- XMLUtil.cs
- BaseDataList.cs
- SystemIcmpV4Statistics.cs
- RijndaelManagedTransform.cs
- ConnectionInterfaceCollection.cs
- CFGGrammar.cs
- Vector3DCollectionValueSerializer.cs
- FontDialog.cs
- TcpAppDomainProtocolHandler.cs
- ThemeInfoAttribute.cs
- LineSegment.cs
- SpellerHighlightLayer.cs
- CallTemplateAction.cs
- Timer.cs
- ImageCreator.cs
- XmlObjectSerializerWriteContextComplex.cs
- BezierSegment.cs
- WizardForm.cs
- XmlNotation.cs
- BamlRecordWriter.cs
- ResourceReferenceExpression.cs
- ByeOperation11AsyncResult.cs
- controlskin.cs
- ByteFacetDescriptionElement.cs
- PointCollectionValueSerializer.cs
- ScriptControlDescriptor.cs
- FixedSOMLineCollection.cs
- ContentElement.cs
- DesignTimeSiteMapProvider.cs
- ButtonField.cs
- XPathExpr.cs
- ListBoxItemAutomationPeer.cs
- ReferencedCollectionType.cs
- DataGridViewColumnStateChangedEventArgs.cs
- RegionData.cs
- RawTextInputReport.cs
- DbParameterHelper.cs
- SQLSingleStorage.cs
- Buffer.cs
- ExpressionEvaluator.cs
- IntPtr.cs
- WindowHideOrCloseTracker.cs
- DrawingGroup.cs
- Registry.cs
- StrokeSerializer.cs
- PageAsyncTask.cs
- AxisAngleRotation3D.cs
- KerberosTokenFactoryCredential.cs
- WinEventWrap.cs
- PixelFormats.cs
- ToolboxItemCollection.cs
- DropDownButton.cs
- LocalizationComments.cs
- ExpressionBuilderContext.cs
- Properties.cs
- SHA384.cs
- CryptoHelper.cs
- OdbcEnvironment.cs
- NativeObjectSecurity.cs
- DirectionalLight.cs
- QilInvoke.cs
- HostedImpersonationContext.cs
- UseManagedPresentationBindingElement.cs
- IndexedGlyphRun.cs
- DataGridViewColumnCollectionEditor.cs
- WindowVisualStateTracker.cs
- IntellisenseTextBox.designer.cs
- CompoundFileStorageReference.cs
- CursorInteropHelper.cs
- RemotingException.cs
- DynamicDiscoSearcher.cs
- Persist.cs
- TypeReference.cs
- GridEntryCollection.cs
- MasterPageParser.cs
- MarshalDirectiveException.cs
- RequestBringIntoViewEventArgs.cs
- GraphicsPath.cs
- CacheAxisQuery.cs
- PartialList.cs
- JsonWriter.cs
- ContainerParagraph.cs
- UserPreferenceChangingEventArgs.cs
- ExtensionQuery.cs
- DataGridViewCellStateChangedEventArgs.cs
- PresentationTraceSources.cs
- Schema.cs
- RadioButtonList.cs
- ImageListUtils.cs
- Lease.cs
- AutomationPeer.cs
- XPathBinder.cs
- EditorZone.cs
- DefaultBindingPropertyAttribute.cs
- Triplet.cs