xref: /haiku/headers/libs/print/libprint/JobData.h (revision 4a0c1e139db5ad8deef4a9fcdad5842067b52d1f)
1 /*
2  * JobData.h
3  * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
4  */
5 
6 #ifndef __JOBDATA_H
7 #define __JOBDATA_H
8 
9 #include <SupportDefs.h>
10 #include <GraphicsDefs.h>
11 #include <Rect.h>
12 
13 #include <map>
14 #include <string>
15 
16 #include "Halftone.h"
17 #include "MarginView.h" // for MarginUnit
18 
19 class BMessage;
20 class PrinterCap;
21 
22 
23 using namespace std;
24 
25 class DriverSpecificSettings
26 {
27 public:
28 	DriverSpecificSettings();
29 	DriverSpecificSettings(const DriverSpecificSettings& Settings);
30 
31 	DriverSpecificSettings &operator=(const DriverSpecificSettings &Settings);
32 
33 	void MakeEmpty();
34 
35 	bool HasString(const char* key) const;
36 	const char* GetString(const char* key) const;
37 	void SetString(const char* key, const char* value);
38 
39 	bool HasBoolean(const char* ekey) const;
40 	bool GetBoolean(const char* key) const;
41 	void SetBoolean(const char* key, bool value);
42 
43 	bool HasInt(const char* ekey) const;
44 	int32 GetInt(const char* key) const;
45 	void SetInt(const char* key, int32 value);
46 
47 	bool HasDouble(const char* ekey) const;
48 	double GetDouble(const char* key) const;
49 	void SetDouble(const char* key, double value);
50 
51 	BMessage& Message();
52 
53 private:
54 	BMessage fSettings;
55 };
56 
57 
58 class JobData {
59 public:
60 	enum Orientation {
61 		kPortrait,
62 		kLandscape
63 	};
64 
65 	enum Paper {
66 		kLetter = 1,            //   1  Letter 8 1/2 x 11 in
67 		kLetterSmall,           //   2  Letter Small 8 1/2 x 11 in
68 		kTabloid,               //   3  Tabloid 11 x 17 in
69 		kLedger,                //   4  Ledger 17 x 11 in
70 		kLegal,                 //   5  Legal 8 1/2 x 14 in
71 		kStatement,             //   6  Statement 5 1/2 x 8 1/2 in
72 		kExecutive,             //   7  Executive 7 1/4 x 10 1/2 in
73 		kA3,                    //   8  A3 297 x 420 mm
74 		kA4,                    //   9  A4 210 x 297 mm
75 		kA4Small,               //  10  A4 Small 210 x 297 mm
76 		kA5,                    //  11  A5 148 x 210 mm
77 		kB4,                    //  12  B4 (JIS) 250 x 354
78 		kB5,                    //  13  B5 (JIS) 182 x 257 mm
79 		kFolio,                 //  14  Folio 8 1/2 x 13 in
80 		kQuarto,                //  15  Quarto 215 x 275 mm
81 		k10X14,                 //  16  10x14 in
82 		k11X17,                 //  17  11x17 in
83 		kNote,                  //  18  Note 8 1/2 x 11 in
84 		kEnv9,                  //  19  Envelope #9 3 7/8 x 8 7/8
85 		kEnv10,                 //  20  Envelope #10 4 1/8 x 9 1/2
86 		kEnv11,                 //  21  Envelope #11 4 1/2 x 10 3/8
87 		kEnv12,                 //  22  Envelope #12 4 \276 x 11
88 		kEnv14,                 //  23  Envelope #14 5 x 11 1/2
89 		kCSheet,                //  24  C size sheet
90 		kDSheet,                //  25  D size sheet
91 		kESheet,                //  26  E size sheet
92 		kEnvDL,                 //  27  Envelope DL 110 x 220mm
93 		kEnvC5,                 //  28  Envelope C5 162 x 229 mm
94 		kEnvC3,                 //  29  Envelope C3  324 x 458 mm
95 		kEnvC4,                 //  30  Envelope C4  229 x 324 mm
96 		kEnvC6,                 //  31  Envelope C6  114 x 162 mm
97 		kEnvC65,                //  32  Envelope C65 114 x 229 mm
98 		kEnvB4,                 //  33  Envelope B4  250 x 353 mm
99 		kEnvB5,                 //  34  Envelope B5  176 x 250 mm
100 		kEnvB6,                 //  35  Envelope B6  176 x 125 mm
101 		kEnvItaly,              //  36  Envelope 110 x 230 mm
102 		kEnvMonarch,            //  37  Envelope Monarch 3.875 x 7.5 in
103 		kEnvPersonal,           //  38  6 3/4 Envelope 3 5/8 x 6 1/2 in
104 		kFanFoldUS,             //  39  US Std Fanfold 14 7/8 x 11 in
105 		kFanFoldStdGerman,      //  40  German Std Fanfold 8 1/2 x 12 in
106 		kFanFoldLglGerman,      //  41  German Legal Fanfold 8 1/2 x 13 in
107 		kIsoB4,                 //  42  B4 (ISO) 250 x 353 mm
108 		kJapanesePostcard,      //  43  Japanese Postcard 100 x 148 mm
109 		k9X11,                  //  44  9 x 11 in
110 		k10X11,                 //  45  10 x 11 in
111 		k15X11,                 //  46  15 x 11 in
112 		kEnvInvite,             //  47  Envelope Invite 220 x 220 mm
113 		kReserved48,            //  48  RESERVED--DO NOT USE
114 		kReserved49,            //  49  RESERVED--DO NOT USE
115 		kLetterExtra,	        //  50  Letter Extra 9 \275 x 12 in
116 		kLegalExtra, 	        //  51  Legal Extra 9 \275 x 15 in
117 		kTabloidExtra,	        //  52  Tabloid Extra 11.69 x 18 in
118 		kA4Extra,     	        //  53  A4 Extra 9.27 x 12.69 in
119 		kLetterTransverse,      //  54  Letter Transverse 8 \275 x 11 in
120 		kA4Transverse,          //  55  A4 Transverse 210 x 297 mm
121 		kLetterExtraTransverse, //  56  Letter Extra Transverse 9\275 x 12 in
122 		kAPlus,                 //  57  SuperA/SuperA/A4 227 x 356 mm
123 		kBPlus,                 //  58  SuperB/SuperB/A3 305 x 487 mm
124 		kLetterPlus,            //  59  Letter Plus 8.5 x 12.69 in
125 		kA4Plus,                //  60  A4 Plus 210 x 330 mm
126 		kA5Transverse,          //  61  A5 Transverse 148 x 210 mm
127 		kB5Transverse,          //  62  B5 (JIS) Transverse 182 x 257 mm
128 		kA3Extra,               //  63  A3 Extra 322 x 445 mm
129 		kA5Extra,               //  64  A5 Extra 174 x 235 mm
130 		kB5Extra,               //  65  B5 (ISO) Extra 201 x 276 mm
131 		kA2,                    //  66  A2 420 x 594 mm
132 		kA3Transverse,          //  67  A3 Transverse 297 x 420 mm
133 		kA3ExtraTransverse,     //  68  A3 Extra Transverse 322 x 445 mm
134 		kDBLJapanesePostcard,   //  69  Japanese Double Postcard 200 x 148 mm
135 		kA6,                    //  70  A6 105 x 148 mm
136 		kJEnvKaku2,             //  71  Japanese Envelope Kaku #2
137 		kJEnvKaku3,             //  72  Japanese Envelope Kaku #3
138 		kJEnvChou3,             //  73  Japanese Envelope Chou #3
139 		kJEnvChou4,             //  74  Japanese Envelope Chou #4
140 		kLetterRotated,         //  75  Letter Rotated 11 x 8 1/2 11 in
141 		kA3Rotated,             //  76  A3 Rotated 420 x 297 mm
142 		kA4Rotated,             //  77  A4 Rotated 297 x 210 mm
143 		kA5Rotated,             //  78  A5 Rotated 210 x 148 mm
144 		kB4JISRotated,          //  79  B4 (JIS) Rotated 364 x 257 mm
145 		kB5JISRotated,          //  80  B5 (JIS) Rotated 257 x 182 mm
146 		kJapanesePostcardRotated, //  81 Japanese Postcard Rotated 148 x 100 mm
147 		kDBLJapanesePostcardRotated, // 82 Double Japanese Postcard Rotated 148 x 200 mm
148 		kA6Rotated,             //  83  A6 Rotated 148 x 105 mm
149 		kJEnvKaku2Rotated,      //  84  Japanese Envelope Kaku #2 Rotated
150 		kJEnvKaku3Rotated,      //  85  Japanese Envelope Kaku #3 Rotated
151 		kJEnvChou3Rotated,      //  86  Japanese Envelope Chou #3 Rotated
152 		kJEnvChou4Rotated,      //  87  Japanese Envelope Chou #4 Rotated
153 		kB6JIS,                 //  88  B6 (JIS) 128 x 182 mm
154 		kB6JISRotated,          //  89  B6 (JIS) Rotated 182 x 128 mm
155 		k12X11,                 //  90  12 x 11 in
156 		kJEnvYou4,              //  91  Japanese Envelope You #4
157 		kJEnvYou4Rotated,       //  92  Japanese Envelope You #4 Rotated
158 		kP16K,                  //  93  PRC 16K 146 x 215 mm
159 		kP32K,                  //  94  PRC 32K 97 x 151 mm
160 		kP32KBig,               //  95  PRC 32K(Big) 97 x 151 mm
161 		kPEnv1,                 //  96  PRC Envelope #1 102 x 165 mm
162 		kPEnv2,                 //  97  PRC Envelope #2 102 x 176 mm
163 		kPEnv3,                 //  98  PRC Envelope #3 125 x 176 mm
164 		kPEnv4,                 //  99  PRC Envelope #4 110 x 208 mm
165 		kPEnv5,                 // 100  PRC Envelope #5 110 x 220 mm
166 		kPEnv6,                 // 101  PRC Envelope #6 120 x 230 mm
167 		kPEnv7,                 // 102  PRC Envelope #7 160 x 230 mm
168 		kPEnv8,                 // 103  PRC Envelope #8 120 x 309 mm
169 		kPEnv9,                 // 104  PRC Envelope #9 229 x 324 mm
170 		kPEnv10,                // 105  PRC Envelope #10 324 x 458 mm
171 		kP16KRotated,           // 106  PRC 16K Rotated
172 		kP32KRotated,           // 107  PRC 32K Rotated
173 		kP32KBIGRotated,        // 108  PRC 32K(Big) Rotated
174 		kPEnv1Rotated,          // 109  PRC Envelope #1 Rotated 165 x 102 mm
175 		kPEnv2Rotated,          // 110  PRC Envelope #2 Rotated 176 x 102 mm
176 		kPEnv3Rotated,          // 111  PRC Envelope #3 Rotated 176 x 125 mm
177 		kPEnv4Rotated,          // 112  PRC Envelope #4 Rotated 208 x 110 mm
178 		kPEnv5Rotated,          // 113  PRC Envelope #5 Rotated 220 x 110 mm
179 		kPEnv6Rotated,          // 114  PRC Envelope #6 Rotated 230 x 120 mm
180 		kPEnv7Rotated,          // 115  PRC Envelope #7 Rotated 230 x 160 mm
181 		kPEnv8Rotated,          // 116  PRC Envelope #8 Rotated 309 x 120 mm
182 		kPEnv9Rotated,          // 117  PRC Envelope #9 Rotated 324 x 229 mm
183 		kPEnv10Rotated,         // 118  PRC Envelope #10 Rotated 458 x 324 mm
184 		kUserDefined = 256
185 	};
186 
187 	enum PaperSource {
188 		kAuto,          // 7	o
189 		kManual,        // 4	o
190 		kUpper,         // 1	o
191 		kMiddle,        // 3	o
192 		kLower,         // 2	o
193 //		kOnlyOne,       // 1	x
194 //		kEnvelope,      // 5	o
195 //		kEnvManual,     // 6	x
196 //		kTractor,       // 8	x
197 //		kSmallFmt,      // 9	x
198 //		kLargeFmt,      // 10	x
199 //		kLargeCapacity, // 11	x
200 //		kCassette,      // 14	x
201 //		kFormSource,    // 15	x
202 		kCassette1 = 21,
203 		kCassette2,
204 		kCassette3,
205 		kCassette4,
206 		kCassette5,
207 		kCassette6,
208 		kCassette7,
209 		kCassette8,
210 		kCassette9,
211 		kUser = 256     // device specific bins start here
212 	};
213 
214 	enum PrintStyle {
215 		kSimplex,
216 		kDuplex,
217 		kBooklet
218 	};
219 
220 	enum BindingLocation {
221 		kLongEdgeLeft,
222 		kLongEdgeRight,
223 		kShortEdgeTop,
224 		kShortEdgeBottom,
225 		kLongEdge  = kLongEdgeLeft,
226 		kShortEdge = kShortEdgeTop
227 	};
228 
229 	enum PageOrder {
230 		kAcrossFromLeft,
231 		kDownFromLeft,
232 		kAcrossFromRight,
233 		kDownFromRight,
234 		kLeftToRight = kAcrossFromLeft,
235 		kRightToLeft = kAcrossFromRight
236 	};
237 
238 /*
239 	enum Quality {
240 		kDraft  = -1,
241 		kLow    = -2,
242 		kMedium = -3,
243 		kHigh   = -4
244 	};
245 */
246 	enum Color {
247 		kMonochrome = 1,
248 		kColor,
249 		// Some PCL6 printers do not support compressed data
250 		// in color mode.
251 		kColorCompressionDisabled
252 	};
253 
254 	enum SettingType {
255 		kPageSettings,
256 		kJobSettings
257 	};
258 
259 	enum PageSelection {
260 		kAllPages,
261 		kOddNumberedPages,
262 		kEvenNumberedPages
263 	};
264 
265 				JobData(BMessage* message, const PrinterCap* printerCap,
266 					SettingType type);
267 				~JobData();
268 
269 				JobData(const JobData& jobData);
270 	JobData&	operator=(const JobData& jobData);
271 
272 	void		Load(BMessage* message, const PrinterCap* printerCap,
273 					SettingType type);
274 	void		Save(BMessage* message = NULL);
275 
276 	bool		GetShowPreview() const;
277 	void		SetShowPreview(bool showPreview);
278 
279 	Paper		GetPaper() const;
280 	void		SetPaper(Paper paper);
281 
282 	int32		GetResolutionID() const;
283 	void		SetResolutionID(int32 resolution);
284 
285 	int32		GetXres() const;
286 	void		SetXres(int32 xres);
287 
288 	int32		GetYres() const;
289 	void		SetYres(int32 yres);
290 
291 	Orientation	GetOrientation() const;
292 	void		SetOrientation(Orientation orientation);
293 
294 	float		GetScaling() const;
295 	void		SetScaling(float scaling);
296 
297 	const BRect&	GetPaperRect() const;
298 	void 			SetPaperRect(const BRect& paperRect);
299 
300 	const BRect&	GetScaledPaperRect() const;
301 	void  			SetScaledPaperRect(const BRect& paperRect);
302 
303 	const BRect&	GetPrintableRect() const;
304 	void 			SetPrintableRect(const BRect& printableRect);
305 
306 	const BRect&	GetScaledPrintableRect() const;
307 	void			SetScaledPrintableRect(const BRect& printableRect);
308 
309 	const BRect&	GetPhysicalRect() const;
310 	void 			SetPhysicalRect(const BRect& PhysicalRect);
311 
312 	const BRect&	GetScaledPhysicalRect() const;
313 	void			SetScaledPhysicalRect(const BRect& PhysicalRect);
314 
315 	int32			GetNup() const;
316 	void			SetNup(int32 nup);
317 
318 	bool			GetReverse() const;
319 	void			SetReverse(bool reverse);
320 
321 	int32			GetFirstPage() const;
322 	void			SetFirstPage(int32 firstPage);
323 
324 	int32			GetLastPage() const;
325 	void			SetLastPage(int32 lastPage);
326 
327 	// libprint supports only B_RGB32
328 	color_space		GetSurfaceType() const;
329 
330 	float			GetGamma() const;
331 	void			SetGamma(float gamma);
332 
333 	float			GetInkDensity() const;
334 	void			SetInkDensity(float inkDensity);
335 
336 	PaperSource		GetPaperSource() const;
337 	void			SetPaperSource(PaperSource paperSource);
338 
339 	int32			GetCopies() const;
340 	void			SetCopies(int32 copies);
341 
342 	bool			GetCollate() const;
343 	void			SetCollate(bool collate);
344 
345 	PrintStyle		GetPrintStyle() const;
346 	void			SetPrintStyle(PrintStyle printStyle);
347 
348 	BindingLocation	GetBindingLocation() const;
349 	void			SetBindingLocation(BindingLocation bindingLocation);
350 
351 	PageOrder		GetPageOrder() const;
352 	void			SetPageOrder(PageOrder pageOrder);
353 
354 	Color			GetColor() const;
355 	void			SetColor(Color color);
356 
357 	Halftone::DitherType	GetDitherType() const;
358 	void					SetDitherType(Halftone::DitherType ditherType);
359 
360 	PageSelection	GetPageSelection() const;
361 	void			SetPageSelection(PageSelection pageSelection);
362 
363 	MarginUnit		GetMarginUnit() const;
364 	void			SetMarginUnit(MarginUnit marginUnit);
365 
366 	DriverSpecificSettings& 		Settings();
367 	const DriverSpecificSettings&	Settings() const;
368 
369 private:
370 	bool        fShowPreview;
371 	Paper       fPaper;
372 	int32       fResolutionID;
373 	int32       fXRes;
374 	int32       fYRes;
375 	Orientation fOrientation;
376 	float       fScaling;
377 	BRect       fPaperRect;
378 	BRect       fScaledPaperRect;
379 	BRect       fPrintableRect;
380 	BRect       fScaledPrintableRect;
381 	BRect       fPhysicalRect;
382 	BRect       fScaledPhysicalRect;
383 	int32       fNup;
384 	int32       fFirstPage;
385 	int32       fLastPage;
386 	float       fGamma;      // 1 identiy, < 1 brigther, > 1 darker
387 	float       fInkDensity; // [0, 255] lower means higher density
388 	PaperSource fPaperSource;
389 	int32       fCopies;
390 	bool        fCollate;
391 	bool        fReverse;
392 	PrintStyle  fPrintStyle;
393 	BindingLocation fBindingLocation;
394 	PageOrder   fPageOrder;
395 	SettingType fSettingType;
396 	BMessage    *fMsg;
397 	Color       fColor;
398 	Halftone::DitherType fDitherType;
399 	PageSelection        fPageSelection;
400 	MarginUnit  fMarginUnit;
401 	DriverSpecificSettings fDriverSpecificSettings;
402 };
403 
404 
405 inline bool
GetShowPreview()406 JobData::GetShowPreview() const
407 {
408 	return fShowPreview;
409 }
410 
411 inline void
SetShowPreview(bool showPreview)412 JobData::SetShowPreview(bool showPreview)
413 {
414 	fShowPreview = showPreview;
415 }
416 
417 
418 inline JobData::Paper
GetPaper()419 JobData::GetPaper() const
420 {
421 	return fPaper;
422 }
423 
424 
425 inline void
SetPaper(Paper paper)426 JobData::SetPaper(Paper paper)
427 {
428 	fPaper = paper;
429 }
430 
431 
432 inline int32
GetResolutionID()433 JobData::GetResolutionID() const
434 {
435 	return fResolutionID;
436 }
437 
438 
439 inline void
SetResolutionID(int32 resolution)440 JobData::SetResolutionID(int32 resolution)
441 {
442 	fResolutionID = resolution;
443 }
444 
445 
446 inline int32
GetXres()447 JobData::GetXres() const
448 {
449 	return fXRes;
450 }
451 
452 
453 inline void
SetXres(int32 xres)454 JobData::SetXres(int32 xres)
455 {
456 	fXRes = xres;
457 }
458 
459 
460 inline int32
GetYres()461 JobData::GetYres() const
462 {
463 	return fYRes;
464 }
465 
466 
467 inline void
SetYres(int32 yres)468 JobData::SetYres(int32 yres)
469 {
470 	fYRes = yres;
471 };
472 
473 
474 inline JobData::Orientation
GetOrientation()475 JobData::GetOrientation() const
476 {
477 	return fOrientation;
478 }
479 
480 
481 inline void
SetOrientation(Orientation orientation)482 JobData::SetOrientation(Orientation orientation)
483 {
484 	fOrientation = orientation;
485 }
486 
487 
488 inline float
GetScaling()489 JobData::GetScaling() const
490 {
491 	return fScaling;
492 }
493 
494 
495 inline void
SetScaling(float scaling)496 JobData::SetScaling(float scaling)
497 {
498 	fScaling = scaling;
499 }
500 
501 
502 inline const BRect&
GetPaperRect()503 JobData::GetPaperRect() const
504 {
505 	return fPaperRect;
506 }
507 
508 
509 inline void
SetPaperRect(const BRect & rect)510 JobData::SetPaperRect(const BRect &rect)
511 {
512 	fPaperRect = rect;
513 }
514 
515 
516 inline const BRect&
GetScaledPaperRect()517 JobData::GetScaledPaperRect() const
518 {
519 	return fScaledPaperRect;
520 }
521 
522 
523 inline void
SetScaledPaperRect(const BRect & rect)524 JobData::SetScaledPaperRect(const BRect &rect)
525 {
526 	fScaledPaperRect = rect;
527 }
528 
529 
530 inline const BRect &
GetPrintableRect()531 JobData::GetPrintableRect() const
532 {
533 	return fPrintableRect;
534 }
535 
536 
537 inline void
SetPrintableRect(const BRect & rect)538 JobData::SetPrintableRect(const BRect &rect)
539 {
540 	fPrintableRect = rect;
541 }
542 
543 
544 inline const BRect&
GetScaledPrintableRect()545 JobData::GetScaledPrintableRect() const
546 {
547 	return fScaledPrintableRect;
548 }
549 
550 
551 inline void
SetScaledPrintableRect(const BRect & rect)552 JobData::SetScaledPrintableRect(const BRect &rect)
553 {
554 	fScaledPrintableRect = rect;
555 }
556 
557 
558 inline const BRect&
GetPhysicalRect()559 JobData::GetPhysicalRect() const
560 {
561 	return fPhysicalRect;
562 }
563 
564 
565 inline void
SetPhysicalRect(const BRect & rect)566 JobData::SetPhysicalRect(const BRect &rect)
567 {
568 	fPhysicalRect = rect;
569 }
570 
571 
572 inline const BRect&
GetScaledPhysicalRect()573 JobData::GetScaledPhysicalRect() const
574 {
575 	return fScaledPhysicalRect;
576 }
577 
578 
579 
580 inline void
SetScaledPhysicalRect(const BRect & rect)581 JobData::SetScaledPhysicalRect(const BRect &rect)
582 {
583 	fScaledPhysicalRect = rect;
584 }
585 
586 
587 inline int32
GetNup()588 JobData::GetNup() const
589 {
590 	return fNup;
591 }
592 
593 
594 inline void
SetNup(int32 nup)595 JobData::SetNup(int32 nup)
596 {
597 	fNup = nup;
598 }
599 
600 
601 inline bool
GetReverse()602 JobData::GetReverse() const
603 {
604 	return fReverse;
605 }
606 
607 
608 inline void
SetReverse(bool reverse)609 JobData::SetReverse(bool reverse)
610 {
611 	fReverse = reverse;
612 }
613 
614 
615 inline int32
GetFirstPage()616 JobData::GetFirstPage() const
617 {
618 	return fFirstPage;
619 }
620 
621 
622 inline void
SetFirstPage(int32 firstPage)623 JobData::SetFirstPage(int32 firstPage)
624 {
625 	fFirstPage = firstPage;
626 }
627 
628 
629 inline int32
GetLastPage()630 JobData::GetLastPage() const
631 {
632 	return fLastPage;
633 }
634 
635 
636 inline void
SetLastPage(int32 lastPage)637 JobData::SetLastPage(int32 lastPage)
638 {
639 	fLastPage = lastPage;
640 }
641 
642 
643 color_space
GetSurfaceType()644 inline JobData::GetSurfaceType() const
645 {
646 	return B_RGB32;
647 }
648 
649 
650 inline float
GetGamma()651 JobData::GetGamma() const
652 {
653 	return fGamma;
654 }
655 
656 
657 inline void
SetGamma(float gamma)658 JobData::SetGamma(float gamma)
659 {
660 	fGamma = gamma;
661 }
662 
663 
664 inline float
GetInkDensity()665 JobData::GetInkDensity() const
666 {
667 	return fInkDensity;
668 }
669 
670 
671 inline void
SetInkDensity(float inkDensity)672 JobData::SetInkDensity(float inkDensity)
673 {
674 	fInkDensity = inkDensity;
675 }
676 
677 
678 inline JobData::PaperSource
GetPaperSource()679 JobData::GetPaperSource() const
680 {
681 	return fPaperSource;
682 }
683 
684 
685 inline void
SetPaperSource(PaperSource paperSource)686 JobData::SetPaperSource(PaperSource paperSource)
687 {
688 	fPaperSource = paperSource;
689 };
690 
691 
692 inline int32
GetCopies()693 JobData::GetCopies() const
694 {
695 	return fCopies;
696 }
697 
698 
699 inline void
SetCopies(int32 copies)700 JobData::SetCopies(int32 copies)
701 {
702 	fCopies = copies;
703 }
704 
705 
706 inline bool
GetCollate()707 JobData::GetCollate() const
708 {
709 	return fCollate;
710 }
711 
712 
713 inline void
SetCollate(bool collate)714 JobData::SetCollate(bool collate)
715 {
716 	fCollate = collate;
717 }
718 
719 
720 inline JobData::PrintStyle
GetPrintStyle()721 JobData::GetPrintStyle() const
722 {
723 	return fPrintStyle;
724 }
725 
726 
727 inline void
SetPrintStyle(PrintStyle print_style)728 JobData::SetPrintStyle(PrintStyle print_style)
729 {
730 	fPrintStyle = print_style;
731 }
732 
733 
734 inline JobData::BindingLocation
GetBindingLocation()735 JobData::GetBindingLocation() const
736 {
737 	return fBindingLocation;
738 }
739 
740 
741 inline void
SetBindingLocation(BindingLocation binding_location)742 JobData::SetBindingLocation(BindingLocation binding_location)
743 {
744 	fBindingLocation = binding_location;
745 }
746 
747 
748 inline JobData::PageOrder
GetPageOrder()749 JobData::GetPageOrder() const { return fPageOrder; }
750 
751 
752 inline void
SetPageOrder(PageOrder page_order)753 JobData::SetPageOrder(PageOrder page_order)
754 {
755 	fPageOrder = page_order;
756 }
757 
758 
759 inline JobData::Color
GetColor()760 JobData::GetColor() const
761 {
762 	return fColor;
763 }
764 
765 
766 inline void
SetColor(Color color)767 JobData::SetColor(Color color)
768 {
769 	fColor = color;
770 }
771 
772 
773 inline Halftone::DitherType
GetDitherType()774 JobData::GetDitherType() const
775 {
776 	return fDitherType;
777 }
778 
779 
780 inline void
SetDitherType(Halftone::DitherType dither_type)781 JobData::SetDitherType(Halftone::DitherType dither_type)
782 {
783 	fDitherType = dither_type;
784 }
785 
786 
787 inline JobData::PageSelection
GetPageSelection()788 JobData::GetPageSelection() const
789 {
790 	return fPageSelection;
791 }
792 
793 
794 inline void
SetPageSelection(PageSelection pageSelection)795 JobData::SetPageSelection(PageSelection pageSelection)
796 {
797 	fPageSelection = pageSelection;
798 }
799 
800 
801 inline MarginUnit
GetMarginUnit()802 JobData::GetMarginUnit() const
803 {
804 	return fMarginUnit;
805 }
806 
807 
808 inline void
SetMarginUnit(MarginUnit marginUnit)809 JobData::SetMarginUnit(MarginUnit marginUnit)
810 {
811 	fMarginUnit = marginUnit;
812 }
813 
814 #endif	/* __JOBDATA_H */
815