1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
#ifndef SCPAGEOUTPUT_H
#define SCPAGEOUTPUT_H
#include <QRect>
#include <QRectF>
#include "scribusapi.h"
#include "sccolor.h"
#include "scpainterexbase.h"
class ScribusDoc;
class Page;
class CharStyle;
struct GlyphLayout;
class PageItem;
class PageItem_ImageFrame;
class PageItem_Line;
class PageItem_PathText;
class PageItem_Polygon;
class PageItem_PolyLine;
class PageItem_TextFrame;
class SCRIBUS_API MarksOptions
{
public:
MarksOptions(void);
MarksOptions(struct PrintOptions& opt);
double markOffset;
double BleedTop;
double BleedLeft;
double BleedRight;
double BleedBottom;
bool cropMarks;
bool bleedMarks;
bool registrationMarks;
bool colorMarks;
bool docInfoMarks;
};
class SCRIBUS_API ScPageOutput
{
protected:
ScribusDoc* m_doc;
bool m_reloadImages;
int m_imageRes;
bool m_useProfiles;
MarksOptions m_marksOptions;
virtual void fillPath( PageItem* item, ScPainterExBase* painter, const QRect& clip );
virtual void strokePath( PageItem* item, ScPainterExBase* painter, const QRect& clip );
virtual void drawMasterItems( ScPainterExBase *painter, Page *page, const QRect& clip);
virtual void drawPageItems( ScPainterExBase *painter, Page *page, const QRect& clip);
virtual void drawItem( PageItem* item, ScPainterExBase* painter, const QRect& clip );
virtual void drawItem_Pre( PageItem* item, ScPainterExBase* painter );
virtual void drawItem_Post( PageItem* item, ScPainterExBase* painter );
virtual void drawGlyphs(PageItem* item, ScPainterExBase *painter, const CharStyle& style, GlyphLayout& glyphs, const QRect& clip);
virtual void drawItem_Embedded( PageItem* item, ScPainterExBase *p, const QRect& clip, const CharStyle& style, PageItem* cembedded);
virtual void drawPattern( PageItem* item, ScPainterExBase* painter, const QRect& clip);
virtual void drawItem_ImageFrame( PageItem_ImageFrame* item, ScPainterExBase* painter, const QRect& clip );
virtual void drawItem_Line( PageItem_Line* item, ScPainterExBase* painter, const QRect& clip);
virtual void drawItem_PathText( PageItem_PathText* item, ScPainterExBase* painter, const QRect& clip );
virtual void drawItem_Polygon ( PageItem_Polygon* item , ScPainterExBase* painter, const QRect& clip );
virtual void drawItem_PolyLine( PageItem_PolyLine* item, ScPainterExBase* painte, const QRect& clip );
virtual void drawItem_TextFrame( PageItem_TextFrame* item, ScPainterExBase* painter, const QRect& clip );
virtual void drawArrow(ScPainterExBase* painter, PageItem* item, QMatrix &arrowTrans, int arrowIndex);
virtual void drawMarks( Page* page, ScPainterExBase* painter, const MarksOptions& options );
virtual void drawBoxMarks( ScPainterExBase* painter, const QRectF& box, const QRectF& bleedBox, double offset );
virtual void drawRegistrationCross( ScPainterExBase* painter );
ScImage::RequestType translateImageModeToRequest( ScPainterExBase::ImageMode mode);
public:
virtual ~ScPageOutput() { }
ScPageOutput(ScribusDoc* doc, bool reloadImages = false, int resolution = 72, bool useProfiles = false);
virtual void begin(void) {};
virtual void drawPage( Page* page ) {};
virtual void drawPage( Page* page, ScPainterExBase* painter);
virtual void end(void) {};
void setMarksOptions(const MarksOptions& opt) { m_marksOptions = opt; }
};
#endif
|