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, 1452a38012Sejakowatz JobData::A3, 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, 2152a38012Sejakowatz JobData::A4, 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, 2852a38012Sejakowatz JobData::A5, 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, 3552a38012Sejakowatz JobData::JAPANESE_POSTCARD, 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, 4252a38012Sejakowatz JobData::B4, 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, 4952a38012Sejakowatz JobData::B5, 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, 5652a38012Sejakowatz JobData::LETTER, 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, 6352a38012Sejakowatz JobData::LEGAL, 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 6752a38012Sejakowatz const PaperSourceCap autobin("Auto", true, JobData::AUTO); 6852a38012Sejakowatz const PaperSourceCap manual("Manual", false, JobData::MANUAL); 6952a38012Sejakowatz const PaperSourceCap upper("Upper", false, JobData::UPPER); 7052a38012Sejakowatz const PaperSourceCap lower("Lower", false, JobData::LOWER); 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*7f226d99SMichael Pfeiffer const ColorCap color("Color", false, JobData::kCOLOR); 96*7f226d99SMichael Pfeiffer const ColorCap monochrome("Monochrome", true, JobData::kMONOCHROME); 97*7f226d99SMichael Pfeiffer 98*7f226d99SMichael Pfeiffer const ColorCap *colors[] = { 99*7f226d99SMichael Pfeiffer &color, 100*7f226d99SMichael Pfeiffer &monochrome 101*7f226d99SMichael Pfeiffer }; 102*7f226d99SMichael Pfeiffer 10352a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData *printer_data) 10452a38012Sejakowatz : PrinterCap(printer_data) 10552a38012Sejakowatz { 10652a38012Sejakowatz } 10752a38012Sejakowatz 10852a38012Sejakowatz int Lips3Cap::countCap(CAPID capid) const 10952a38012Sejakowatz { 11052a38012Sejakowatz switch (capid) { 11152a38012Sejakowatz case PAPER: 11252a38012Sejakowatz return sizeof(papers) / sizeof(papers[0]); 11352a38012Sejakowatz case PAPERSOURCE: 11452a38012Sejakowatz return sizeof(papersources) / sizeof(papersources[0]); 11552a38012Sejakowatz case RESOLUTION: 11652a38012Sejakowatz return sizeof(resolutions) / sizeof(resolutions[0]); 117*7f226d99SMichael Pfeiffer case COLOR: 118*7f226d99SMichael Pfeiffer return sizeof(colors) / sizeof(colors[0]); 11952a38012Sejakowatz default: 12052a38012Sejakowatz return 0; 12152a38012Sejakowatz } 12252a38012Sejakowatz } 12352a38012Sejakowatz 12452a38012Sejakowatz const BaseCap **Lips3Cap::enumCap(CAPID capid) const 12552a38012Sejakowatz { 12652a38012Sejakowatz switch (capid) { 12752a38012Sejakowatz case PAPER: 12852a38012Sejakowatz return (const BaseCap **)papers; 12952a38012Sejakowatz case PAPERSOURCE: 13052a38012Sejakowatz return (const BaseCap **)papersources; 13152a38012Sejakowatz case RESOLUTION: 13252a38012Sejakowatz return (const BaseCap **)resolutions; 133*7f226d99SMichael Pfeiffer case COLOR: 134*7f226d99SMichael Pfeiffer return (const BaseCap **)colors; 13552a38012Sejakowatz default: 13652a38012Sejakowatz return NULL; 13752a38012Sejakowatz } 13852a38012Sejakowatz } 13952a38012Sejakowatz 14052a38012Sejakowatz bool Lips3Cap::isSupport(CAPID capid) const 14152a38012Sejakowatz { 14252a38012Sejakowatz switch (capid) { 14352a38012Sejakowatz case PAPER: 14452a38012Sejakowatz case PAPERSOURCE: 14552a38012Sejakowatz case RESOLUTION: 146*7f226d99SMichael Pfeiffer case COLOR: 14752a38012Sejakowatz return true; 14852a38012Sejakowatz default: 14952a38012Sejakowatz return false; 15052a38012Sejakowatz } 15152a38012Sejakowatz } 152