Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ComponentDispatcher.cs
- ToolStripSettings.cs
- FontDialog.cs
- WindowsComboBox.cs
- WrapperEqualityComparer.cs
- InvalidEnumArgumentException.cs
- RSACryptoServiceProvider.cs
- glyphs.cs
- RuntimeCompatibilityAttribute.cs
- QueueAccessMode.cs
- ContainerCodeDomSerializer.cs
- DataGridTable.cs
- SoapFormatter.cs
- BulletedList.cs
- TimelineClockCollection.cs
- DesignerHelpers.cs
- ObjectMemberMapping.cs
- Visual3DCollection.cs
- MarginsConverter.cs
- SqlAliaser.cs
- DocumentViewer.cs
- FacetEnabledSchemaElement.cs
- FileUtil.cs
- DispatcherOperation.cs
- ReflectPropertyDescriptor.cs
- Simplifier.cs
- ListViewItem.cs
- DataSet.cs
- StreamAsIStream.cs
- Bold.cs
- ColumnBinding.cs
- DataGridSortingEventArgs.cs
- CreateUserWizard.cs
- CodeTypeConstructor.cs
- TableHeaderCell.cs
- XslTransform.cs
- TextServicesCompartmentEventSink.cs
- EventBuilder.cs
- DesignerUtility.cs
- BlockUIContainer.cs
- TabControlAutomationPeer.cs
- SingleResultAttribute.cs
- Quaternion.cs
- ExpandableObjectConverter.cs
- AsyncWaitHandle.cs
- ThreadStateException.cs
- DataGridViewTextBoxColumn.cs
- XmlComment.cs
- ConsoleCancelEventArgs.cs
- SByteConverter.cs
- SimpleRecyclingCache.cs
- XmlEncoding.cs
- SegmentInfo.cs
- WebPartManager.cs
- Collection.cs
- CompModSwitches.cs
- BaseCAMarshaler.cs
- DesignTimeHTMLTextWriter.cs
- EventPrivateKey.cs
- RegisteredExpandoAttribute.cs
- EnumType.cs
- WebServiceEnumData.cs
- IOThreadTimer.cs
- WsiProfilesElement.cs
- RowToFieldTransformer.cs
- FileRegion.cs
- wmiprovider.cs
- ControlPaint.cs
- PropertyEmitterBase.cs
- SafeNativeMethods.cs
- CryptoStream.cs
- TdsParser.cs
- ToolStripItemImageRenderEventArgs.cs
- IntegerValidator.cs
- DataGridViewRowCancelEventArgs.cs
- ToolStripPanelRow.cs
- Light.cs
- IEnumerable.cs
- GridViewCellAutomationPeer.cs
- mil_commands.cs
- IconConverter.cs
- DataFieldConverter.cs
- FilteredAttributeCollection.cs
- GiveFeedbackEventArgs.cs
- DocumentReference.cs
- StylusPointProperty.cs
- XmlSchemaObject.cs
- TextureBrush.cs
- TextElementAutomationPeer.cs
- DataGridViewCellPaintingEventArgs.cs
- MsmqReceiveParameters.cs
- WebPartEditorApplyVerb.cs
- XamlUtilities.cs
- DrawListViewItemEventArgs.cs
- ProcessingInstructionAction.cs
- XmlWrappingReader.cs
- WebPartTransformerAttribute.cs
- Vars.cs
- FileDialog_Vista_Interop.cs
- RadioButton.cs