1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SW_INC_IDOCUMENTDEVICEACCESS_HXX
21 #define INCLUDED_SW_INC_IDOCUMENTDEVICEACCESS_HXX
22 
23 class SfxPrinter;
24 class JobSetup;
25 class SwPrintData;
26 class VirtualDevice;
27 class OutputDevice;
28 
29 /** Provides access to the formatting devices of a document
30  */
31 class IDocumentDeviceAccess
32 {
33 public:
34 
35     /** Return the printer set at the document.
36 
37        @param bCreate
38        [in] if set, a printer will be created if not already done.
39 
40        @returns
41        the printer set at the document.
42     */
43     virtual SfxPrinter* getPrinter(/*[in]*/ bool bCreate ) const = 0;
44 
45     /** Set the printer at the document.
46 
47        @param pP
48        [in] the new printer or 0.
49 
50        @param bDeleteOld
51        [in] if set, the old printer will be deleted.
52 
53        @param bCallPrtDataChanged
54        [in] if set, triggers all necessary invalidations.
55     */
56     virtual void setPrinter(/*[in]*/ SfxPrinter* pP,/*[in]*/ bool bDeleteOld,/*[in]*/ bool bCallPrtDataChanged ) = 0;
57 
58     /** Return the virtual device set at the document.
59 
60        @param bCreate
61        [in] if set, a virtual device will be created if not already done.
62 
63        @returns
64        the virtual device set at the document.
65     */
66     virtual VirtualDevice* getVirtualDevice(/*[in]*/ bool bCreate ) const = 0;
67 
68     /** Sets the current virtual device
69 
70        @param pVd
71        [in] the new virtual device.
72 
73        The old virtual device will be deleted.
74        Triggers all necessary invalidations.
75      */
76     virtual void setVirtualDevice(/*[in]*/ VirtualDevice* pVd ) = 0;
77 
78     /** Returns the current reference device
79 
80        @param bCreate
81        [in] if set, the reference device will be created if not already done.
82 
83        @returns
84        the current reference device
85      */
86     virtual OutputDevice* getReferenceDevice(/*[in]*/ bool bCreate ) const = 0;
87 
88     /** Sets the type of the reference device used for formatting the document
89 
90        @param bNewVirtual
91        [in] if set, the reference device will be a virtual device, otherwise
92             the printer is used for formatting the document
93 
94        @param bNewHiRes
95        [in] if set, the virtual device will be the HiRes virtual device
96      */
97     virtual void setReferenceDeviceType(/*[in]*/ bool bNewVirtual, /*[in]*/ bool bNewHiRes ) = 0;
98 
99     /** Returns the Jobsetup
100 
101        @returns
102        the current Jobsetup
103      */
104     virtual const JobSetup* getJobsetup() const = 0;
105 
106     /** Sets the Jobsetup
107 
108        @param rJobSetup
109        [in] the new Jobsetup.
110      */
111     virtual void  setJobsetup(/*[in]*/ const JobSetup& rJobSetup ) = 0;
112 
113     /** Returns the PrintData
114 
115        @returns
116        the current PrintData
117      */
118     virtual const SwPrintData & getPrintData() const = 0;
119 
120     /** Sets the PrintData
121 
122        @param rPrtData
123        [in] the new PrintData.
124      */
125     virtual void setPrintData(/*[in]*/ const SwPrintData& rPrtData) = 0;
126 
127 protected:
~IDocumentDeviceAccess()128     virtual ~IDocumentDeviceAccess() {};
129 };
130 
131 #endif // INCLUDED_SW_INC_IDOCUMENTDEVICEACCESS_HXX
132 
133 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
134