152a38012Sejakowatz /*
252a38012Sejakowatz * Lips3Cap.cpp
352a38012Sejakowatz * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
452a38012Sejakowatz */
552a38012Sejakowatz
6a6cd1edfSWim van der Meer
752a38012Sejakowatz #include "Lips3Cap.h"
852a38012Sejakowatz
924874466SWim van der Meer #include "PrinterData.h"
1024874466SWim van der Meer
1152a38012Sejakowatz #define TO72DPI(a) (a * 72.0f / 600.0f)
1252a38012Sejakowatz
1352a38012Sejakowatz const PaperCap a3(
1452a38012Sejakowatz "A3",
1552a38012Sejakowatz false,
16d2c03b1bSMichael Pfeiffer JobData::kA3,
1752a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(7014.0f), TO72DPI(9920.0f)),
1852a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f)));
1952a38012Sejakowatz
2052a38012Sejakowatz const PaperCap a4(
2152a38012Sejakowatz "A4",
2252a38012Sejakowatz true,
23d2c03b1bSMichael Pfeiffer JobData::kA4,
2452a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4960.0f), TO72DPI(7014.0f)),
2552a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f)));
2652a38012Sejakowatz
2752a38012Sejakowatz const PaperCap a5(
2852a38012Sejakowatz "A5",
2952a38012Sejakowatz false,
30d2c03b1bSMichael Pfeiffer JobData::kA5,
3152a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(3506.0f), TO72DPI(4960.0f)),
3252a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f)));
3352a38012Sejakowatz
3452a38012Sejakowatz const PaperCap japanese_postcard(
3552a38012Sejakowatz "Japanese Postcard",
3652a38012Sejakowatz false,
37d2c03b1bSMichael Pfeiffer JobData::kJapanesePostcard,
3852a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(2362.0f), TO72DPI(3506.0f)),
3952a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f)));
4052a38012Sejakowatz
4152a38012Sejakowatz const PaperCap b4(
4252a38012Sejakowatz "B4",
4352a38012Sejakowatz false,
44d2c03b1bSMichael Pfeiffer JobData::kB4,
4552a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(6070.0f), TO72DPI(8598.0f)),
4652a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f)));
4752a38012Sejakowatz
4852a38012Sejakowatz const PaperCap b5(
4952a38012Sejakowatz "B5",
5052a38012Sejakowatz false,
51d2c03b1bSMichael Pfeiffer JobData::kB5,
5252a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4298.0f), TO72DPI(6070.0f)),
5352a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f)));
5452a38012Sejakowatz
5552a38012Sejakowatz const PaperCap letter(
5652a38012Sejakowatz "Letter",
5752a38012Sejakowatz false,
58d2c03b1bSMichael Pfeiffer JobData::kLetter,
5952a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(6600.0f)),
6052a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f)));
6152a38012Sejakowatz
6252a38012Sejakowatz const PaperCap legal(
6352a38012Sejakowatz "Legal",
6452a38012Sejakowatz false,
65d2c03b1bSMichael Pfeiffer JobData::kLegal,
6652a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(8400.0f)),
6752a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f)));
6852a38012Sejakowatz
69d2c03b1bSMichael Pfeiffer const PaperSourceCap autobin("Auto", true, JobData::kAuto);
70d2c03b1bSMichael Pfeiffer const PaperSourceCap manual("Manual", false, JobData::kManual);
71d2c03b1bSMichael Pfeiffer const PaperSourceCap upper("Upper", false, JobData::kUpper);
72d2c03b1bSMichael Pfeiffer const PaperSourceCap lower("Lower", false, JobData::kLower);
7352a38012Sejakowatz
74f53abcbdSMichael Pfeiffer const ResolutionCap dpi300("300dpi", true, 0, 300, 300);
7552a38012Sejakowatz
7652a38012Sejakowatz const PaperCap* papers[] = {
7752a38012Sejakowatz &a4,
7852a38012Sejakowatz &a3,
7952a38012Sejakowatz &a5,
8052a38012Sejakowatz &b4,
8152a38012Sejakowatz &b5,
8252a38012Sejakowatz &letter,
8352a38012Sejakowatz &legal
8452a38012Sejakowatz };
8552a38012Sejakowatz
8652a38012Sejakowatz const PaperSourceCap* papersources[] = {
8752a38012Sejakowatz &autobin,
8852a38012Sejakowatz &manual,
8952a38012Sejakowatz &upper,
9052a38012Sejakowatz &lower
9152a38012Sejakowatz };
9252a38012Sejakowatz
9352a38012Sejakowatz const ResolutionCap* resolutions[] = {
9452a38012Sejakowatz &dpi300
9552a38012Sejakowatz };
9652a38012Sejakowatz
97d2c03b1bSMichael Pfeiffer const ColorCap color("Color", false, JobData::kColor);
98e23b0decSDarkWyrm const ColorCap monochrome("Shades of Gray", true, JobData::kMonochrome);
997f226d99SMichael Pfeiffer
1007f226d99SMichael Pfeiffer const ColorCap* colors[] = {
1017f226d99SMichael Pfeiffer &color,
1027f226d99SMichael Pfeiffer &monochrome
1037f226d99SMichael Pfeiffer };
1047f226d99SMichael Pfeiffer
10524874466SWim van der Meer
Lips3Cap(const PrinterData * printer_data)10652a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData* printer_data)
10724874466SWim van der Meer :
10824874466SWim van der Meer PrinterCap(printer_data)
10952a38012Sejakowatz {
11052a38012Sejakowatz }
11152a38012Sejakowatz
11224874466SWim van der Meer
11324874466SWim van der Meer int
CountCap(CapID capid) const1144410ee12SMichael Pfeiffer Lips3Cap::CountCap(CapID capid) const
11552a38012Sejakowatz {
11652a38012Sejakowatz switch (capid) {
117d2c03b1bSMichael Pfeiffer case kPaper:
11852a38012Sejakowatz return sizeof(papers) / sizeof(papers[0]);
119d2c03b1bSMichael Pfeiffer case kPaperSource:
12052a38012Sejakowatz return sizeof(papersources) / sizeof(papersources[0]);
121d2c03b1bSMichael Pfeiffer case kResolution:
12252a38012Sejakowatz return sizeof(resolutions) / sizeof(resolutions[0]);
123d2c03b1bSMichael Pfeiffer case kColor:
1247f226d99SMichael Pfeiffer return sizeof(colors) / sizeof(colors[0]);
12552a38012Sejakowatz default:
12652a38012Sejakowatz return 0;
12752a38012Sejakowatz }
12852a38012Sejakowatz }
12952a38012Sejakowatz
13024874466SWim van der Meer
13124874466SWim van der Meer const
GetCaps(CapID capid) const1324410ee12SMichael Pfeiffer BaseCap **Lips3Cap::GetCaps(CapID capid) const
13352a38012Sejakowatz {
13452a38012Sejakowatz switch (capid) {
135d2c03b1bSMichael Pfeiffer case kPaper:
13652a38012Sejakowatz return (const BaseCap **)papers;
137d2c03b1bSMichael Pfeiffer case kPaperSource:
13852a38012Sejakowatz return (const BaseCap **)papersources;
139d2c03b1bSMichael Pfeiffer case kResolution:
14052a38012Sejakowatz return (const BaseCap **)resolutions;
141d2c03b1bSMichael Pfeiffer case kColor:
1427f226d99SMichael Pfeiffer return (const BaseCap **)colors;
14352a38012Sejakowatz default:
14452a38012Sejakowatz return NULL;
14552a38012Sejakowatz }
14652a38012Sejakowatz }
14752a38012Sejakowatz
14824874466SWim van der Meer
14924874466SWim van der Meer bool
Supports(CapID capid) const150*331c9220SMichael Pfeiffer Lips3Cap::Supports(CapID capid) const
15152a38012Sejakowatz {
15252a38012Sejakowatz switch (capid) {
153d2c03b1bSMichael Pfeiffer case kPaper:
154d2c03b1bSMichael Pfeiffer case kPaperSource:
155d2c03b1bSMichael Pfeiffer case kResolution:
156d2c03b1bSMichael Pfeiffer case kColor:
157edd4c1eeSMichael Pfeiffer case kCopyCommand:
158308f0e19SMichael Pfeiffer case kHalftone:
15952a38012Sejakowatz return true;
16052a38012Sejakowatz default:
16152a38012Sejakowatz return false;
16252a38012Sejakowatz }
16352a38012Sejakowatz }
164