Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DbSourceCommand.cs
- WrappedKeySecurityToken.cs
- WebPartCatalogAddVerb.cs
- WorkflowTimerService.cs
- EditorPart.cs
- ConfigurationProperty.cs
- SymmetricAlgorithm.cs
- ImportCatalogPart.cs
- Matrix.cs
- HttpModuleActionCollection.cs
- LinqDataSourceValidationException.cs
- DefaultBinder.cs
- SelectiveScrollingGrid.cs
- PerformanceCounterPermission.cs
- CompilationLock.cs
- InputManager.cs
- RegistryKey.cs
- ParameterCollectionEditorForm.cs
- TextViewBase.cs
- cryptoapiTransform.cs
- Delegate.cs
- ScriptBehaviorDescriptor.cs
- SlotInfo.cs
- VectorValueSerializer.cs
- DataGridViewDataConnection.cs
- ListDataHelper.cs
- ApplicationProxyInternal.cs
- ThreadPool.cs
- ZeroOpNode.cs
- GenericTypeParameterBuilder.cs
- GrammarBuilderBase.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- LocatorPart.cs
- WebPartDescription.cs
- EventSinkActivityDesigner.cs
- PeerTransportSecuritySettings.cs
- WorkflowQueueInfo.cs
- SoapAttributes.cs
- XmlSchemaObjectTable.cs
- RawTextInputReport.cs
- LongSumAggregationOperator.cs
- XmlWriterSettings.cs
- ADMembershipProvider.cs
- StylusPointPropertyInfoDefaults.cs
- SyntaxCheck.cs
- Permission.cs
- XmlSchemaExporter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- PowerStatus.cs
- AssemblyName.cs
- PrintController.cs
- AbandonedMutexException.cs
- SystemNetworkInterface.cs
- XmlSerializerSection.cs
- PtsHelper.cs
- ListQueryResults.cs
- VectorConverter.cs
- Delegate.cs
- HashHelper.cs
- AttributeInfo.cs
- StylusCaptureWithinProperty.cs
- XmlDataSourceView.cs
- AndCondition.cs
- PageParserFilter.cs
- ModelVisual3D.cs
- DisposableCollectionWrapper.cs
- ImageSource.cs
- StrokeCollection.cs
- SafeLibraryHandle.cs
- SqlCachedBuffer.cs
- EventLogPermissionEntry.cs
- MarshalByValueComponent.cs
- XslAstAnalyzer.cs
- MimeTypePropertyAttribute.cs
- LineInfo.cs
- WebPartZoneBase.cs
- EventDescriptorCollection.cs
- DetailsViewPagerRow.cs
- Font.cs
- SeekStoryboard.cs
- EntityRecordInfo.cs
- SequenceNumber.cs
- Enum.cs
- FacetDescription.cs
- ProcessModule.cs
- TabControl.cs
- XPathNodePointer.cs
- StructuredTypeInfo.cs
- BitmapEffectCollection.cs
- DataControlFieldsEditor.cs
- EntityRecordInfo.cs
- ConfigXmlAttribute.cs
- ActivityExecutorSurrogate.cs
- ProgressChangedEventArgs.cs
- httpserverutility.cs
- FaultPropagationRecord.cs
- CodeConstructor.cs
- QilLiteral.cs
- XmlMapping.cs
- Button.cs