1/*
2* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
3*
4* Copyright 2010, Haiku. All rights reserved.
5* Distributed under the terms of the MIT License.
6*
7* Authors:
8*		Michael Pfeiffer
9*
10*/
11#ifndef GP_CAPABILITIES_H
12#define GP_CAPABILITIES_H
13
14
15#include "PrinterCap.h"
16
17#include "GPArray.h"
18
19#include <map>
20
21class GPCapabilityExtractor;
22
23class GPCapabilities : public PrinterCap {
24public:
25					GPCapabilities(const PrinterData* printer_data);
26					~GPCapabilities();
27
28	virtual	int		CountCap(CapID) const;
29	virtual	bool	Supports(CapID) const;
30	virtual	const	BaseCap **GetCaps(CapID) const;
31
32private:
33	void			InitCapabilitiesFromGutenprint();
34	const GPArray<struct BaseCap>*
35					DriverSpecificCapabilities(int32 category) const;
36
37	GPArray<struct BaseCap>	fPageSizes;
38	GPArray<struct BaseCap>	fResolutions;
39	GPArray<struct BaseCap>	fInputSlots;
40	GPArray<struct BaseCap>	fPrintingModes;
41
42	GPArray<struct BaseCap> fDriverSpecificCategories;
43
44	typedef map<int32, GPArray<struct BaseCap> > DriverSpecificCapabilitiesType;
45	DriverSpecificCapabilitiesType fDriverSpecificCapabilities;
46
47	friend class GPCapabilityExtractor;
48};
49
50
51#endif
52