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
- PathParser.cs
- ListBindingHelper.cs
- QilReference.cs
- ReadOnlyHierarchicalDataSourceView.cs
- WindowsEditBoxRange.cs
- WinFormsComponentEditor.cs
- SqlStream.cs
- XmlAtomicValue.cs
- WpfWebRequestHelper.cs
- SerializationEventsCache.cs
- Confirm.cs
- Codec.cs
- ConfigurationPropertyAttribute.cs
- TailCallAnalyzer.cs
- webeventbuffer.cs
- OptimalBreakSession.cs
- CacheMode.cs
- SQLSingleStorage.cs
- CultureSpecificCharacterBufferRange.cs
- CodeIdentifier.cs
- filewebresponse.cs
- PropertyPathWorker.cs
- OrderedDictionaryStateHelper.cs
- SelectionEditor.cs
- FtpRequestCacheValidator.cs
- IndentTextWriter.cs
- ToolStripDropDownButton.cs
- mda.cs
- StringBuilder.cs
- RuntimeCompatibilityAttribute.cs
- DispatcherEventArgs.cs
- RegexTypeEditor.cs
- HttpInputStream.cs
- CustomExpression.cs
- ExceptionValidationRule.cs
- DataGridRelationshipRow.cs
- WebColorConverter.cs
- CustomDictionarySources.cs
- KeyboardDevice.cs
- SqlTriggerContext.cs
- UriSection.cs
- XmlSchemaElement.cs
- CompilerCollection.cs
- AsyncResult.cs
- TemplatedAdorner.cs
- rsa.cs
- Facet.cs
- FlowchartDesignerCommands.cs
- EdmToObjectNamespaceMap.cs
- _NetRes.cs
- SqlDataSourceView.cs
- ViewEvent.cs
- LinqDataSourceView.cs
- RemotingServices.cs
- DataTableReader.cs
- XmlCharType.cs
- ErrorsHelper.cs
- PrePostDescendentsWalker.cs
- EntityContainerEmitter.cs
- TextMetrics.cs
- ListenerAdapter.cs
- AttributeCollection.cs
- DropShadowEffect.cs
- ExtensionDataReader.cs
- MailWriter.cs
- ZoneMembershipCondition.cs
- ArrayList.cs
- ServicePointManager.cs
- TextTreeFixupNode.cs
- TaskHelper.cs
- PassportAuthentication.cs
- Cloud.cs
- ByteStorage.cs
- WebServiceData.cs
- COM2AboutBoxPropertyDescriptor.cs
- RequestQueryParser.cs
- EventBuilder.cs
- AsmxEndpointPickerExtension.cs
- OuterGlowBitmapEffect.cs
- ExceptionValidationRule.cs
- WebProxyScriptElement.cs
- RequestResizeEvent.cs
- SqlCaseSimplifier.cs
- InternalControlCollection.cs
- FileReader.cs
- Pen.cs
- AssemblyLoader.cs
- EnumBuilder.cs
- Expander.cs
- SQLInt16Storage.cs
- EntityDataSourceMemberPath.cs
- MenuEventArgs.cs
- ListViewInsertedEventArgs.cs
- CommandSet.cs
- TogglePattern.cs
- Latin1Encoding.cs
- TraceContextRecord.cs
- StrokeCollectionConverter.cs
- DiscoveryExceptionDictionary.cs