27 #include <QApplication>
34 #include "scribusapi.h"
36 #include "commonstrings.h"
38 #include "fpointarray.h"
39 #include "pageitempointer.h"
59 bool m_MouseButtonPressed;
61 bool operItemResizing;
62 bool operItemSelecting;
63 bool operTextSelecting;
64 QPolygon redrawPolygon;
65 QList<PageItemPointer> linkedFramesToShow;
80 class SCRIBUS_API
Canvas :
public QWidget
85 static const uint moveWithFullOutlinesThreshold = 21;
86 static const uint moveWithBoxesOnlyThreshold = 41;
137 RENDER_SELECTION_SEPARATE,
138 RENDER_SELECTION_BUFFERED,
142 void setRenderMode(RenderMode m);
147 void resetRenderMode() { m_renderMode = RENDER_NORMAL; clearBuffers(); }
148 void setRenderModeFillBuffer() { m_renderMode = RENDER_BUFFERED; }
149 void setRenderModeUseBuffer(
bool use) { m_renderMode = (use ? RENDER_BUFFERED : RENDER_NORMAL) ; }
151 double scale()
const {
return m_viewMode.scale; }
152 void setScale(
double scale);
153 QPoint canvasToLocal(
FPoint p)
const;
154 QPoint canvasToGlobal(
FPoint p)
const;
155 QPoint canvasToLocal(QPointF p)
const;
156 QPoint canvasToGlobal(QPointF p)
const;
157 QRect canvasToLocal(QRectF p)
const;
158 QRect canvasToGlobal(QRectF p)
const;
159 FPoint localToCanvas(QPoint p)
const;
161 FPoint globalToCanvas(QPoint p)
const;
163 QRectF globalToCanvas(QRect p)
const;
165 bool hitsCanvasPoint(QPoint globalPoint,
FPoint canvasPoint)
const;
166 bool hitsCanvasPoint(QPoint globalPoint, QPointF canvasPoint)
const;
167 bool hitsCanvasPoint(
FPoint globalPoint, QPointF canvasPoint)
const;
168 QRect exposedRect()
const;
169 bool cursorOverTextFrameControl(QPoint globalPos,
PageItem* frame);
170 bool cursorOverFrameControl(QPoint globalPos, QRectF targetRect,
PageItem* frame);
172 FrameHandle frameHitTest(QPointF canvasPoint,
PageItem* frame)
const;
173 FrameHandle frameHitTest(QPointF point, QRectF frame)
const;
182 PageItem* itemUnderCursor(QPoint globalPos,
PageItem* itemAbove=NULL,
bool allowInGroup=
false,
bool allowMasterItems=
false)
const;
186 const QPolygon& redrawPolygon()
const {
return m_viewMode.redrawPolygon; }
187 QPolygon& newRedrawPolygon()
189 m_viewMode.redrawPolygon.clear();
190 return m_viewMode.redrawPolygon;
192 void setForcedRedraw(
bool on) { m_viewMode.forceRedraw = on; }
193 void setPreviewMode(
bool on) { m_viewMode.previewMode = on; }
194 bool isPreviewMode()
const {
return m_viewMode.previewMode || m_viewMode.viewAsPreview; }
195 bool usePreviewVisual()
const {
return m_viewMode.viewAsPreview && m_viewMode.previewVisual != 0; }
196 int previewVisual()
const {
return m_viewMode.previewVisual; }
197 void setPreviewVisual(
int mode);
201 void DrawPageItems(
ScPainter *painter,
ScLayer& layer, QRect clip,
bool notesFramesPass);
202 virtual void paintEvent ( QPaintEvent * p );
203 void displayXYHUD(QPoint m);
204 void displayCorrectedXYHUD(QPoint m,
double x,
double y);
205 void displayCorrectedSingleHUD(QPoint m,
double val,
bool isX);
206 void displayXYHUD(QPoint m,
double x,
double y);
207 void displaySizeHUD(QPoint m,
double x,
double y,
bool isLine =
false);
208 void displayRotHUD(QPoint m,
double rot);
209 void displayRealRotHUD(QPoint m,
double rot);
215 void displayDoubleHUD(QPoint point,
const QString& label,
double value);
217 void setupEditHRuler(
PageItem * item,
bool forceAndReset =
false);
221 void DrawPageBorder(
ScPainter *p, QRectF clip,
bool master =
false);
223 void DrawPageMargins(
ScPainter *p, QRectF clip,
bool master =
false);
225 void DrawPageBaselineGrid(
ScPainter *p, QRectF clip,
bool master =
false);
227 void DrawPageGrid(
ScPainter *p, QRectF clip,
bool master =
false);
229 void DrawPageGuides(
ScPainter *p, QRectF clip,
bool master =
false);
231 void DrawPageIndicator(
ScPainter *p, QRectF clip,
bool master =
false);
233 void PaintSizeRect(QRect neu);
234 void PaintSizeRect(QPolygon neu);
235 void Transform(
PageItem *currItem, QPainter *p);
236 void Transform(
PageItem *currItem, QTransform& m);
237 void TransformM(
PageItem *currItem, QPainter *p);
238 void getGroupRectScreen(
double *x,
double *y,
double *w,
double *h);
248 void fillBuffer(QPaintDevice*
buffer, QPoint bufferOrigin, QRect clipRect);
249 void drawContents(QPainter *p,
int clipx,
int clipy,
int clipw,
int cliph);
250 void drawBackgroundMasterpage(
ScPainter* painter,
int clipx,
int clipy,
int clipw,
int cliph);
251 void drawBackgroundPageOutlines(
ScPainter* painter,
int clipx,
int clipy,
int clipw,
int cliph);
254 void drawControlsMovingItemsRect(QPainter* pp);
255 void drawControlsBezierCurve(QPainter* pp,
PageItem* currItem);
256 void drawControlsMeasurementLine(QPainter* pp);
257 void drawControlsDrawLine(QPainter* pp);
258 void drawControlsFreehandLine(QPainter* pp);
267 RenderMode m_renderMode;
270 QPixmap m_selectionBuffer;
271 QRect m_selectionRect;
272 QPoint m_oldMinCanvasCoordinate;
Definition: canvasmode_copyproperties.h:29
Definition: canvasmode_editmeshpatch.h:42
Definition: canvasmode_edit.h:35
Definition: canvasmode_objimport.h:35
Definition: canvasmode_drawfreehand.h:32
Definition: canvasmode_panning.h:34
Definition: canvasmode_framelinks.h:38
Definition: canvasmode_editmeshgradient.h:41
Definition: canvasmode_editgradient.h:35
std::ostream & operator<<(std::ostream &out_file, const Geom::Matrix &m)
Definition: matrix.h:109
A point with floating point precision.
Definition: fpoint.h:43
bool drawFramelinksWithContents
Definition: canvas.h:70
the Document Class
Definition: scribusdoc.h:90
virtual void drawControls(QPainter *p)
Definition: canvasmode_drawcalligraphic.cpp:56
Definition: scpainter.h:33
Definition: canvasmode_drawcalligraphic.h:32
Definition: canvasmode.h:72
Definition: canvasmode_editarc.h:40
Definition: canvasmode_editspiral.h:41
Definition: canvasmode_magnifier.h:37
Definition: canvasmode_eyedropper.h:27
Definition: canvasmode_imageimport.h:32
Definition: canvasmode_normal.h:37
Binary buffer.
Definition: pdbim.h:93
bool drawSelectedItemsWithControls
Definition: canvas.h:68
Definition: canvasmode_edittable.h:34
Definition: canvasmode_editweldpoint.h:41
Definition: pageitem.h:92
Definition: fpointarray.h:42
Definition: canvasmode_rotate.h:35
Definition: scribusview.h:87
Definition: canvasmode_nodeedit.h:32
Definition: canvasmode_editpolygon.h:41