Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / MS / Internal / PtsHost / ListMarkerLine.cs / 1 / 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.
//----------------------------------------------------------------------------
//
// 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
- PolyBezierSegment.cs
- TypeDefinition.cs
- SaveFileDialog.cs
- ButtonBaseAdapter.cs
- SetterBase.cs
- MenuItem.cs
- SymDocumentType.cs
- VisualStates.cs
- OdbcCommandBuilder.cs
- UniqueIdentifierService.cs
- QuadraticBezierSegment.cs
- BaseTemplateCodeDomTreeGenerator.cs
- _SpnDictionary.cs
- DataControlField.cs
- Base64Encoder.cs
- AssemblyBuilder.cs
- DocumentReference.cs
- TextCompositionManager.cs
- columnmapfactory.cs
- CombinedGeometry.cs
- TypedTableBase.cs
- ServiceThrottlingElement.cs
- TraceSection.cs
- EntityViewGenerator.cs
- SurrogateEncoder.cs
- DuplicateDetector.cs
- DisplayInformation.cs
- UriExt.cs
- BinaryParser.cs
- TrustSection.cs
- ApplicationException.cs
- Triangle.cs
- DisableDpiAwarenessAttribute.cs
- Code.cs
- SplitterCancelEvent.cs
- SQLDateTimeStorage.cs
- ToolTip.cs
- BaseAppDomainProtocolHandler.cs
- HttpCapabilitiesEvaluator.cs
- BaseDataListDesigner.cs
- JsonReader.cs
- DiagnosticsConfiguration.cs
- ProtocolReflector.cs
- CodeGroup.cs
- TimelineCollection.cs
- MultiAsyncResult.cs
- PathFigure.cs
- BoolLiteral.cs
- UInt16.cs
- ProviderCollection.cs
- CloudCollection.cs
- ColumnCollection.cs
- SqlDataSourceView.cs
- InvalidCommandTreeException.cs
- OracleBoolean.cs
- MenuRenderer.cs
- TargetControlTypeAttribute.cs
- ForeignConstraint.cs
- ColorMatrix.cs
- CollaborationHelperFunctions.cs
- UIElementHelper.cs
- ConditionalAttribute.cs
- XmlCDATASection.cs
- SpeechRecognizer.cs
- UpdatePanelTrigger.cs
- SafeFileHandle.cs
- HttpModuleActionCollection.cs
- ColorTranslator.cs
- WmiInstallComponent.cs
- SpecularMaterial.cs
- QuestionEventArgs.cs
- MembershipUser.cs
- Activity.cs
- NavigationProperty.cs
- AttributeCollection.cs
- PerfCounterSection.cs
- Imaging.cs
- RSACryptoServiceProvider.cs
- XamlReader.cs
- XmlNotation.cs
- ErrorRuntimeConfig.cs
- DispatcherExceptionFilterEventArgs.cs
- RuleInfoComparer.cs
- MultiBinding.cs
- XmlEnumAttribute.cs
- UrlMapping.cs
- TransformValueSerializer.cs
- OracleCommand.cs
- OleDbConnectionInternal.cs
- ShutDownListener.cs
- FilteredReadOnlyMetadataCollection.cs
- TableLayoutStyleCollection.cs
- RuleSettings.cs
- InternalBase.cs
- SqlTypeConverter.cs
- ValidateNames.cs
- PageParserFilter.cs
- DataTrigger.cs
- OutputCacheSettings.cs
- CompatibleIComparer.cs