| File: MS\Internal\Documents\FixedDocumentSequencePaginator.cs | Web Access |
| Project: src\wpf\src\Microsoft.DotNet.Wpf\src\PresentationFramework\PresentationFramework.csproj (PresentationFramework) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // // Description: This is the abstract base class for all paginating layouts. // It provides default implementations for the asynchronous // versions of GetPage and ComputePageCount. // using System.Windows; // Size using System.Windows.Documents; // DocumentPaginator namespace MS.Internal.Documents { /// <summary> /// This is the abstract base class for all paginating layouts. It /// provides default implementations for the asynchronous versions of /// GetPage and ComputePageCount. /// </summary> internal class FixedDocumentSequencePaginator : DynamicDocumentPaginator, IServiceProvider { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors /// <summary> /// Constructor /// </summary> internal FixedDocumentSequencePaginator(FixedDocumentSequence document) { _document = document; } #endregion Constructors //------------------------------------------------------------------- // // Public Methods // //------------------------------------------------------------------- #region Public Methods /// <summary> /// <see cref="DocumentPaginator.GetPage"/> /// </summary> public override DocumentPage GetPage(int pageNumber) { return _document.GetPage(pageNumber); } /// <summary> /// <see cref="DocumentPaginator.GetPageAsync(int,object)"/> /// </summary> public override void GetPageAsync(int pageNumber, object userState) { _document.GetPageAsync(pageNumber, userState); } /// <summary> /// <see cref="DocumentPaginator.CancelAsync"/> /// </summary> public override void CancelAsync(object userState) { _document.CancelAsync(userState); } /// <summary> /// <see cref="DynamicDocumentPaginator.GetPageNumber"/> /// </summary> public override int GetPageNumber(ContentPosition contentPosition) { return _document.GetPageNumber(contentPosition); } /// <summary> /// <see cref="DynamicDocumentPaginator.GetPagePosition"/> /// </summary> public override ContentPosition GetPagePosition(DocumentPage page) { return _document.GetPagePosition(page); } /// <summary> /// <see cref="DynamicDocumentPaginator.GetObjectPosition"/> /// </summary> public override ContentPosition GetObjectPosition(Object o) { return _document.GetObjectPosition(o); } #endregion Public Methods //------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- #region Public Properties /// <summary> /// <see cref="DocumentPaginator.IsPageCountValid"/> /// </summary> public override bool IsPageCountValid { get { return _document.IsPageCountValid; } } /// <summary> /// <see cref="DocumentPaginator.PageCount"/> /// </summary> public override int PageCount { get { return _document.PageCount; } } /// <summary> /// <see cref="DocumentPaginator.PageSize"/> /// </summary> public override Size PageSize { get { return _document.PageSize; } set { _document.PageSize = value; } } /// <summary> /// <see cref="DocumentPaginator.Source"/> /// </summary> public override IDocumentPaginatorSource Source { get { return _document; } } #endregion Public Properties //------------------------------------------------------------------- // // Internal Methods // //------------------------------------------------------------------- #region Internal Methods internal void NotifyGetPageCompleted(GetPageCompletedEventArgs e) { OnGetPageCompleted(e); } internal void NotifyPaginationCompleted(EventArgs e) { OnPaginationCompleted(e); } internal void NotifyPaginationProgress(PaginationProgressEventArgs e) { OnPaginationProgress(e); } internal void NotifyPagesChanged(PagesChangedEventArgs e) { OnPagesChanged(e); } #endregion Internal Methods //------------------------------------------------------------------- // // Private Fields // //------------------------------------------------------------------- #region Private Fields private readonly FixedDocumentSequence _document; #endregion Private Fields //------------------------------------------------------------------- // // IServiceProvider Members // //------------------------------------------------------------------- #region IServiceProvider Members /// <summary> /// Returns service objects associated with this control. /// </summary> /// <param name="serviceType">Specifies the type of service object to get.</param> object IServiceProvider.GetService(Type serviceType) { return ((IServiceProvider)_document).GetService(serviceType); } #endregion IServiceProvider Members } }