xref: /trunk/main/vcl/inc/os2/salprn.h (revision fc9fd3f14a55d77b35643a64034752a178b2a5b0)
1*fc9fd3f1SPedro Giffuni /*************************************************************************
2*fc9fd3f1SPedro Giffuni  *
3*fc9fd3f1SPedro Giffuni  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*fc9fd3f1SPedro Giffuni  *
5*fc9fd3f1SPedro Giffuni  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*fc9fd3f1SPedro Giffuni  *
7*fc9fd3f1SPedro Giffuni  * OpenOffice.org - a multi-platform office productivity suite
8*fc9fd3f1SPedro Giffuni  *
9*fc9fd3f1SPedro Giffuni  * This file is part of OpenOffice.org.
10*fc9fd3f1SPedro Giffuni  *
11*fc9fd3f1SPedro Giffuni  * OpenOffice.org is free software: you can redistribute it and/or modify
12*fc9fd3f1SPedro Giffuni  * it under the terms of the GNU Lesser General Public License version 3
13*fc9fd3f1SPedro Giffuni  * only, as published by the Free Software Foundation.
14*fc9fd3f1SPedro Giffuni  *
15*fc9fd3f1SPedro Giffuni  * OpenOffice.org is distributed in the hope that it will be useful,
16*fc9fd3f1SPedro Giffuni  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*fc9fd3f1SPedro Giffuni  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*fc9fd3f1SPedro Giffuni  * GNU Lesser General Public License version 3 for more details
19*fc9fd3f1SPedro Giffuni  * (a copy is included in the LICENSE file that accompanied this code).
20*fc9fd3f1SPedro Giffuni  *
21*fc9fd3f1SPedro Giffuni  * You should have received a copy of the GNU Lesser General Public License
22*fc9fd3f1SPedro Giffuni  * version 3 along with OpenOffice.org.  If not, see
23*fc9fd3f1SPedro Giffuni  * <http://www.openoffice.org/license.html>
24*fc9fd3f1SPedro Giffuni  * for a copy of the LGPLv3 License.
25*fc9fd3f1SPedro Giffuni  *
26*fc9fd3f1SPedro Giffuni  ************************************************************************/
27*fc9fd3f1SPedro Giffuni 
28*fc9fd3f1SPedro Giffuni #ifndef _SV_SALPRN_H
29*fc9fd3f1SPedro Giffuni #define _SV_SALPRN_H
30*fc9fd3f1SPedro Giffuni 
31*fc9fd3f1SPedro Giffuni #include <salprn.hxx>
32*fc9fd3f1SPedro Giffuni 
33*fc9fd3f1SPedro Giffuni class SalGraphics;
34*fc9fd3f1SPedro Giffuni class SalInfoPrinter;
35*fc9fd3f1SPedro Giffuni 
36*fc9fd3f1SPedro Giffuni struct ImplFormInfo;
37*fc9fd3f1SPedro Giffuni typedef ImplFormInfo* PIMPLFORMINFO;
38*fc9fd3f1SPedro Giffuni struct ImplTrayInfo;
39*fc9fd3f1SPedro Giffuni typedef ImplTrayInfo* PIMPLTRAYINFO;
40*fc9fd3f1SPedro Giffuni 
41*fc9fd3f1SPedro Giffuni // ----------------------
42*fc9fd3f1SPedro Giffuni // - SalInfoPrinterData -
43*fc9fd3f1SPedro Giffuni // ----------------------
44*fc9fd3f1SPedro Giffuni 
45*fc9fd3f1SPedro Giffuni //class SalInfoPrinterData
46*fc9fd3f1SPedro Giffuni class Os2SalInfoPrinter : public SalInfoPrinter
47*fc9fd3f1SPedro Giffuni {
48*fc9fd3f1SPedro Giffuni public:
49*fc9fd3f1SPedro Giffuni     Os2SalGraphics*         mpGraphics;             // Graphics
50*fc9fd3f1SPedro Giffuni     HDC                     mhDC;                   // printer hdc
51*fc9fd3f1SPedro Giffuni     HPS                     mhPS;                   // printer hps
52*fc9fd3f1SPedro Giffuni     ByteString                  maPrinterName;          // pszPrinters
53*fc9fd3f1SPedro Giffuni     ByteString                  maName;                 // pszName bzw. LogAdress
54*fc9fd3f1SPedro Giffuni     ByteString                  maDriverName;           // pszDriverName nach .
55*fc9fd3f1SPedro Giffuni     ByteString                  maDeviceName;           // pszDriverName bis .
56*fc9fd3f1SPedro Giffuni     ByteString                  maJobSetupDeviceName;   // DeviceName aus pDriverData
57*fc9fd3f1SPedro Giffuni     PIMPLFORMINFO*          mpFormArray;            // PaperForm-Names
58*fc9fd3f1SPedro Giffuni     USHORT                  mnFormCount;            // PaperForm-Count
59*fc9fd3f1SPedro Giffuni     PIMPLTRAYINFO*          mpTrayArray;            // PaperTray-Names
60*fc9fd3f1SPedro Giffuni     USHORT                  mnTrayCount;            // PaperTray-Count
61*fc9fd3f1SPedro Giffuni     sal_Bool                    mbDJPSupported;         // is driver DJP enabled
62*fc9fd3f1SPedro Giffuni     sal_Bool                    mbGraphics;             // is Graphics used
63*fc9fd3f1SPedro Giffuni 
64*fc9fd3f1SPedro Giffuni public:
65*fc9fd3f1SPedro Giffuni     Os2SalInfoPrinter();
66*fc9fd3f1SPedro Giffuni     virtual ~Os2SalInfoPrinter();
67*fc9fd3f1SPedro Giffuni 
68*fc9fd3f1SPedro Giffuni     virtual SalGraphics*            GetGraphics();
69*fc9fd3f1SPedro Giffuni     virtual void                    ReleaseGraphics( SalGraphics* pGraphics );
70*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    Setup( SalFrame* pFrame, ImplJobSetup* pSetupData );
71*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    SetPrinterData( ImplJobSetup* pSetupData );
72*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    SetData( ULONG nFlags, ImplJobSetup* pSetupData );
73*fc9fd3f1SPedro Giffuni     virtual void                    GetPageInfo( const ImplJobSetup* pSetupData,
74*fc9fd3f1SPedro Giffuni                                                  long& rOutWidth, long& rOutHeight,
75*fc9fd3f1SPedro Giffuni                                                  long& rPageOffX, long& rPageOffY,
76*fc9fd3f1SPedro Giffuni                                                  long& rPageWidth, long& rPageHeight );
77*fc9fd3f1SPedro Giffuni     virtual ULONG                   GetCapabilities( const ImplJobSetup* pSetupData, USHORT nType );
78*fc9fd3f1SPedro Giffuni     virtual ULONG                   GetPaperBinCount( const ImplJobSetup* pSetupData );
79*fc9fd3f1SPedro Giffuni     virtual String                  GetPaperBinName( const ImplJobSetup* pSetupData, ULONG nPaperBin );
80*fc9fd3f1SPedro Giffuni     virtual void                    InitPaperFormats( const ImplJobSetup* pSetupData );
81*fc9fd3f1SPedro Giffuni     virtual int                 GetLandscapeAngle( const ImplJobSetup* pSetupData );
82*fc9fd3f1SPedro Giffuni };
83*fc9fd3f1SPedro Giffuni 
84*fc9fd3f1SPedro Giffuni // ------------------
85*fc9fd3f1SPedro Giffuni // - SalPrinterData -
86*fc9fd3f1SPedro Giffuni // ------------------
87*fc9fd3f1SPedro Giffuni 
88*fc9fd3f1SPedro Giffuni class SalPrinterData00
89*fc9fd3f1SPedro Giffuni {
90*fc9fd3f1SPedro Giffuni public:
91*fc9fd3f1SPedro Giffuni     Os2SalGraphics*         mpGraphics;             // current Printer graphics
92*fc9fd3f1SPedro Giffuni     SalInfoPrinter*         mpInfoPrinter;          // pointer to the compatible InfoPrinter
93*fc9fd3f1SPedro Giffuni     HDC                     mhDC;                   // printer hdc
94*fc9fd3f1SPedro Giffuni     HPS                     mhPS;                   // printer hps
95*fc9fd3f1SPedro Giffuni     ULONG                   mnError;                // Error Code
96*fc9fd3f1SPedro Giffuni     sal_Bool                    mbFirstPage;            // IsFirstPage
97*fc9fd3f1SPedro Giffuni     sal_Bool                    mbAbort;                // JobAborted
98*fc9fd3f1SPedro Giffuni     sal_Bool                    mbPrintDJPSupported;    // is driver PrintDJP enabled (DEVESC_NEWFRAME_WPROP)
99*fc9fd3f1SPedro Giffuni     char                    maCommentBuf[33];       // Comment
100*fc9fd3f1SPedro Giffuni     char                    maCopyBuf[10];          // Kopien
101*fc9fd3f1SPedro Giffuni };
102*fc9fd3f1SPedro Giffuni 
103*fc9fd3f1SPedro Giffuni // -----------------
104*fc9fd3f1SPedro Giffuni // - Os2SalPrinter -
105*fc9fd3f1SPedro Giffuni // -----------------
106*fc9fd3f1SPedro Giffuni 
107*fc9fd3f1SPedro Giffuni class Os2SalPrinter : public SalPrinter
108*fc9fd3f1SPedro Giffuni {
109*fc9fd3f1SPedro Giffuni public:
110*fc9fd3f1SPedro Giffuni     Os2SalGraphics*         mpGraphics;             // current Printer graphics
111*fc9fd3f1SPedro Giffuni     Os2SalInfoPrinter*      mpInfoPrinter;          // pointer to the compatible InfoPrinter
112*fc9fd3f1SPedro Giffuni     Os2SalPrinter*          mpNextPrinter;          // next printing printer
113*fc9fd3f1SPedro Giffuni     HDC                     mhDC;                   // printer hdc
114*fc9fd3f1SPedro Giffuni     HPS                     mhPS;                   // printer hps
115*fc9fd3f1SPedro Giffuni     ULONG                   mnError;                // Error Code
116*fc9fd3f1SPedro Giffuni     sal_Bool                    mbFirstPage;            // IsFirstPage
117*fc9fd3f1SPedro Giffuni     sal_Bool                    mbAbort;                // JobAborted
118*fc9fd3f1SPedro Giffuni     sal_Bool                    mbPrintDJPSupported;    // is driver PrintDJP enabled (DEVESC_NEWFRAME_WPROP)
119*fc9fd3f1SPedro Giffuni     char                    maCommentBuf[33];       // Comment
120*fc9fd3f1SPedro Giffuni     char                    maCopyBuf[16];          // Kopien
121*fc9fd3f1SPedro Giffuni     //HDC                   mhDC;                   // printer hdc
122*fc9fd3f1SPedro Giffuni     //ULONG                 mnError;                // Error Code
123*fc9fd3f1SPedro Giffuni     //ULONG                 mnCopies;               // Kopien
124*fc9fd3f1SPedro Giffuni     //sal_Bool                  mbCollate;              // Sortierte Kopien
125*fc9fd3f1SPedro Giffuni     //sal_Bool                  mbAbort;                // Job Aborted
126*fc9fd3f1SPedro Giffuni 
127*fc9fd3f1SPedro Giffuni public:
128*fc9fd3f1SPedro Giffuni     Os2SalPrinter();
129*fc9fd3f1SPedro Giffuni     virtual ~Os2SalPrinter();
130*fc9fd3f1SPedro Giffuni 
131*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    StartJob( const XubString* pFileName,
132*fc9fd3f1SPedro Giffuni                                               const XubString& rJobName,
133*fc9fd3f1SPedro Giffuni                                               const XubString& rAppName,
134*fc9fd3f1SPedro Giffuni                                               ULONG nCopies,
135*fc9fd3f1SPedro Giffuni                                               bool bCollate,
136*fc9fd3f1SPedro Giffuni                                               bool bDirect,
137*fc9fd3f1SPedro Giffuni                                               ImplJobSetup* pSetupData );
138*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    EndJob();
139*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    AbortJob();
140*fc9fd3f1SPedro Giffuni     virtual SalGraphics*            StartPage( ImplJobSetup* pSetupData, sal_Bool bNewJobData );
141*fc9fd3f1SPedro Giffuni     virtual sal_Bool                    EndPage();
142*fc9fd3f1SPedro Giffuni     virtual ULONG                   GetErrorCode();
143*fc9fd3f1SPedro Giffuni };
144*fc9fd3f1SPedro Giffuni 
145*fc9fd3f1SPedro Giffuni #endif // _SV_SALPRN_H
146