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 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 114*4410ee12SMichael 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 132*4410ee12SMichael 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 150*4410ee12SMichael Pfeiffer Lips3Cap::IsSupport(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