1*52a38012Sejakowatz /* 2*52a38012Sejakowatz * Lips3Cap.cpp 3*52a38012Sejakowatz * Copyright 1999-2000 Y.Takagi. All Rights Reserved. 4*52a38012Sejakowatz */ 5*52a38012Sejakowatz 6*52a38012Sejakowatz #include "PrinterData.h" 7*52a38012Sejakowatz #include "Lips3Cap.h" 8*52a38012Sejakowatz 9*52a38012Sejakowatz #define TO72DPI(a) (a * 72.0f / 600.0f) 10*52a38012Sejakowatz 11*52a38012Sejakowatz const PaperCap a3( 12*52a38012Sejakowatz "A3", 13*52a38012Sejakowatz false, 14*52a38012Sejakowatz JobData::A3, 15*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(7014.0f), TO72DPI(9920.0f)), 16*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(6894.0f), TO72DPI(9800.0f))); 17*52a38012Sejakowatz 18*52a38012Sejakowatz const PaperCap a4( 19*52a38012Sejakowatz "A4", 20*52a38012Sejakowatz true, 21*52a38012Sejakowatz JobData::A4, 22*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4960.0f), TO72DPI(7014.0f)), 23*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4840.0f), TO72DPI(6894.0f))); 24*52a38012Sejakowatz 25*52a38012Sejakowatz const PaperCap a5( 26*52a38012Sejakowatz "A5", 27*52a38012Sejakowatz false, 28*52a38012Sejakowatz JobData::A5, 29*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(3506.0f), TO72DPI(4960.0f)), 30*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(3386.0f), TO72DPI(4840.0f))); 31*52a38012Sejakowatz 32*52a38012Sejakowatz const PaperCap japanese_postcard( 33*52a38012Sejakowatz "Japanese Postcard", 34*52a38012Sejakowatz false, 35*52a38012Sejakowatz JobData::JAPANESE_POSTCARD, 36*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(2362.0f), TO72DPI(3506.0f)), 37*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(2242.0f), TO72DPI(3386.0f))); 38*52a38012Sejakowatz 39*52a38012Sejakowatz const PaperCap b4( 40*52a38012Sejakowatz "B4", 41*52a38012Sejakowatz false, 42*52a38012Sejakowatz JobData::B4, 43*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(6070.0f), TO72DPI(8598.0f)), 44*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(5950.0f), TO72DPI(8478.0f))); 45*52a38012Sejakowatz 46*52a38012Sejakowatz const PaperCap b5( 47*52a38012Sejakowatz "B5", 48*52a38012Sejakowatz false, 49*52a38012Sejakowatz JobData::B5, 50*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(4298.0f), TO72DPI(6070.0f)), 51*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4178.0f), TO72DPI(5950.0f))); 52*52a38012Sejakowatz 53*52a38012Sejakowatz const PaperCap letter( 54*52a38012Sejakowatz "Letter", 55*52a38012Sejakowatz false, 56*52a38012Sejakowatz JobData::LETTER, 57*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(6600.0f)), 58*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(6480.0f))); 59*52a38012Sejakowatz 60*52a38012Sejakowatz const PaperCap legal( 61*52a38012Sejakowatz "Legal", 62*52a38012Sejakowatz false, 63*52a38012Sejakowatz JobData::LEGAL, 64*52a38012Sejakowatz BRect(0.0f, 0.0f, TO72DPI(5100.0f), TO72DPI(8400.0f)), 65*52a38012Sejakowatz BRect(TO72DPI(120.0f), TO72DPI(120.0f), TO72DPI(4980.0f), TO72DPI(8280.0f))); 66*52a38012Sejakowatz 67*52a38012Sejakowatz const PaperSourceCap autobin("Auto", true, JobData::AUTO); 68*52a38012Sejakowatz const PaperSourceCap manual("Manual", false, JobData::MANUAL); 69*52a38012Sejakowatz const PaperSourceCap upper("Upper", false, JobData::UPPER); 70*52a38012Sejakowatz const PaperSourceCap lower("Lower", false, JobData::LOWER); 71*52a38012Sejakowatz 72*52a38012Sejakowatz const ResolutionCap dpi300("300dpi", true, 300, 300); 73*52a38012Sejakowatz 74*52a38012Sejakowatz const PaperCap *papers[] = { 75*52a38012Sejakowatz &a4, 76*52a38012Sejakowatz &a3, 77*52a38012Sejakowatz &a5, 78*52a38012Sejakowatz &b4, 79*52a38012Sejakowatz &b5, 80*52a38012Sejakowatz &letter, 81*52a38012Sejakowatz &legal 82*52a38012Sejakowatz }; 83*52a38012Sejakowatz 84*52a38012Sejakowatz const PaperSourceCap *papersources[] = { 85*52a38012Sejakowatz &autobin, 86*52a38012Sejakowatz &manual, 87*52a38012Sejakowatz &upper, 88*52a38012Sejakowatz &lower 89*52a38012Sejakowatz }; 90*52a38012Sejakowatz 91*52a38012Sejakowatz const ResolutionCap *resolutions[] = { 92*52a38012Sejakowatz &dpi300 93*52a38012Sejakowatz }; 94*52a38012Sejakowatz 95*52a38012Sejakowatz Lips3Cap::Lips3Cap(const PrinterData *printer_data) 96*52a38012Sejakowatz : PrinterCap(printer_data) 97*52a38012Sejakowatz { 98*52a38012Sejakowatz } 99*52a38012Sejakowatz 100*52a38012Sejakowatz int Lips3Cap::countCap(CAPID capid) const 101*52a38012Sejakowatz { 102*52a38012Sejakowatz switch (capid) { 103*52a38012Sejakowatz case PAPER: 104*52a38012Sejakowatz return sizeof(papers) / sizeof(papers[0]); 105*52a38012Sejakowatz case PAPERSOURCE: 106*52a38012Sejakowatz return sizeof(papersources) / sizeof(papersources[0]); 107*52a38012Sejakowatz case RESOLUTION: 108*52a38012Sejakowatz return sizeof(resolutions) / sizeof(resolutions[0]); 109*52a38012Sejakowatz default: 110*52a38012Sejakowatz return 0; 111*52a38012Sejakowatz } 112*52a38012Sejakowatz } 113*52a38012Sejakowatz 114*52a38012Sejakowatz const BaseCap **Lips3Cap::enumCap(CAPID capid) const 115*52a38012Sejakowatz { 116*52a38012Sejakowatz switch (capid) { 117*52a38012Sejakowatz case PAPER: 118*52a38012Sejakowatz return (const BaseCap **)papers; 119*52a38012Sejakowatz case PAPERSOURCE: 120*52a38012Sejakowatz return (const BaseCap **)papersources; 121*52a38012Sejakowatz case RESOLUTION: 122*52a38012Sejakowatz return (const BaseCap **)resolutions; 123*52a38012Sejakowatz default: 124*52a38012Sejakowatz return NULL; 125*52a38012Sejakowatz } 126*52a38012Sejakowatz } 127*52a38012Sejakowatz 128*52a38012Sejakowatz bool Lips3Cap::isSupport(CAPID capid) const 129*52a38012Sejakowatz { 130*52a38012Sejakowatz switch (capid) { 131*52a38012Sejakowatz case PAPER: 132*52a38012Sejakowatz case PAPERSOURCE: 133*52a38012Sejakowatz case RESOLUTION: 134*52a38012Sejakowatz return true; 135*52a38012Sejakowatz default: 136*52a38012Sejakowatz return false; 137*52a38012Sejakowatz } 138*52a38012Sejakowatz } 139