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
- UIServiceHelper.cs
- ConstructorExpr.cs
- Stylesheet.cs
- FormsAuthenticationConfiguration.cs
- SiteMapPath.cs
- SqlError.cs
- TimeSpanStorage.cs
- NativeMethods.cs
- ParameterRetriever.cs
- CompilerTypeWithParams.cs
- ResourcesBuildProvider.cs
- CodeTypeConstructor.cs
- PictureBoxDesigner.cs
- DataObjectMethodAttribute.cs
- UmAlQuraCalendar.cs
- Tool.cs
- Mouse.cs
- XmlSchemaObject.cs
- PageWrapper.cs
- ConsumerConnectionPointCollection.cs
- DrawingState.cs
- updatecommandorderer.cs
- AppearanceEditorPart.cs
- Journal.cs
- TextProviderWrapper.cs
- contentDescriptor.cs
- BufferBuilder.cs
- CaseCqlBlock.cs
- Math.cs
- Environment.cs
- ExternalCalls.cs
- DateTimeConverter.cs
- EventOpcode.cs
- SemanticResultValue.cs
- DbDataSourceEnumerator.cs
- MetadataArtifactLoaderResource.cs
- DataColumnChangeEvent.cs
- InstanceDescriptor.cs
- LinearQuaternionKeyFrame.cs
- SoapObjectWriter.cs
- ProjectionPathSegment.cs
- SafeNativeMethods.cs
- _UriTypeConverter.cs
- TypeLibConverter.cs
- ContextMenuService.cs
- SqlConnectionString.cs
- TileBrush.cs
- ObjectHelper.cs
- documentsequencetextpointer.cs
- FontUnitConverter.cs
- SmtpSection.cs
- BitmapCodecInfo.cs
- RightsManagementPermission.cs
- CompressStream.cs
- StubHelpers.cs
- TextLineBreak.cs
- MetadataArtifactLoaderCompositeFile.cs
- UnhandledExceptionEventArgs.cs
- SqlError.cs
- DataControlButton.cs
- EmptyEnumerator.cs
- httpapplicationstate.cs
- QilFactory.cs
- Completion.cs
- XPathChildIterator.cs
- WebPartManager.cs
- PropertyToken.cs
- WmlCommandAdapter.cs
- DirtyTextRange.cs
- UnsafeNativeMethods.cs
- ExpressionBindings.cs
- MemberMaps.cs
- DataTableTypeConverter.cs
- DecimalConverter.cs
- ScrollProviderWrapper.cs
- ConfigurationSettings.cs
- TextDecorationCollectionConverter.cs
- ClientFormsIdentity.cs
- ListMarkerSourceInfo.cs
- BinaryUtilClasses.cs
- DispatcherExceptionEventArgs.cs
- TracingConnection.cs
- HelpOperationInvoker.cs
- XmlNode.cs
- errorpatternmatcher.cs
- DropSource.cs
- DatagridviewDisplayedBandsData.cs
- StateBag.cs
- WindowsEditBoxRange.cs
- DataGridLinkButton.cs
- XNodeNavigator.cs
- DataMember.cs
- CultureMapper.cs
- NetTcpBindingCollectionElement.cs
- WeakRefEnumerator.cs
- DbInsertCommandTree.cs
- TemplateInstanceAttribute.cs
- TextPatternIdentifiers.cs
- BufferedStream2.cs
- FocusChangedEventArgs.cs