Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 : #ifndef nsIPageSequenceFrame_h___
6 : #define nsIPageSequenceFrame_h___
7 :
8 : #include "nsQueryFrame.h"
9 : #include "nsCoord.h"
10 :
11 : class nsPresContext;
12 : class nsIPrintSettings;
13 : class nsITimerCallback;
14 :
15 : /**
16 : * Interface for accessing special capabilities of the page sequence frame.
17 : *
18 : * Today all that exists are member functions for printing.
19 : */
20 0 : class nsIPageSequenceFrame : public nsQueryFrame
21 : {
22 : public:
23 : NS_DECL_QUERYFRAME_TARGET(nsIPageSequenceFrame)
24 :
25 : /**
26 : * Print the set of pages.
27 : *
28 : * @param aPrintOptions options for printing
29 : * @param aStatusCallback interface that the client provides to receive
30 : * progress notifications. Can be nullptr
31 : * @return NS_OK if successful
32 : * NS_ERROR_ABORT if the client cancels printing using the callback
33 : * interface
34 : * NS_ERROR_INVALID_ARG if printing a range of pages (not all pages)
35 : * and the start page is greater than the total number of pages
36 : * NS_ERROR_FAILURE if there is an error
37 : */
38 : NS_IMETHOD StartPrint(nsPresContext* aPresContext,
39 : nsIPrintSettings* aPrintOptions,
40 : const nsAString& aDocTitle,
41 : const nsAString& aDocURL) = 0;
42 :
43 : NS_IMETHOD PrePrintNextPage(nsITimerCallback* aCallback, bool* aDone) = 0;
44 : NS_IMETHOD PrintNextPage() = 0;
45 : NS_IMETHOD ResetPrintCanvasList() = 0;
46 : NS_IMETHOD GetCurrentPageNum(int32_t* aPageNum) = 0;
47 : NS_IMETHOD GetNumPages(int32_t* aNumPages) = 0;
48 : NS_IMETHOD IsDoingPrintRange(bool* aDoing) = 0;
49 : NS_IMETHOD GetPrintRange(int32_t* aFromPage, int32_t* aToPage) = 0;
50 :
51 : NS_IMETHOD DoPageEnd() = 0;
52 : NS_IMETHOD SetSelectionHeight(nscoord aYOffset, nscoord aHeight) = 0;
53 :
54 : NS_IMETHOD SetTotalNumPages(int32_t aTotal) = 0;
55 :
56 : // For Shrink To Fit
57 : NS_IMETHOD GetSTFPercent(float& aSTFPercent) = 0;
58 : };
59 :
60 : #endif /* nsIPageSequenceFrame_h___ */
61 :
62 :
|