Tizen 2.1 base
[platform/upstream/hplip.git] / prnt / hpijs / apollo2xxx.h
1 /*****************************************************************************\
2   apollo2xxx.h : Interface for the Apollo2xxx class
3
4   Copyright (c) 2000, 2001, Hewlett-Packard Co.
5   All rights reserved.
6
7   Redistribution and use in source and binary forms, with or without
8   modification, are permitted provided that the following conditions
9   are met:
10   1. Redistributions of source code must retain the above copyright
11      notice, this list of conditions and the following disclaimer.
12   2. Redistributions in binary form must reproduce the above copyright
13      notice, this list of conditions and the following disclaimer in the
14      documentation and/or other materials provided with the distribution.
15   3. Neither the name of Hewlett-Packard nor the names of its
16      contributors may be used to endorse or promote products derived
17      from this software without specific prior written permission.
18
19   THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
20   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
22   NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24   TO, PATENT INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25   OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 \*****************************************************************************/
30
31
32 #ifndef APDK_APOLLO2xxx_H
33 #define APDK_APOLLO2xxx_H
34
35 APDK_BEGIN_NAMESPACE
36 /*!
37 \internal
38 */
39 class Apollo2xxx : public Printer
40 {
41 public:
42     Apollo2xxx(SystemServices* pSS, BOOL proto=FALSE);
43
44     Header* SelectHeader(PrintContext* pc);
45     virtual DRIVER_ERROR VerifyPenInfo();
46     virtual DRIVER_ERROR ParsePenInfo(PEN_TYPE& ePen, BOOL QueryPrinter=TRUE);
47         virtual BOOL GetMargins (PAPER_SIZE ps, float *fMargins)
48         {
49                 if (ps == A4)
50                         fMargins[0] = (float) 0.135;
51                 else
52                         fMargins[0] = (float) 0.25;     // Left Margin
53                 fMargins[1] = fMargins[0];              // Right Margin
54                 fMargins[2] = (float) 0.125;    // Top Margin
55                 fMargins[3] = (float) 0.67;             // Bottom Margin
56                 return TRUE;
57         }
58
59 #ifdef APDK_HP_UX
60 protected:
61     virtual Apollo2xxx & operator = (Printer &rhs)
62     {
63         return *this;
64     }
65 #endif
66
67 }; //Apollo2xxx
68
69
70 class Mode2xxxPhoto : public PrintMode
71 {
72 public:
73     Mode2xxxPhoto();
74 }; //Mode2xxxPhoto
75
76
77 class Mode2xxxColor : public PrintMode
78 {
79 public:
80     Mode2xxxColor();
81
82 }; //Mode2xxxColor
83
84
85 class GrayMode2xxx : public PrintMode
86 {
87 public:
88     GrayMode2xxx();
89 }; //GrayMode2xxx
90
91 #ifdef APDK_EXTENDED_MEDIASIZE
92 class Mode2xxxDraftGrayK : public PrintMode
93 {
94 public:
95     Mode2xxxDraftGrayK();
96 }; //Mode2xxxDraftGrayK
97
98 class Mode2xxxDraftColorKCMY : public PrintMode
99 {
100 public:
101     Mode2xxxDraftColorKCMY();
102 }; //Mode2xxxDraftKCMYColor
103
104 class Mode2xxxDraftColorCMY : public PrintMode
105 {
106 public:
107     Mode2xxxDraftColorCMY();
108 }; //Mode2xxxDraftCMYColor
109
110 class Mode2xxxBestGrayK : public GrayMode
111 {
112 public:
113     Mode2xxxBestGrayK();
114 }; //Mode2xxxBestGrayK
115 #endif // APDK_EXTENDED_MEDIASIZE
116
117 #ifdef APDK_APOLLO2XXX
118 //! Apollo2xxxProxy
119 /*!
120 ******************************************************************************/
121 class Apollo2xxxProxy : public PrinterProxy
122 {
123 public:
124     Apollo2xxxProxy() : PrinterProxy(
125         "AP2xxx",                       // family name
126         "APOLLO P-22\0"                                 // Apollo P-22xx series
127     ) {m_iPrinterType = eAP2xxx;}
128     inline Printer* CreatePrinter(SystemServices* pSS) const { return new Apollo2xxx(pSS); }
129         inline PRINTER_TYPE GetPrinterType() const { return eAP2xxx;}
130         inline unsigned int GetModelBit() const { return 0x4000;}
131 };
132 #endif
133
134 APDK_END_NAMESPACE
135
136 #endif  //APDK_APOLLO2xx_H