haiku/headers/libs/print/libprint/PrinterDriver.h
Karsten Heimrich 12fd6cc2e7 * move libprint sources into libs, as it is a 3rdparty lib
* move libprint headers into libs headers folder accordingly
* merge all shared folders sources into kits print, we might build later on a
  real print kit, propably also to access cups from an nicely API, atm static
* move all shared headers into private print, also pr_server.h from interface
* adjust build to work with the changed folder layout



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-22 20:30:14 +00:00

58 lines
1.5 KiB
C++

#ifndef _PRINTER_DRIVER_H
#define _PRINTER_DRIVER_H
#include <SupportDefs.h>
class BFile;
class BMessage;
class BNode;
class PrinterCap;
class PrinterData;
class GraphicsDriver;
#define kAttrPageSettings "libprint/page_settings"
#define kAttrJobSettings "libprint/job_settings"
class PrinterDriver {
public:
PrinterDriver(BNode* spoolFolder);
virtual ~PrinterDriver();
virtual const char* GetSignature() const = 0;
virtual const char* GetDriverName() const = 0;
virtual const char* GetVersion() const = 0;
virtual const char* GetCopyright() const = 0;
virtual PrinterCap* InstantiatePrinterCap(PrinterData* printerData) = 0;
virtual GraphicsDriver* InstantiateGraphicsDriver(BMessage* settings, PrinterData* printerData, PrinterCap* printerCap) = 0;
void InitPrinterDataAndCap();
virtual void About();
virtual char* AddPrinter(char* printerName);
BMessage* ConfigPage(BMessage* settings);
BMessage* ConfigJob(BMessage* settings);
BMessage* TakeJob(BFile* printJob, BMessage* settings);
protected:
PrinterData* GetPrinterData() { return fPrinterData; }
PrinterCap* GetPrinterCap() { return fPrinterCap; }
private:
bool ReadSettings(const char* attrName, BMessage* settings);
void WriteSettings(const char* attrName, BMessage* settings);
void MergeWithPreviousSettings(const char* attrName, BMessage* settings);
BNode* fSpoolFolder;
PrinterData* fPrinterData;
PrinterCap* fPrinterCap;
GraphicsDriver* fGraphicsDriver;
};
PrinterDriver* instantiate_printer_driver(BNode* printerFolder = NULL);
#endif // _PRINTER_DRIVER_H