LibreOffice Module vcl (master)  1
jobdata.hxx
Go to the documentation of this file.
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_VCL_JOBDATA_HXX
21 #define INCLUDED_VCL_JOBDATA_HXX
22 
23 #include <vcl/ppdparser.hxx>
24 
25 namespace psp {
26 
27 enum class orientation {
28  Portrait,
29  Landscape
30 };
31 
33 {
34  int m_nCopies;
35  bool m_bCollate;
40  // user overrides for PPD
42  int m_nPSLevel; // 0: no override, else languagelevel to use
43  int m_nColorDevice; // 0: no override, -1 grey scale, +1 color
44  int m_nPDFDevice; // 0: no override, -1 PostScript, +1: Automatically PDF, +2: Explicitly PDF
46  OUString m_aPrinterName;
50 
51  JobData() :
52  m_nCopies( 1 ),
53  m_bCollate(false),
54  m_nLeftMarginAdjust( 0 ),
55  m_nRightMarginAdjust( 0 ),
56  m_nTopMarginAdjust( 0 ),
57  m_nBottomMarginAdjust( 0 ),
58  m_nColorDepth( 24 ),
59  m_nPSLevel( 0 ),
60  m_nColorDevice( 0 ),
61  m_nPDFDevice( 0 ),
62  m_eOrientation( orientation::Portrait ),
63  m_bPapersizeFromSetup( false ),
64  m_pParser( nullptr ) {}
65 
66  JobData& operator=(const psp::JobData& rRight);
67 
68  JobData( const JobData& rData ) { *this = rData; }
69 
70  void setCollate( bool bCollate );
71  void setPaper( int nWidth, int nHeight ); // dimensions in pt
72  void setPaperBin( int nPaperBin );
73  void resolveDefaultBackend();
74  void setDefaultBackend(bool bUsePDF);
75 
76  // creates a new buffer using new
77  // it is up to the user to delete it again
78  bool getStreamBuffer( void*& pData, sal_uInt32& bytes );
79  static bool constructFromStreamBuffer( const void* pData, sal_uInt32 bytes, JobData& rJobData );
80 };
81 
82 } // namespace
83 
84 
85 #endif // PSPRINT_JOBDATA_HXX
86 
87 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const PPDParser * m_pParser
Definition: jobdata.hxx:48
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
std::vector< sal_uInt8 > bytes
int m_nPDFDevice
Definition: jobdata.hxx:44
int m_nRightMarginAdjust
Definition: jobdata.hxx:37
int m_nBottomMarginAdjust
Definition: jobdata.hxx:39
bool m_bPapersizeFromSetup
Definition: jobdata.hxx:47
JobData(const JobData &rData)
Definition: jobdata.hxx:68
int m_nTopMarginAdjust
Definition: jobdata.hxx:38
int m_nCopies
Definition: jobdata.hxx:34
bool m_bCollate
Definition: jobdata.hxx:35
int m_nColorDepth
Definition: jobdata.hxx:41
OUString m_aPrinterName
Definition: jobdata.hxx:46
int m_nColorDevice
Definition: jobdata.hxx:43
int m_nLeftMarginAdjust
Definition: jobdata.hxx:36
int m_nPSLevel
Definition: jobdata.hxx:42
orientation
Definition: jobdata.hxx:27
orientation m_eOrientation
Definition: jobdata.hxx:45
PPDContext m_aContext
Definition: jobdata.hxx:49