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 / IO / Packaging / xmlfixedPageInfo.cs / 1 / xmlfixedPageInfo.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description:
// Implements a DOM-based subclass of the FixedPageInfo abstract class.
// The class functions as an array of XmlGlyphRunInfo's in markup order.
//
// History:
// 05/06/2004: JohnLarc: Initial implementation
//---------------------------------------------------------------------------
using System;
using System.Windows; // For ExceptionStringTable
using System.Xml; // For DOM objects
using System.Diagnostics; // For Assert
using System.Globalization; // For CultureInfo
namespace MS.Internal.IO.Packaging
{
internal class XmlFixedPageInfo : MS.Internal.FixedPageInfo
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Initialize object from DOM node.
///
///
/// The DOM node is assumed to be a XAML FixedPage element. Its namespace URI
/// is subsequently used to look for its nested Glyphs elements (see private property NodeList).
///
internal XmlFixedPageInfo(XmlNode fixedPageNode)
{
_pageNode = fixedPageNode;
Debug.Assert(_pageNode != null);
if (_pageNode.LocalName != _fixedPageName || _pageNode.NamespaceURI != ElementTableKey.FixedMarkupNamespace)
{
throw new ArgumentException(SR.Get(SRID.UnexpectedXmlNodeInXmlFixedPageInfoConstructor,
_pageNode.NamespaceURI, _pageNode.LocalName,
ElementTableKey.FixedMarkupNamespace, _fixedPageName));
}
}
#endregion Constructors
//------------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
///
/// Get the glyph run at zero-based position 'position'.
///
///
/// Returns null for a nonexistent position. No exception raised.
///
internal override GlyphRunInfo GlyphRunAtPosition(int position)
{
if (position < 0 || position >= GlyphRunList.Length)
{
return null;
}
if (GlyphRunList[position] == null)
{
GlyphRunList[position] = new XmlGlyphRunInfo(NodeList[position]);
}
return GlyphRunList[position];
}
#endregion Internal Methods
//------------------------------------------------------
//
// Internal Properties
//
//------------------------------------------------------
#region Internal Properties
///
/// Indicates the number of glyph runs on the page.
///
internal override int GlyphRunCount
{
get
{
return GlyphRunList.Length;
}
}
#endregion Internal Properties
//-----------------------------------------------------
//
// Private Properties
//
//------------------------------------------------------
#region Private Properties
///
/// Lazily initialize _glyphRunList, an array of XmlGlyphInfo objects,
/// using the NodeList private property.
///
///
/// When using Visual Studio to step through code using this property, make sure the option
/// "Allow property evaluation in variables windows" is unchecked.
///
private XmlGlyphRunInfo[] GlyphRunList
{
get
{
if (_glyphRunList == null)
{
_glyphRunList = new XmlGlyphRunInfo[NodeList.Count];
}
return _glyphRunList;
}
}
///
/// Lazily initialize the list of Glyphs elements on the page using XPath.
///
///
/// When using Visual Studio to step through code using this property, make sure the option
/// "Allow property evaluation in variables windows" is unchecked.
///
private XmlNodeList NodeList
{
get
{
if (_nodeList == null)
{
string glyphRunQuery = String.Format(CultureInfo.InvariantCulture, ".//*[namespace-uri()='{0}' and local-name()='{1}']",
ElementTableKey.FixedMarkupNamespace,
_glyphRunName);
_nodeList = _pageNode.SelectNodes(glyphRunQuery);
}
return _nodeList;
}
}
#endregion Private Properties
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
#region Constants
private const string _fixedPageName = "FixedPage";
private const string _glyphRunName = "Glyphs";
#endregion Constants
private XmlNode _pageNode;
private XmlNodeList _nodeList = null;
private XmlGlyphRunInfo[] _glyphRunList = null;
#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:
// Implements a DOM-based subclass of the FixedPageInfo abstract class.
// The class functions as an array of XmlGlyphRunInfo's in markup order.
//
// History:
// 05/06/2004: JohnLarc: Initial implementation
//---------------------------------------------------------------------------
using System;
using System.Windows; // For ExceptionStringTable
using System.Xml; // For DOM objects
using System.Diagnostics; // For Assert
using System.Globalization; // For CultureInfo
namespace MS.Internal.IO.Packaging
{
internal class XmlFixedPageInfo : MS.Internal.FixedPageInfo
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Initialize object from DOM node.
///
///
/// The DOM node is assumed to be a XAML FixedPage element. Its namespace URI
/// is subsequently used to look for its nested Glyphs elements (see private property NodeList).
///
internal XmlFixedPageInfo(XmlNode fixedPageNode)
{
_pageNode = fixedPageNode;
Debug.Assert(_pageNode != null);
if (_pageNode.LocalName != _fixedPageName || _pageNode.NamespaceURI != ElementTableKey.FixedMarkupNamespace)
{
throw new ArgumentException(SR.Get(SRID.UnexpectedXmlNodeInXmlFixedPageInfoConstructor,
_pageNode.NamespaceURI, _pageNode.LocalName,
ElementTableKey.FixedMarkupNamespace, _fixedPageName));
}
}
#endregion Constructors
//------------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
///
/// Get the glyph run at zero-based position 'position'.
///
///
/// Returns null for a nonexistent position. No exception raised.
///
internal override GlyphRunInfo GlyphRunAtPosition(int position)
{
if (position < 0 || position >= GlyphRunList.Length)
{
return null;
}
if (GlyphRunList[position] == null)
{
GlyphRunList[position] = new XmlGlyphRunInfo(NodeList[position]);
}
return GlyphRunList[position];
}
#endregion Internal Methods
//------------------------------------------------------
//
// Internal Properties
//
//------------------------------------------------------
#region Internal Properties
///
/// Indicates the number of glyph runs on the page.
///
internal override int GlyphRunCount
{
get
{
return GlyphRunList.Length;
}
}
#endregion Internal Properties
//-----------------------------------------------------
//
// Private Properties
//
//------------------------------------------------------
#region Private Properties
///
/// Lazily initialize _glyphRunList, an array of XmlGlyphInfo objects,
/// using the NodeList private property.
///
///
/// When using Visual Studio to step through code using this property, make sure the option
/// "Allow property evaluation in variables windows" is unchecked.
///
private XmlGlyphRunInfo[] GlyphRunList
{
get
{
if (_glyphRunList == null)
{
_glyphRunList = new XmlGlyphRunInfo[NodeList.Count];
}
return _glyphRunList;
}
}
///
/// Lazily initialize the list of Glyphs elements on the page using XPath.
///
///
/// When using Visual Studio to step through code using this property, make sure the option
/// "Allow property evaluation in variables windows" is unchecked.
///
private XmlNodeList NodeList
{
get
{
if (_nodeList == null)
{
string glyphRunQuery = String.Format(CultureInfo.InvariantCulture, ".//*[namespace-uri()='{0}' and local-name()='{1}']",
ElementTableKey.FixedMarkupNamespace,
_glyphRunName);
_nodeList = _pageNode.SelectNodes(glyphRunQuery);
}
return _nodeList;
}
}
#endregion Private Properties
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
#region Constants
private const string _fixedPageName = "FixedPage";
private const string _glyphRunName = "Glyphs";
#endregion Constants
private XmlNode _pageNode;
private XmlNodeList _nodeList = null;
private XmlGlyphRunInfo[] _glyphRunList = null;
#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
- LingerOption.cs
- OutgoingWebRequestContext.cs
- WindowsImpersonationContext.cs
- BaseEntityWrapper.cs
- DocumentViewerBaseAutomationPeer.cs
- XslException.cs
- GenericEnumConverter.cs
- ScrollableControlDesigner.cs
- ApplicationCommands.cs
- TextServicesManager.cs
- BuilderPropertyEntry.cs
- dataSvcMapFileLoader.cs
- BitmapVisualManager.cs
- CounterCreationData.cs
- GridLength.cs
- SyncMethodInvoker.cs
- WebHeaderCollection.cs
- CodeIdentifier.cs
- QilParameter.cs
- AssemblyCollection.cs
- RequestQueue.cs
- TypedElement.cs
- JapaneseLunisolarCalendar.cs
- SafeProcessHandle.cs
- IFlowDocumentViewer.cs
- Random.cs
- LongValidatorAttribute.cs
- Speller.cs
- CursorConverter.cs
- CellConstantDomain.cs
- CommandValueSerializer.cs
- AnnotationAuthorChangedEventArgs.cs
- TdsParserStateObject.cs
- VScrollProperties.cs
- HebrewNumber.cs
- ModuleBuilder.cs
- Propagator.cs
- PagerSettings.cs
- MouseDevice.cs
- DataGrid.cs
- ValidationRule.cs
- BigInt.cs
- CommandValueSerializer.cs
- X509ChainElement.cs
- DataRowExtensions.cs
- DataRowExtensions.cs
- KeyGestureValueSerializer.cs
- XamlBrushSerializer.cs
- SqlUDTStorage.cs
- StubHelpers.cs
- XPathAxisIterator.cs
- HMACSHA256.cs
- ViewPort3D.cs
- FixedSOMPageConstructor.cs
- AuditLogLocation.cs
- StrokeCollection2.cs
- ProfileGroupSettingsCollection.cs
- PageThemeCodeDomTreeGenerator.cs
- MimeObjectFactory.cs
- BaseProcessor.cs
- Message.cs
- CompModSwitches.cs
- DataKeyCollection.cs
- SqlFacetAttribute.cs
- WpfPayload.cs
- FrameworkElementFactory.cs
- MulticastDelegate.cs
- KeySpline.cs
- RepeaterItem.cs
- XmlSortKey.cs
- WebPart.cs
- UInt32Storage.cs
- ListViewDataItem.cs
- WebPartsPersonalization.cs
- MenuScrollingVisibilityConverter.cs
- DataGridBoolColumn.cs
- PrintDocument.cs
- BufferedReadStream.cs
- HtmlTableCellCollection.cs
- DBSchemaTable.cs
- newinstructionaction.cs
- ConfigurationFileMap.cs
- COM2Properties.cs
- SqlGatherConsumedAliases.cs
- ShaperBuffers.cs
- ProvideValueServiceProvider.cs
- DESCryptoServiceProvider.cs
- AmbientLight.cs
- MatchAttribute.cs
- KeyFrames.cs
- OutputCacheProfile.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- TextTreeTextNode.cs
- TextTreeInsertUndoUnit.cs
- SqlDependency.cs
- DataGridViewDataConnection.cs
- QueryExpression.cs
- ItemCollectionEditor.cs
- XhtmlBasicLiteralTextAdapter.cs
- ErrorProvider.cs