Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....] - 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
- SoundPlayer.cs
- ObservableDictionary.cs
- SafeNativeMethods.cs
- JavaScriptObjectDeserializer.cs
- Cell.cs
- FileResponseElement.cs
- HttpCacheParams.cs
- OutgoingWebResponseContext.cs
- AuditLogLocation.cs
- OrderablePartitioner.cs
- BookmarkCallbackWrapper.cs
- MarshalByRefObject.cs
- KeyGesture.cs
- HwndHostAutomationPeer.cs
- SchemaMapping.cs
- PassportAuthentication.cs
- RsaElement.cs
- Span.cs
- BitStack.cs
- BypassElement.cs
- WebServiceParameterData.cs
- TypeUsageBuilder.cs
- ToolStripItemTextRenderEventArgs.cs
- FieldAccessException.cs
- Token.cs
- SchemaCollectionPreprocessor.cs
- _Semaphore.cs
- QuaternionConverter.cs
- SoapSchemaMember.cs
- MergePropertyDescriptor.cs
- RunWorkerCompletedEventArgs.cs
- SharedPersonalizationStateInfo.cs
- PieceNameHelper.cs
- MainMenu.cs
- securitycriticaldataformultiplegetandset.cs
- ProcessInputEventArgs.cs
- ObjectViewFactory.cs
- LogFlushAsyncResult.cs
- ObservableDictionary.cs
- TextTreeInsertUndoUnit.cs
- IconEditor.cs
- SafeProcessHandle.cs
- FontStyle.cs
- HttpConfigurationContext.cs
- ETagAttribute.cs
- PartEditor.cs
- followingsibling.cs
- StringFunctions.cs
- SchemaRegistration.cs
- GetLedgerRequest.cs
- StorageEntityTypeMapping.cs
- MissingMethodException.cs
- SizeLimitedCache.cs
- SqlConnectionString.cs
- ContainerFilterService.cs
- SchemaCreator.cs
- SmiEventStream.cs
- HyperLinkField.cs
- PackageDigitalSignatureManager.cs
- DocumentViewerAutomationPeer.cs
- XPathNavigatorReader.cs
- ObjectAnimationBase.cs
- DataMember.cs
- Int16Converter.cs
- EntityDataSourceViewSchema.cs
- OleDbErrorCollection.cs
- MetadataCache.cs
- ThreadExceptionDialog.cs
- ConstrainedGroup.cs
- documentation.cs
- DataError.cs
- addressfiltermode.cs
- XmlDocumentSurrogate.cs
- GlyphRunDrawing.cs
- WmfPlaceableFileHeader.cs
- XMLDiffLoader.cs
- BulletedList.cs
- StrongNameUtility.cs
- MultiTouchSystemGestureLogic.cs
- WindowsListViewGroupHelper.cs
- SiteMapPath.cs
- RouteCollection.cs
- TabControlEvent.cs
- RichTextBoxConstants.cs
- Ports.cs
- CmsUtils.cs
- TCPClient.cs
- CdpEqualityComparer.cs
- ImmutableClientRuntime.cs
- TextEffect.cs
- FixedStringLookup.cs
- Int64KeyFrameCollection.cs
- TextAutomationPeer.cs
- MenuItemCollection.cs
- UInt32.cs
- MetadataPropertyAttribute.cs
- DbConnectionStringCommon.cs
- WebPartDisplayModeEventArgs.cs
- ParenthesizePropertyNameAttribute.cs
- PeerCollaborationPermission.cs