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
- HMACSHA512.cs
- HtmlInputFile.cs
- EntityClassGenerator.cs
- UnsafePeerToPeerMethods.cs
- BreakRecordTable.cs
- OrderedHashRepartitionEnumerator.cs
- FontWeightConverter.cs
- ViewSimplifier.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- UInt64Storage.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- ObjectStateFormatter.cs
- SrgsToken.cs
- SizeConverter.cs
- CodeTypeReferenceCollection.cs
- CreateUserWizardStep.cs
- XPathPatternBuilder.cs
- ContextStaticAttribute.cs
- TextTreeUndoUnit.cs
- CollectionView.cs
- Matrix3DValueSerializer.cs
- Zone.cs
- RectAnimationUsingKeyFrames.cs
- ResourcePool.cs
- SubMenuStyle.cs
- CompositeScriptReferenceEventArgs.cs
- SingleAnimation.cs
- ProgressiveCrcCalculatingStream.cs
- TrackingQuery.cs
- ProviderUtil.cs
- XmlSchemaSequence.cs
- EntityClassGenerator.cs
- ProfilePropertySettingsCollection.cs
- Point.cs
- TargetControlTypeAttribute.cs
- CacheAxisQuery.cs
- ToolboxSnapDragDropEventArgs.cs
- SystemPens.cs
- StatementContext.cs
- EditingCommands.cs
- ServicePoint.cs
- FixedSOMPage.cs
- InfiniteIntConverter.cs
- PathGeometry.cs
- PhysicalOps.cs
- CommonObjectSecurity.cs
- TextServicesManager.cs
- ListItemParagraph.cs
- SqlGatherProducedAliases.cs
- HashCryptoHandle.cs
- DataGridCell.cs
- SurrogateChar.cs
- HtmlElementErrorEventArgs.cs
- PropertyNames.cs
- PaperSize.cs
- WebPartConnection.cs
- ObjectSecurity.cs
- ValueHandle.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- MsmqMessageSerializationFormat.cs
- TextBox.cs
- GroupDescription.cs
- EntitySet.cs
- StylusCaptureWithinProperty.cs
- DeclarativeExpressionConditionDeclaration.cs
- NativeMethods.cs
- WebEvents.cs
- ISCIIEncoding.cs
- SpStreamWrapper.cs
- WebSysDisplayNameAttribute.cs
- LocatorPart.cs
- MiniCustomAttributeInfo.cs
- LocalizedNameDescriptionPair.cs
- TraceUtility.cs
- ContainerControlDesigner.cs
- HttpPostedFile.cs
- InputBindingCollection.cs
- ParseNumbers.cs
- HtmlTextArea.cs
- FileSystemInfo.cs
- Char.cs
- GridViewPageEventArgs.cs
- XmlBindingWorker.cs
- ProfileGroupSettings.cs
- Content.cs
- KeyProperty.cs
- EventHandlerService.cs
- SecurityException.cs
- PointF.cs
- cache.cs
- UdpSocketReceiveManager.cs
- EncodingTable.cs
- BitmapEncoder.cs
- TemplatePagerField.cs
- TextProviderWrapper.cs
- StringFormat.cs
- ParameterElementCollection.cs
- XmlToDatasetMap.cs
- StyleHelper.cs
- DataGridTablesFactory.cs