Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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 TextSpanGetPrecedingText(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 TextSpanGetPrecedingText(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
- AppDomainAttributes.cs
- PartitionedDataSource.cs
- Win32.cs
- NativeMethods.cs
- AxImporter.cs
- ContentPlaceHolderDesigner.cs
- InstalledFontCollection.cs
- ContractMapping.cs
- CacheChildrenQuery.cs
- SessionEndingEventArgs.cs
- CodeLinePragma.cs
- TextEditorLists.cs
- Typography.cs
- NGCSerializationManagerAsync.cs
- LinkLabel.cs
- IISMapPath.cs
- ArglessEventHandlerProxy.cs
- XmlNamespaceDeclarationsAttribute.cs
- AnnouncementDispatcherAsyncResult.cs
- UpdateTracker.cs
- HttpConfigurationContext.cs
- XsdBuilder.cs
- FormViewUpdateEventArgs.cs
- XhtmlConformanceSection.cs
- Message.cs
- ListControlDesigner.cs
- TableLayoutSettings.cs
- ScriptManagerProxy.cs
- RecognizeCompletedEventArgs.cs
- Speller.cs
- ToolStripItemRenderEventArgs.cs
- ToolStripPanelRow.cs
- DataTemplateKey.cs
- ChannelManagerHelpers.cs
- XMLUtil.cs
- DefaultValueMapping.cs
- ObjectMemberMapping.cs
- ServiceInstallComponent.cs
- FilteredSchemaElementLookUpTable.cs
- WebPartConnectVerb.cs
- Trigger.cs
- IBuiltInEvidence.cs
- ConnectionDemuxer.cs
- SimpleApplicationHost.cs
- DataGridViewHitTestInfo.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- AnnotationAdorner.cs
- PersonalizationProviderCollection.cs
- ConsoleKeyInfo.cs
- Assembly.cs
- ResourceContainer.cs
- EntityDataSourceEntitySetNameItem.cs
- CompilerScopeManager.cs
- WebPartHeaderCloseVerb.cs
- JavaScriptSerializer.cs
- DesignerVerbCollection.cs
- LongTypeConverter.cs
- HttpServerVarsCollection.cs
- SafeUserTokenHandle.cs
- Facet.cs
- followingquery.cs
- ThicknessKeyFrameCollection.cs
- UseManagedPresentationBindingElementImporter.cs
- JsonDeserializer.cs
- LabelEditEvent.cs
- ParamArrayAttribute.cs
- ConcurrentBag.cs
- TextServicesCompartment.cs
- ClientApiGenerator.cs
- BaseParser.cs
- WinOEToolBoxItem.cs
- _NegoStream.cs
- PropertyToken.cs
- Assert.cs
- validation.cs
- ReferencedAssemblyResolver.cs
- ProcessModuleCollection.cs
- Rotation3DKeyFrameCollection.cs
- DataSysAttribute.cs
- SystemIPInterfaceProperties.cs
- DeviceContext.cs
- GenericAuthenticationEventArgs.cs
- DbConnectionOptions.cs
- Tablet.cs
- UniqueID.cs
- StrongNameKeyPair.cs
- FileDetails.cs
- UIElementParagraph.cs
- DecoderNLS.cs
- DataBoundControl.cs
- SynchronizingStream.cs
- ProfileServiceManager.cs
- HtmlInputRadioButton.cs
- HMACRIPEMD160.cs
- ServiceChannel.cs
- DbFunctionCommandTree.cs
- listitem.cs
- ListViewGroupItemCollection.cs
- BitmapMetadataBlob.cs
- LoadWorkflowByInstanceKeyCommand.cs