152a38012Sejakowatz /* 252a38012Sejakowatz * Lips3Cap.cpp 352a38012Sejakowatz * Copyright 1999-2000 Y.Takagi. All Rights Reserved. 452a38012Sejakowatz */ 552a38012Sejakowatz 652a38012Sejakowatz #include "PrinterData.h" 752a38012Sejakowatz #include "Lips3Cap.h" 852a38012Sejakowatz 952a38012Sejakowatz #define TO72DPI(a) (a * 72.0f / 600.0f) 1052a38012Sejakowatz 1152a38012Sejakowatz const PaperCap a3( 1252a38012Sejakowatz "A3", 1352a38012Sejakowatz false, 14*d2c03b1bSMichael Pfeiffer JobData::kA3, 1552a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(7014.0f), TO72DPI(9920.0f)), 1652a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f))); 1752a38012Sejakowatz 1852a38012Sejakowatz const PaperCap a4( 1952a38012Sejakowatz "A4", 2052a38012Sejakowatz true, 21*d2c03b1bSMichael Pfeiffer JobData::kA4, 2252a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4960.0f), TO72DPI(7014.0f)), 2352a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f))); 2452a38012Sejakowatz 2552a38012Sejakowatz const PaperCap a5( 2652a38012Sejakowatz "A5", 2752a38012Sejakowatz false, 28*d2c03b1bSMichael Pfeiffer JobData::kA5, 2952a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(3506.0f), TO72DPI(4960.0f)), 3052a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f))); 3152a38012Sejakowatz 3252a38012Sejakowatz const PaperCap japanese_postcard( 3352a38012Sejakowatz "Japanese Postcard", 3452a38012Sejakowatz false, 35*d2c03b1bSMichael Pfeiffer JobData::kJapanesePostcard, 3652a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(2362.0f), TO72DPI(3506.0f)), 3752a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f))); 3852a38012Sejakowatz 3952a38012Sejakowatz const PaperCap b4( 4052a38012Sejakowatz "B4", 4152a38012Sejakowatz false, 42*d2c03b1bSMichael Pfeiffer JobData::kB4, 4352a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(6070.0f), TO72DPI(8598.0f)), 4452a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f))); 4552a38012Sejakowatz 4652a38012Sejakowatz const PaperCap b5( 4752a38012Sejakowatz "B5", 4852a38012Sejakowatz false, 49*d2c03b1bSMichael Pfeiffer JobData::kB5, 5052a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4298.0f), TO72DPI(6070.0f)), 5152a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f))); 5252a38012Sejakowatz 5352a38012Sejakowatz const PaperCap letter( 5452a38012Sejakowatz "Letter", 5552a38012Sejakowatz false, 56*d2c03b1bSMichael Pfeiffer JobData::kLetter, 5752a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(6600.0f)), 5852a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f))); 5952a38012Sejakowatz 6052a38012Sejakowatz const PaperCap legal( 6152a38012Sejakowatz "Legal", 6252a38012Sejakowatz false, 63*d2c03b1bSMichael Pfeiffer JobData::kLegal, 6452a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(8400.0f)), 6552a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f))); 6652a38012Sejakowatz 67*d2c03b1bSMichael Pfeiffer const PaperSourceCap autobin("Auto", true, JobData::kAuto); 68*d2c03b1bSMichael Pfeiffer const PaperSourceCap manual("Manual", false, JobData::kManual); 69*d2c03b1bSMichael Pfeiffer const PaperSourceCap upper("Upper", false, JobData::kUpper); 70*d2c03b1bSMichael Pfeiffer const PaperSourceCap lower("Lower", false, JobData::kLower); 7152a38012Sejakowatz 7252a38012Sejakowatz const ResolutionCap dpi300("300dpi", true, 300, 300); 7352a38012Sejakowatz 7452a38012Sejakowatz const PaperCap *papers[] = { 7552a38012Sejakowatz &a4, 7652a38012Sejakowatz &a3, 7752a38012Sejakowatz &a5, 7852a38012Sejakowatz &b4, 7952a38012Sejakowatz &b5, 8052a38012Sejakowatz &letter, 8152a38012Sejakowatz &legal 8252a38012Sejakowatz }; 8352a38012Sejakowatz 8452a38012Sejakowatz const PaperSourceCap *papersources[] = { 8552a38012Sejakowatz &autobin, 8652a38012Sejakowatz &manual, 8752a38012Sejakowatz &upper, 8852a38012Sejakowatz &lower 8952a38012Sejakowatz }; 9052a38012Sejakowatz 9152a38012Sejakowatz const ResolutionCap *resolutions[] = { 9252a38012Sejakowatz &dpi300 9352a38012Sejakowatz }; 9452a38012Sejakowatz 95*d2c03b1bSMichael Pfeiffer const ColorCap color("Color", false, JobData::kColor); 96*d2c03b1bSMichael Pfeiffer const ColorCap monochrome("Monochrome", true, JobData::kMonochrome); 977f226d99SMichael Pfeiffer 987f226d99SMichael Pfeiffer const ColorCap *colors[] = { 997f226d99SMichael Pfeiffer &color, 1007f226d99SMichael Pfeiffer &monochrome 1017f226d99SMichael Pfeiffer }; 1027f226d99SMichael Pfeiffer 10352a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData *printer_data) 10452a38012Sejakowatz : PrinterCap(printer_data) 10552a38012Sejakowatz { 10652a38012Sejakowatz } 10752a38012Sejakowatz 108*d2c03b1bSMichael Pfeiffer int Lips3Cap::countCap(CapID capid) const 10952a38012Sejakowatz { 11052a38012Sejakowatz switch (capid) { 111*d2c03b1bSMichael Pfeiffer case kPaper: 11252a38012Sejakowatz return sizeof(papers) / sizeof(papers[0]); 113*d2c03b1bSMichael Pfeiffer case kPaperSource: 11452a38012Sejakowatz return sizeof(papersources) / sizeof(papersources[0]); 115*d2c03b1bSMichael Pfeiffer case kResolution: 11652a38012Sejakowatz return sizeof(resolutions) / sizeof(resolutions[0]); 117*d2c03b1bSMichael Pfeiffer case kColor: 1187f226d99SMichael Pfeiffer return sizeof(colors) / sizeof(colors[0]); 11952a38012Sejakowatz default: 12052a38012Sejakowatz return 0; 12152a38012Sejakowatz } 12252a38012Sejakowatz } 12352a38012Sejakowatz 124*d2c03b1bSMichael Pfeiffer const BaseCap **Lips3Cap::enumCap(CapID capid) const 12552a38012Sejakowatz { 12652a38012Sejakowatz switch (capid) { 127*d2c03b1bSMichael Pfeiffer case kPaper: 12852a38012Sejakowatz return (const BaseCap **)papers; 129*d2c03b1bSMichael Pfeiffer case kPaperSource: 13052a38012Sejakowatz return (const BaseCap **)papersources; 131*d2c03b1bSMichael Pfeiffer case kResolution: 13252a38012Sejakowatz return (const BaseCap **)resolutions; 133*d2c03b1bSMichael Pfeiffer case kColor: 1347f226d99SMichael Pfeiffer return (const BaseCap **)colors; 13552a38012Sejakowatz default: 13652a38012Sejakowatz return NULL; 13752a38012Sejakowatz } 13852a38012Sejakowatz } 13952a38012Sejakowatz 140*d2c03b1bSMichael Pfeiffer bool Lips3Cap::isSupport(CapID capid) const 14152a38012Sejakowatz { 14252a38012Sejakowatz switch (capid) { 143*d2c03b1bSMichael Pfeiffer case kPaper: 144*d2c03b1bSMichael Pfeiffer case kPaperSource: 145*d2c03b1bSMichael Pfeiffer case kResolution: 146*d2c03b1bSMichael Pfeiffer case kColor: 14752a38012Sejakowatz return true; 14852a38012Sejakowatz default: 14952a38012Sejakowatz return false; 15052a38012Sejakowatz } 15152a38012Sejakowatz } 152