1/*
2 * GP.h
3 * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
4 */
5#ifndef __GP_H
6#define __GP_H
7
8
9#include "GPBinding.h"
10#include "GPCapabilities.h"
11#include "GraphicsDriver.h"
12#include "OutputStream.h"
13
14class Halftone;
15
16
17class GPDriver : public GraphicsDriver, public OutputStream
18{
19public:
20				GPDriver(BMessage* msg, PrinterData* printer_data,
21					const PrinterCap* printer_cap);
22
23	void		Write(const void *buffer, size_t size)
24					/* throw(TransportException) */;
25
26protected:
27	bool		StartDocument();
28	void		SetParameter(BString& parameter, PrinterCap::CapID category,
29					int value);
30	void		SetDriverSpecificSettings();
31	void		AddDriverSpecificSetting(PrinterCap::CapID category,
32					const char* key);
33	void		AddDriverSpecificBooleanSetting(PrinterCap::CapID category,
34					const char* key);
35	void		AddDriverSpecificIntSetting(PrinterCap::CapID category,
36					const char* key);
37	void		AddDriverSpecificDimensionSetting(PrinterCap::CapID category,
38					const char* key);
39	void		AddDriverSpecificDoubleSetting(PrinterCap::CapID category,
40					const char* key);
41	bool		StartPage(int page);
42	bool		NextBand(BBitmap* bitmap, BPoint* offset);
43	bool		EndPage(int page);
44	bool		EndDocument(bool success);
45	void		ShowError(const char* message);
46
47private:
48	GPBinding		fBinding;
49	GPJobConfiguration	fConfiguration;
50};
51
52#endif // __GP_H
53