xref: /haiku/src/add-ons/print/drivers/canon_lips/lips3/Lips3Cap.cpp (revision e23b0decade05a098964fd90b3c1aa472ca3efd9)
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,
14d2c03b1bSMichael 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,
21d2c03b1bSMichael 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,
28d2c03b1bSMichael 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,
35d2c03b1bSMichael 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,
42d2c03b1bSMichael 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,
49d2c03b1bSMichael 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,
56d2c03b1bSMichael 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,
63d2c03b1bSMichael 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 
67d2c03b1bSMichael Pfeiffer const PaperSourceCap autobin("Auto",  true,  JobData::kAuto);
68d2c03b1bSMichael Pfeiffer const PaperSourceCap manual("Manual", false, JobData::kManual);
69d2c03b1bSMichael Pfeiffer const PaperSourceCap upper("Upper",   false, JobData::kUpper);
70d2c03b1bSMichael 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 
95d2c03b1bSMichael Pfeiffer const ColorCap color("Color", false, JobData::kColor);
96*e23b0decSDarkWyrm const ColorCap monochrome("Shades of Gray", 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 
108d2c03b1bSMichael Pfeiffer int Lips3Cap::countCap(CapID capid) const
10952a38012Sejakowatz {
11052a38012Sejakowatz 	switch (capid) {
111d2c03b1bSMichael Pfeiffer 	case kPaper:
11252a38012Sejakowatz 		return sizeof(papers) / sizeof(papers[0]);
113d2c03b1bSMichael Pfeiffer 	case kPaperSource:
11452a38012Sejakowatz 		return sizeof(papersources) / sizeof(papersources[0]);
115d2c03b1bSMichael Pfeiffer 	case kResolution:
11652a38012Sejakowatz 		return sizeof(resolutions) / sizeof(resolutions[0]);
117d2c03b1bSMichael Pfeiffer 	case kColor:
1187f226d99SMichael Pfeiffer 		return sizeof(colors) / sizeof(colors[0]);
11952a38012Sejakowatz 	default:
12052a38012Sejakowatz 		return 0;
12152a38012Sejakowatz 	}
12252a38012Sejakowatz }
12352a38012Sejakowatz 
124d2c03b1bSMichael Pfeiffer const BaseCap **Lips3Cap::enumCap(CapID capid) const
12552a38012Sejakowatz {
12652a38012Sejakowatz 	switch (capid) {
127d2c03b1bSMichael Pfeiffer 	case kPaper:
12852a38012Sejakowatz 		return (const BaseCap **)papers;
129d2c03b1bSMichael Pfeiffer 	case kPaperSource:
13052a38012Sejakowatz 		return (const BaseCap **)papersources;
131d2c03b1bSMichael Pfeiffer 	case kResolution:
13252a38012Sejakowatz 		return (const BaseCap **)resolutions;
133d2c03b1bSMichael Pfeiffer 	case kColor:
1347f226d99SMichael Pfeiffer 		return (const BaseCap **)colors;
13552a38012Sejakowatz 	default:
13652a38012Sejakowatz 		return NULL;
13752a38012Sejakowatz 	}
13852a38012Sejakowatz }
13952a38012Sejakowatz 
140d2c03b1bSMichael Pfeiffer bool Lips3Cap::isSupport(CapID capid) const
14152a38012Sejakowatz {
14252a38012Sejakowatz 	switch (capid) {
143d2c03b1bSMichael Pfeiffer 	case kPaper:
144d2c03b1bSMichael Pfeiffer 	case kPaperSource:
145d2c03b1bSMichael Pfeiffer 	case kResolution:
146d2c03b1bSMichael Pfeiffer 	case kColor:
147edd4c1eeSMichael Pfeiffer 	case kCopyCommand:
14852a38012Sejakowatz 		return true;
14952a38012Sejakowatz 	default:
15052a38012Sejakowatz 		return false;
15152a38012Sejakowatz 	}
15252a38012Sejakowatz }
153