Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / ListMarkerLine.cs / 1305600 / ListMarkerLine.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: LineBase.cs
//
// Description: Text line formatter.
//
// History:
// 02/07/2005 : ghermann - Split from Line.cs
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
using MS.Internal.Text;
using MS.Internal.Documents;
using MS.Internal.PtsHost.UnsafeNativeMethods;
namespace MS.Internal.PtsHost
{
internal class ListMarkerLine : LineBase
{
///
/// Constructor
///
///
/// TextFormatter host
///
///
/// Owner of the ListMarker
///
internal ListMarkerLine(TextFormatterHost host, ListParaClient paraClient) : base(paraClient)
{
_host = host;
}
// -----------------------------------------------------------------
//
// TextSource Implementation
//
// -----------------------------------------------------------------
#region TextSource Implementation
///
/// Return the text run at specified text source position.
///
///
/// Offset of specified position
///
internal override TextRun GetTextRun(int dcp)
{
return new ParagraphBreakRun(1, PTS.FSFLRES.fsflrEndOfParagraph);
}
///
/// Return the text, as CharacterBufferRange, immediately before specified text source position.
///
///
/// Offset of specified position
///
internal override TextSpan GetPrecedingText(int dcp)
{
return new TextSpan(
0,
new CultureSpecificCharacterBufferRange(null, CharacterBufferRange.Empty)
);
}
///
/// Get Text effect index from specified position
///
///
/// Offset of specified position
///
///
internal override int GetTextEffectCharacterIndexFromTextSourceCharacterIndex(int dcp)
{
return dcp;
}
#endregion TextSource Implementation
///
/// Create and format text line.
///
///
/// DrawingContext for text line.
///
///
/// LineProperties of text line
///
///
/// Horizontal draw location
///
///
/// Vertical baseline draw location
///
internal void FormatAndDrawVisual(DrawingContext ctx, LineProperties lineProps, int ur, int vrBaseline)
{
System.Windows.Media.TextFormatting.TextLine line;
bool mirror = (lineProps.FlowDirection == FlowDirection.RightToLeft);
_host.Context = this;
try
{
// Create line object
line = _host.TextFormatter.FormatLine(_host, 0, 0, lineProps.FirstLineProps, null, new TextRunCache());
Point drawLocation = new Point(TextDpi.FromTextDpi(ur), TextDpi.FromTextDpi(vrBaseline) - line.Baseline);
line.Draw(ctx, drawLocation, (mirror ? InvertAxes.Horizontal : InvertAxes.None));
line.Dispose();
}
finally
{
// clear the context
_host.Context = null;
}
}
///
/// Text formatter host
///
private readonly TextFormatterHost _host;
}
}
// 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
- GatewayDefinition.cs
- UnsafeNativeMethods.cs
- IDQuery.cs
- GlyphShapingProperties.cs
- SuppressIldasmAttribute.cs
- ISFClipboardData.cs
- GridViewPageEventArgs.cs
- VirtualPathUtility.cs
- IChannel.cs
- ExpressionHelper.cs
- Rules.cs
- AssociationEndMember.cs
- XslException.cs
- XPathDocument.cs
- QilLiteral.cs
- BypassElementCollection.cs
- KeyValueConfigurationElement.cs
- ContentFileHelper.cs
- XmlILOptimizerVisitor.cs
- VoiceSynthesis.cs
- UDPClient.cs
- ContentControl.cs
- RawUIStateInputReport.cs
- prompt.cs
- ObjectConverter.cs
- DataComponentNameHandler.cs
- SizeAnimationUsingKeyFrames.cs
- XmlTypeMapping.cs
- TraceHandler.cs
- RegexGroupCollection.cs
- WebPartTransformerAttribute.cs
- Point3DCollectionValueSerializer.cs
- ContextToken.cs
- ReadOnlyDictionary.cs
- ApplicationManager.cs
- ImageKeyConverter.cs
- UnitySerializationHolder.cs
- Resources.Designer.cs
- InputMethodStateTypeInfo.cs
- Menu.cs
- ResourceProviderFactory.cs
- unitconverter.cs
- RecognitionResult.cs
- EntityTransaction.cs
- ArrayWithOffset.cs
- MetadataPropertyAttribute.cs
- Buffer.cs
- NetStream.cs
- ApplyImportsAction.cs
- FlowDocumentPage.cs
- MemoryMappedViewStream.cs
- XmlSchemaComplexContent.cs
- WebEventCodes.cs
- VirtualPath.cs
- LinkClickEvent.cs
- BuildDependencySet.cs
- GeneralTransform.cs
- SqlResolver.cs
- ACE.cs
- ObjectContext.cs
- AppDomainInstanceProvider.cs
- SecurityChannelListener.cs
- ToolStripDropDown.cs
- Panel.cs
- HttpResponseBase.cs
- WindowsImpersonationContext.cs
- CodeTypeReferenceExpression.cs
- ImageSource.cs
- PageAsyncTask.cs
- PeerNameResolver.cs
- ModuleBuilderData.cs
- DataTemplateKey.cs
- GACIdentityPermission.cs
- RegexRunner.cs
- Label.cs
- RowUpdatingEventArgs.cs
- BufferModeSettings.cs
- ThumbButtonInfoCollection.cs
- AccessedThroughPropertyAttribute.cs
- RootAction.cs
- NetMsmqSecurityMode.cs
- CodeMethodReturnStatement.cs
- CustomPopupPlacement.cs
- Helpers.cs
- EditorReuseAttribute.cs
- Bold.cs
- GlyphingCache.cs
- ConfigDefinitionUpdates.cs
- WebPartZone.cs
- AddDataControlFieldDialog.cs
- TraceSection.cs
- MailHeaderInfo.cs
- XmlStreamStore.cs
- DynamicScriptObject.cs
- MessageFormatterConverter.cs
- DeflateStream.cs
- TransportSecurityProtocol.cs
- TableRowGroup.cs
- ColorTranslator.cs
- ISSmlParser.cs