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