xref: /haiku/headers/libs/print/libprint/PrintProcess.h (revision c57b500a1534e9521db4b6a88b4bb411dbdafb5d)
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 
17 using namespace std;
18 
19 
20 class BFile;
21 class BPicture;
22 
23 class PictureData {
24 public:
25 	PictureData(BFile *file);
26 	~PictureData();
27 	BPoint   point;
28 	BRect    rect;
29 	BPicture *picture;
30 };
31 
32 class PageData {
33 public:
34 	PageData();
35 	PageData(BFile *file, bool reverse);
36 	bool startEnum();
37 	bool enumObject(PictureData **);
38 
39 private:
40 	BFile *fFile;
41 	bool  fReverse;
42 	int32 fPictureCount;
43 	int32 fRest;
44 	off_t fOffset;
45 	bool  fHollow;
46 };
47 
48 typedef list<PageData *>	PageDataList;
49 
50 class SpoolData {
51 public:
52 	SpoolData(BFile *file, int32 page_count, int32 nup, bool reverse);
53 	~SpoolData();
54 	bool startEnum();
55 	bool enumObject(PageData **);
56 
57 private:
58 	PageDataList fPages;
59 	PageDataList::iterator fIt;
60 };
61 
62 #endif	/* __PRINTPROCESS_H */
63