Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Documents / FixedSOMElement.cs / 1 / FixedSOMElement.cs
/*++ File: FixedSOMElement.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: Abstract class that provides a common base class for all non-container semantic elements. These elements have a fixed node and start and end symbol indices associated with them. History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Controls; internal abstract class FixedSOMElement : FixedSOMSemanticBox { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors protected FixedSOMElement(FixedNode fixedNode, int startIndex, int endIndex, GeneralTransform transform) { _fixedNode = fixedNode; _startIndex = startIndex; _endIndex = endIndex; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } protected FixedSOMElement(FixedNode fixedNode, GeneralTransform transform) { _fixedNode = fixedNode; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } #endregion Constructors //------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Static methods public static FixedSOMElement CreateFixedSOMElement(FixedPage page, UIElement uiElement, FixedNode fixedNode, int startIndex, int endIndex) { FixedSOMElement element = null; if (uiElement is Glyphs) { Glyphs glyphs = uiElement as Glyphs; if (glyphs.UnicodeString.Length > 0) { GlyphRun glyphRun = glyphs.ToGlyphRun(); Rect alignmentBox = glyphRun.ComputeAlignmentBox(); alignmentBox.Offset(glyphs.OriginX, glyphs.OriginY); GeneralTransform transform = glyphs.TransformToAncestor(page); if (startIndex < 0) { startIndex = 0; } if (endIndex < 0) { endIndex = glyphRun.Characters == null ? 0 : glyphRun.Characters.Count; } element = FixedSOMTextRun.Create(alignmentBox, transform, glyphs, fixedNode, startIndex, endIndex, false); } } else if (uiElement is Image) { element = FixedSOMImage.Create(page, uiElement as Image, fixedNode); } else if (uiElement is Path) { element = FixedSOMImage.Create(page, uiElement as Path, fixedNode); } return element; } #endregion Static methods //-------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Public Properties public FixedNode FixedNode { get { return _fixedNode; } } public int StartIndex { get { return _startIndex; } } public int EndIndex { get { return _endIndex; } } #endregion Public Properties //-------------------------------------------------------------------- // // Internal Properties // //---------------------------------------------------------------------- #region Internal Properties internal FlowNode FlowNode { get { return _flowNode; } set { _flowNode = value; } } internal int OffsetInFlowNode { get { return _offsetInFlowNode; } set { _offsetInFlowNode = value; } } internal Matrix Matrix { get { return _mat; } } #endregion Internal Properties //------------------------------------------------------------------- // // Protected Fields // //---------------------------------------------------------------------- #region Protected Fields protected FixedNode _fixedNode ; protected int _startIndex; protected int _endIndex; protected Matrix _mat; #endregion Protected Fields #region Private Fields private FlowNode _flowNode; private int _offsetInFlowNode; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /*++ File: FixedSOMElement.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: Abstract class that provides a common base class for all non-container semantic elements. These elements have a fixed node and start and end symbol indices associated with them. History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Controls; internal abstract class FixedSOMElement : FixedSOMSemanticBox { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors protected FixedSOMElement(FixedNode fixedNode, int startIndex, int endIndex, GeneralTransform transform) { _fixedNode = fixedNode; _startIndex = startIndex; _endIndex = endIndex; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } protected FixedSOMElement(FixedNode fixedNode, GeneralTransform transform) { _fixedNode = fixedNode; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } #endregion Constructors //------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Static methods public static FixedSOMElement CreateFixedSOMElement(FixedPage page, UIElement uiElement, FixedNode fixedNode, int startIndex, int endIndex) { FixedSOMElement element = null; if (uiElement is Glyphs) { Glyphs glyphs = uiElement as Glyphs; if (glyphs.UnicodeString.Length > 0) { GlyphRun glyphRun = glyphs.ToGlyphRun(); Rect alignmentBox = glyphRun.ComputeAlignmentBox(); alignmentBox.Offset(glyphs.OriginX, glyphs.OriginY); GeneralTransform transform = glyphs.TransformToAncestor(page); if (startIndex < 0) { startIndex = 0; } if (endIndex < 0) { endIndex = glyphRun.Characters == null ? 0 : glyphRun.Characters.Count; } element = FixedSOMTextRun.Create(alignmentBox, transform, glyphs, fixedNode, startIndex, endIndex, false); } } else if (uiElement is Image) { element = FixedSOMImage.Create(page, uiElement as Image, fixedNode); } else if (uiElement is Path) { element = FixedSOMImage.Create(page, uiElement as Path, fixedNode); } return element; } #endregion Static methods //-------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Public Properties public FixedNode FixedNode { get { return _fixedNode; } } public int StartIndex { get { return _startIndex; } } public int EndIndex { get { return _endIndex; } } #endregion Public Properties //-------------------------------------------------------------------- // // Internal Properties // //---------------------------------------------------------------------- #region Internal Properties internal FlowNode FlowNode { get { return _flowNode; } set { _flowNode = value; } } internal int OffsetInFlowNode { get { return _offsetInFlowNode; } set { _offsetInFlowNode = value; } } internal Matrix Matrix { get { return _mat; } } #endregion Internal Properties //------------------------------------------------------------------- // // Protected Fields // //---------------------------------------------------------------------- #region Protected Fields protected FixedNode _fixedNode ; protected int _startIndex; protected int _endIndex; protected Matrix _mat; #endregion Protected Fields #region Private Fields private FlowNode _flowNode; private int _offsetInFlowNode; #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
- RangeContentEnumerator.cs
- RtfToXamlReader.cs
- AttachedPropertiesService.cs
- RawStylusSystemGestureInputReport.cs
- CalendarBlackoutDatesCollection.cs
- WinCategoryAttribute.cs
- Point4DConverter.cs
- TagPrefixCollection.cs
- CmsUtils.cs
- TlsnegoTokenAuthenticator.cs
- DesignerView.cs
- TableLayoutPanelCellPosition.cs
- LocalizedNameDescriptionPair.cs
- JulianCalendar.cs
- FilterableAttribute.cs
- SignedInfo.cs
- DynamicPropertyHolder.cs
- IDReferencePropertyAttribute.cs
- TextHidden.cs
- DataGridViewSelectedCellCollection.cs
- PageAction.cs
- MergePropertyDescriptor.cs
- DocumentAutomationPeer.cs
- CodeConditionStatement.cs
- BmpBitmapDecoder.cs
- Sql8ExpressionRewriter.cs
- StsCommunicationException.cs
- SweepDirectionValidation.cs
- Literal.cs
- DbDataAdapter.cs
- BaseTreeIterator.cs
- JournalEntryStack.cs
- Matrix.cs
- FixUpCollection.cs
- SmtpException.cs
- WebPartRestoreVerb.cs
- ClientCultureInfo.cs
- AsymmetricAlgorithm.cs
- UidManager.cs
- ArrangedElementCollection.cs
- ProxyAttribute.cs
- RowToParametersTransformer.cs
- TreeViewHitTestInfo.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- DoubleAnimationClockResource.cs
- SoapMessage.cs
- SoundPlayerAction.cs
- WebPageTraceListener.cs
- SafeReadContext.cs
- ObjectStorage.cs
- COM2Properties.cs
- TreeNodeMouseHoverEvent.cs
- DesignerHelpers.cs
- TriggerBase.cs
- CacheAxisQuery.cs
- ModuleBuilder.cs
- XmlWrappingWriter.cs
- StateWorkerRequest.cs
- EastAsianLunisolarCalendar.cs
- XmlTextAttribute.cs
- ChineseLunisolarCalendar.cs
- PixelShader.cs
- URLIdentityPermission.cs
- MeasureItemEvent.cs
- HtmlTextArea.cs
- EmptyElement.cs
- OracleBinary.cs
- SubqueryTrackingVisitor.cs
- ProtocolsConfigurationHandler.cs
- XmlReturnWriter.cs
- Point3DCollectionConverter.cs
- BitmapInitialize.cs
- DataGridViewHeaderCell.cs
- TraceLog.cs
- ObjectSet.cs
- OdbcTransaction.cs
- DataGridViewColumnCollection.cs
- AssemblyFilter.cs
- HyperLinkField.cs
- DbParameterCollection.cs
- ping.cs
- DBBindings.cs
- StaticSiteMapProvider.cs
- DataErrorValidationRule.cs
- OutOfProcStateClientManager.cs
- ToolStripContainer.cs
- XmlExtensionFunction.cs
- ToReply.cs
- PeerTransportCredentialType.cs
- TransactionManagerProxy.cs
- TreeViewDataItemAutomationPeer.cs
- CompilerResults.cs
- EndGetFileNameFromUserRequest.cs
- MatrixConverter.cs
- UnsafeNativeMethods.cs
- TextTreeUndo.cs
- IndexedGlyphRun.cs
- TextElement.cs
- Win32Native.cs
- __FastResourceComparer.cs