Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedSOMElement.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScrollProperties.cs
- PixelFormats.cs
- GridViewCommandEventArgs.cs
- ClockGroup.cs
- XmlSchemaComplexContent.cs
- TextLineBreak.cs
- DateTime.cs
- ToolStripLocationCancelEventArgs.cs
- SliderAutomationPeer.cs
- TransformerConfigurationWizardBase.cs
- RecognizerStateChangedEventArgs.cs
- TypeDescriptionProviderAttribute.cs
- ListChunk.cs
- DataGridViewCheckBoxColumn.cs
- AttachedPropertiesService.cs
- InputBinder.cs
- EmbeddedMailObjectsCollection.cs
- HandlerFactoryCache.cs
- IntSecurity.cs
- OleDbException.cs
- Automation.cs
- ManagedFilter.cs
- DesignerForm.cs
- SelectionEditor.cs
- ContentFilePart.cs
- HtmlInputText.cs
- BookmarkEventArgs.cs
- UriTemplatePathSegment.cs
- AnimatedTypeHelpers.cs
- DocumentPageTextView.cs
- X509ClientCertificateCredentialsElement.cs
- DesignerVerb.cs
- ProgressBarBrushConverter.cs
- FileDialogCustomPlacesCollection.cs
- OpenTypeCommon.cs
- GACIdentityPermission.cs
- CalendarAutoFormat.cs
- BuildProvider.cs
- XamlSerializerUtil.cs
- EmptyEnumerator.cs
- SetStateDesigner.cs
- DPCustomTypeDescriptor.cs
- InfoCardRSACryptoProvider.cs
- CursorEditor.cs
- RijndaelManagedTransform.cs
- WebPartManagerInternals.cs
- GeneratedCodeAttribute.cs
- NamedObject.cs
- SqlConnectionFactory.cs
- PerformanceCounter.cs
- TdsParser.cs
- ListView.cs
- PerformanceCountersElement.cs
- HttpServerVarsCollection.cs
- SmiEventStream.cs
- Exceptions.cs
- StyleTypedPropertyAttribute.cs
- BuildProvider.cs
- XmlSchemaGroupRef.cs
- NetworkInformationException.cs
- RealizationContext.cs
- DataPagerFieldCollection.cs
- RegisteredExpandoAttribute.cs
- CqlBlock.cs
- XmlSchemaInferenceException.cs
- AlignmentYValidation.cs
- XamlVector3DCollectionSerializer.cs
- UnmanagedBitmapWrapper.cs
- Merger.cs
- UrlPath.cs
- CacheAxisQuery.cs
- Line.cs
- WindowsGraphics2.cs
- IndexedWhereQueryOperator.cs
- AudienceUriMode.cs
- Binding.cs
- AbstractExpressions.cs
- IgnoreDeviceFilterElementCollection.cs
- ContextBase.cs
- KerberosTicketHashIdentifierClause.cs
- ScrollProviderWrapper.cs
- EntityDataSourceState.cs
- ValueQuery.cs
- CodeAssignStatement.cs
- InternalConfigHost.cs
- DrawingDrawingContext.cs
- MimePart.cs
- ScriptHandlerFactory.cs
- SourceLineInfo.cs
- BaseHashHelper.cs
- DLinqTableProvider.cs
- XPathBinder.cs
- ColorAnimationUsingKeyFrames.cs
- SQLCharsStorage.cs
- ElementFactory.cs
- AppDomainAttributes.cs
- StringResourceManager.cs
- DependencyPropertyChangedEventArgs.cs
- DragSelectionMessageFilter.cs
- CompModSwitches.cs