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