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; 24 class PageItem_ImageFrame; 25 class PageItem_Line; 26 class PageItem_PathText; 27 class PageItem_Polygon; 28 class PageItem_PolyLine; 29 class PageItem_Spiral; 30 class PageItem_RegularPolygon; 31 class PageItem_Table; 32 class PageItem_TextFrame; 33 class ScLayer; 34 class ScribusDoc; 35 36 class SCRIBUS_API MarksOptions 37 { 38 public: 39 MarksOptions(void); 40 MarksOptions(struct PrintOptions& opt); 41 double markLength; 42 double markOffset; 43 double BleedTop; 44 double BleedLeft; 45 double BleedRight; 46 double BleedBottom; 47 bool cropMarks; 48 bool bleedMarks; 49 bool registrationMarks; 50 bool colorMarks; 51 bool docInfoMarks; 52 }; 53 54 class SCRIBUS_API ScPageOutput 55 { 56 friend class ScPageOutputPainter; 57 58 public: 59 ScPageOutput(ScribusDoc* doc, bool reloadImages = false, int resolution = 72, bool useProfiles = false); ~ScPageOutput()60 virtual ~ScPageOutput() { } 61 begin(void)62 virtual void begin(void) {}; drawPage(ScPage * page)63 virtual void drawPage( ScPage* page ) {}; 64 virtual void drawPage( ScPage* page, ScPainterExBase* painter); end(void)65 virtual void end(void) {}; 66 setMarksOptions(const MarksOptions & opt)67 void setMarksOptions(const MarksOptions& opt) { m_marksOptions = opt; } 68 69 protected: 70 ScribusDoc* m_doc; 71 72 bool m_reloadImages; 73 int m_imageRes; 74 bool m_useProfiles; 75 MarksOptions m_marksOptions; 76 77 virtual void fillPath( PageItem* item, ScPainterExBase* painter, QRect clip ); 78 virtual void strokePath( PageItem* item, ScPainterExBase* painter, QRect clip ); 79 80 virtual void drawMasterItems( ScPainterExBase *painter, ScPage *page, ScLayer& layer, QRect clip); 81 virtual void drawPageItems( ScPainterExBase *painter, ScPage *page, ScLayer& layer, QRect clip); 82 83 virtual void drawItem( PageItem* item, ScPainterExBase* painter, QRect clip ); 84 virtual void drawItem_Pre( PageItem* item, ScPainterExBase* painter ); 85 virtual void drawItem_Post( PageItem* item, ScPainterExBase* painter ); 86 87 virtual void drawItem_Embedded( PageItem* item, ScPainterExBase *p, QRect clip, const CharStyle& style, PageItem* cembedded); 88 virtual void drawPattern(PageItem* item, ScPainterExBase* painter, QRect clip); 89 virtual void drawStrokePattern(PageItem* item, ScPainterExBase* painter, const QPainterPath& path); 90 91 virtual void drawItem_Arc( PageItem_Arc* item, ScPainterExBase* painter, QRect clip ); 92 virtual void drawItem_Group( PageItem_Group* item, ScPainterExBase* painter, QRect clip ); 93 virtual void drawItem_ImageFrame( PageItem_ImageFrame* item, ScPainterExBase* painter, QRect clip ); 94 virtual void drawItem_Line( PageItem_Line* item, ScPainterExBase* painter, QRect clip); 95 virtual void drawItem_Polygon ( PageItem_Polygon* item , ScPainterExBase* painter, QRect clip ); 96 virtual void drawItem_PolyLine( PageItem_PolyLine* item, ScPainterExBase* painte, QRect clip ); 97 virtual void drawItem_RegularPolygon( PageItem_RegularPolygon* item, ScPainterExBase* painte, QRect clip ); 98 virtual void drawItem_Spiral( PageItem_Spiral* item, ScPainterExBase* painter, QRect clip ); 99 virtual void drawItem_Table( PageItem_Table* item, ScPainterExBase* painter, QRect clip ); 100 virtual void drawItem_Text( PageItem* item, ScPainterExBase* painter, QRect clip ); 101 102 virtual void drawArrow(ScPainterExBase* painter, PageItem* item, QTransform &arrowTrans, int arrowIndex); 103 virtual void drawMarks( ScPage* page, ScPainterExBase* painter, const MarksOptions& options ); 104 virtual void drawBoxMarks( ScPainterExBase* painter, const QRectF& box, const QRectF& bleedBox, double offset , double markSize); 105 virtual void drawRegistrationCross( ScPainterExBase* painter ); 106 107 ScImage::RequestType translateImageModeToRequest( ScPainterExBase::ImageMode mode); 108 109 friend class CollapsedTablePainterEx; 110 }; 111 112 #endif 113