#include "Lips4Cap.h"
#define TO72DPI(a) (a * 72.0f / 600.0f)
const PaperCap a3(
"A3",
false,
JobData::kA3,
BRect(0.0f, 0.0f, TO72DPI(7014.0f), TO72DPI(9920.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f)));
const PaperCap a4(
"A4",
true,
JobData::kA4,
BRect(0.0f, 0.0f, TO72DPI(4960.0f), TO72DPI(7014.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f)));
const PaperCap a5(
"A5",
false,
JobData::kA5,
BRect(0.0f, 0.0f, TO72DPI(3506.0f), TO72DPI(4960.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f)));
const PaperCap japanese_postcard(
"Japanese Postcard",
false,
JobData::kJapanesePostcard,
BRect(0.0f, 0.0f, TO72DPI(2362.0f), TO72DPI(3506.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f)));
const PaperCap b4(
"B4",
false,
JobData::kB4,
BRect(0.0f, 0.0f, TO72DPI(6070.0f), TO72DPI(8598.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f)));
const PaperCap b5(
"B5",
false,
JobData::kB5,
BRect(0.0f, 0.0f, TO72DPI(4298.0f), TO72DPI(6070.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f)));
const PaperCap letter(
"Letter",
false,
JobData::kLetter,
BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(6600.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f)));
const PaperCap legal(
"Legal",
false,
JobData::kLegal,
BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(8400.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f)));
const PaperCap tabloid(
"Tabloid",
false,
JobData::kTabloid,
BRect(0.0f, 0.0f, TO72DPI(6600.0), TO72DPI(10200.0)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6480.0), TO72DPI(10080.0)));
const PaperCap executive(
"Executive",
false,
JobData::kExecutive,
BRect(0.0f, 0.0f, TO72DPI(4350.0f), TO72DPI(6300.0f)),
BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4230.0f), TO72DPI(6180.0f)));
const PaperCap japanese_envelope_you4(
"Japanese Envelope You#4",
false,
JobData::kJEnvYou4,
BRect(0.0f, 0.0f, TO72DPI(2480.0f), TO72DPI(5550.0f)),
BRect(TO72DPI(236.0f), TO72DPI(236.0f), TO72DPI(2244.0f), TO72DPI(5314.0f)));
const PaperSourceCap autobin("Auto", true, JobData::kAuto);
const PaperSourceCap manual("Manual", false, JobData::kManual);
const PaperSourceCap upper("Upper", false, JobData::kUpper);
const PaperSourceCap middle("Middle", false, JobData::kMiddle);
const PaperSourceCap lower("Lower", false, JobData::kLower);
const ResolutionCap dpi1200("1200dpi", false, 0, 1200, 1200);
const ResolutionCap dpi600("600dpi", true, 1, 600, 600);
const ResolutionCap dpi300("300dpi", false, 2, 300, 300);
const PrintStyleCap simplex("Simplex", true, JobData::kSimplex);
const PrintStyleCap duplex("Duplex", false, JobData::kDuplex);
const PrintStyleCap booklet("Booklet", false, JobData::kBooklet);
const BindingLocationCap longedge1("Long Edge (left)", true,
JobData::kLongEdgeLeft);
const BindingLocationCap longedge2("Long Edge (right)", false,
JobData::kLongEdgeRight);
const BindingLocationCap shortedge1("Short Edge (top)", false,
JobData::kShortEdgeTop);
const BindingLocationCap shortedge2("Short Edge (bottom)", false,
JobData::kShortEdgeBottom);
const PaperCap* papers[] = {
&a4,
&a3,
&a5,
&b4,
&b5,
&letter,
&legal,
&tabloid,
&executive,
&japanese_postcard,
&japanese_envelope_you4
};
const PaperSourceCap* papersources[] = {
&autobin,
&manual,
&upper,
&middle,
&lower
};
const ResolutionCap* resolutions[] = {
&dpi1200,
&dpi600,
&dpi300
};
const PrintStyleCap* printstyles[] = {
&simplex,
&duplex,
&booklet
};
const BindingLocationCap *bindinglocations[] = {
&longedge1,
&longedge2,
&shortedge1,
&shortedge2
};
const ColorCap color("Color", false, JobData::kColor);
const ColorCap monochrome("Shades of Gray", true, JobData::kMonochrome);
const ColorCap* colors[] = {
&color,
&monochrome
};
int
Lips4Cap::CountCap(CapID capid) const
{
switch (capid) {
case kPaper:
return sizeof(papers) / sizeof(papers[0]);
case kPaperSource:
return sizeof(papersources) / sizeof(papersources[0]);
case kResolution:
return sizeof(resolutions) / sizeof(resolutions[0]);
case kPrintStyle:
return sizeof(printstyles) / sizeof(printstyles[0]);
case kBindingLocation:
return sizeof(bindinglocations) / sizeof(bindinglocations[0]);
case kColor:
return sizeof(colors) / sizeof(colors[0]);
default:
return 0;
}
}
const BaseCap**
Lips4Cap::GetCaps(CapID capid) const
{
switch (capid) {
case kPaper:
return (const BaseCap **)papers;
case kPaperSource:
return (const BaseCap **)papersources;
case kResolution:
return (const BaseCap **)resolutions;
case kPrintStyle:
return (const BaseCap **)printstyles;
case kBindingLocation:
return (const BaseCap **)bindinglocations;
case kColor:
return (const BaseCap **)colors;
default:
return NULL;
}
}
bool
Lips4Cap::Supports(CapID capid) const
{
switch (capid) {
case kPaper:
case kPaperSource:
case kResolution:
case kPrintStyle:
case kBindingLocation:
case kColor:
case kCopyCommand:
case kHalftone:
return true;
default:
return false;
}
}