Scribus
Open source desktop publishing at your fingertips
Canvas Class Reference
Inheritance diagram for Canvas:
Collaboration diagram for Canvas:

Public Types

enum  FrameHandle {
  OUTSIDE = -1, INSIDE = 0, NORTHWEST = 2, NORTH = 8,
  NORTHEAST = 3, EAST = 6, SOUTHEAST = 1, SOUTH = 5,
  SOUTHWEST = 4, WEST = 7
}
 
enum  RenderMode {
  RENDER_NORMAL, RENDER_BUFFERED, RENDER_SELECTION_SEPARATE, RENDER_SELECTION_BUFFERED,
  RENDER_LEGACY
}
 

Public Member Functions

 Canvas (ScribusDoc *doc, ScribusView *parent)
 
void setRenderMode (RenderMode m)
 
void clearBuffers ()
 
void resetRenderMode ()
 
void setRenderModeFillBuffer ()
 
void setRenderModeUseBuffer (bool use)
 
double scale () const
 
void setScale (double scale)
 
QPoint canvasToLocal (FPoint p) const
 
QPoint canvasToGlobal (FPoint p) const
 
QPoint canvasToLocal (QPointF p) const
 
QPoint canvasToGlobal (QPointF p) const
 
QRect canvasToLocal (QRectF p) const
 
QRect canvasToGlobal (QRectF p) const
 
FPoint localToCanvas (QPoint p) const
 
FPoint globalToCanvas (QPoint p) const
 
QRectF globalToCanvas (QRect p) const
 
bool hitsCanvasPoint (QPoint globalPoint, FPoint canvasPoint) const
 
bool hitsCanvasPoint (QPoint globalPoint, QPointF canvasPoint) const
 
bool hitsCanvasPoint (FPoint globalPoint, QPointF canvasPoint) const
 
QRect exposedRect () const
 
bool cursorOverTextFrameControl (QPoint globalPos, PageItem *frame)
 
bool cursorOverFrameControl (QPoint globalPos, QRectF targetRect, PageItem *frame)
 
FrameHandle frameHitTest (QPointF canvasPoint, PageItem *frame) const
 
FrameHandle frameHitTest (QPointF point, QRectF frame) const
 
PageItemitemUnderCursor (QPoint globalPos, PageItem *itemAbove=NULL, bool allowInGroup=false, bool allowMasterItems=false) const
 
PageItemitemInGroup (PageItem *group, QRectF mouseArea) const
 
PageItemitemUnderItem (PageItem *item, int &index) const
 
const QPolygon & redrawPolygon () const
 
QPolygon & newRedrawPolygon ()
 
void setForcedRedraw (bool on)
 
void setPreviewMode (bool on)
 
bool isPreviewMode () const
 
bool usePreviewVisual () const
 
int previewVisual () const
 
void setPreviewVisual (int mode)
 
void DrawMasterItems (ScPainter *painter, ScPage *page, ScLayer &layer, QRect clip)
 
void DrawPageItems (ScPainter *painter, ScLayer &layer, QRect clip, bool notesFramesPass)
 
virtual void paintEvent (QPaintEvent *p)
 
void displayXYHUD (QPoint m)
 
void displayCorrectedXYHUD (QPoint m, double x, double y)
 
void displayCorrectedSingleHUD (QPoint m, double val, bool isX)
 
void displayXYHUD (QPoint m, double x, double y)
 
void displaySizeHUD (QPoint m, double x, double y, bool isLine=false)
 
void displayRotHUD (QPoint m, double rot)
 
void displayRealRotHUD (QPoint m, double rot)
 
void displayDoubleHUD (QPoint point, const QString &label, double value)
 
void setupEditHRuler (PageItem *item, bool forceAndReset=false)
 

Static Public Attributes

static const uint moveWithFullOutlinesThreshold = 21
 
static const uint moveWithBoxesOnlyThreshold = 41
 

Friends

class ScribusView
 
class CanvasMode
 
class CanvasMode_CopyProperties
 
class CanvasMode_Edit
 
class CanvasMode_EditArc
 
class CanvasMode_EditGradient
 
class CanvasMode_EditMeshGradient
 
class CanvasMode_EditMeshPatch
 
class CanvasMode_EditWeldPoint
 
class CanvasMode_EditPolygon
 
class CanvasMode_EditSpiral
 
class CanvasMode_EditTable
 
class CanvasMode_EyeDropper
 
class CanvasMode_FrameLinks
 
class CanvasMode_ImageImport
 
class CanvasMode_Magnifier
 
class CanvasMode_NodeEdit
 
class CanvasMode_ObjImport
 
class CanvasMode_Panning
 
class CanvasMode_Normal
 
class CanvasMode_Rotate
 
class FreehandMode
 
class CalligraphicMode
 

Member Function Documentation

void Canvas::displayDoubleHUD ( QPoint  point,
const QString &  label,
double  value 
)

Displays a tooltip of the format {label}: {N} {unit} where N is value converted to the current document unit and unit the current document unit. The tooltip will be displayed nearby the global point point.

void Canvas::DrawMasterItems ( ScPainter painter,
ScPage page,
ScLayer layer,
QRect  clip 
)

draws masterpage items of a specific layer

void Canvas::DrawPageItems ( ScPainter painter,
ScLayer layer,
QRect  clip,
bool  notesFramesPass 
)

draws page items contained in a specific Layer

Canvas::FrameHandle Canvas::frameHitTest ( QPointF  canvasPoint,
PageItem item 
) const

Returns the framehandle or INSIDE if the position falls into the frame.

returns -1 if canvasPoint is outside the frame + grabradius. returns frameHandle if canvasPoint is near a framehandle otherwise 0

PageItem * Canvas::itemUnderCursor ( QPoint  globalPos,
PageItem itemAbove = NULL,
bool  allowInGroup = false,
bool  allowMasterItems = false 
) const

Returns the item under the cursor or NULL if none found. Does not change the selection. If itemAbove is given, it will look for an item under itemAbove, allowing select under. The flag 'allowInGroup' controls if single items within a group or only whole groups are considered. The flag 'allowMasterItems' controls if items from a masterpage are considered. (this flag is ignored in masterpage mode, since all items are masterpage items then).

void Canvas::paintEvent ( QPaintEvent *  p)
virtual

Actually we have at least three super-layers:

  • background (page outlines, guides if below)
  • content (master & page objects)
  • controls (selection, mode specific mrks, guides if above) For export we only need the contents.

The documentation for this class was generated from the following files: