xref: /haiku/headers/libs/print/libprint/PrintProcess.h (revision 746cac055adc6ac3308c7bc2d29040fb95689cc9)
1 /*
2  * PrintProcess.h
3  * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
4  */
5 
6 #ifndef __PRINTPROCESS_H
7 #define __PRINTPROCESS_H
8 
9 #include <vector>
10 #include <list>
11 #include <memory>
12 
13 #include <Rect.h>
14 #include <Point.h>
15 
16 #if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE))
17 using namespace std;
18 #else
19 #define std
20 #endif
21 
22 class BFile;
23 class BPicture;
24 
25 class PictureData {
26 public:
27 	PictureData(BFile *file);
28 	~PictureData();
29 	BPoint   point;
30 	BRect    rect;
31 	BPicture *picture;
32 };
33 
34 class PageData {
35 public:
36 	PageData();
37 	PageData(BFile *file, bool reverse);
38 	bool startEnum();
39 	bool enumObject(PictureData **);
40 
41 private:
42 	BFile *fFile;
43 	bool  fReverse;
44 	int   fPictureCount;
45 	int   fRest;
46 	off_t fOffset;
47 	bool  fHollow;
48 };
49 
50 typedef list<PageData *>	PageDataList;
51 
52 class SpoolData {
53 public:
54 	SpoolData(BFile *file, int page_count, int nup, bool reverse);
55 	~SpoolData();
56 	bool startEnum();
57 	bool enumObject(PageData **);
58 
59 private:
60 	PageDataList fPages;
61 	PageDataList::iterator fIt;
62 };
63 
64 #endif	/* __PRINTPROCESS_H */
65