Engauge Digitizer 2
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CursorFactory Class Reference

Create standard cross cursor, or custom cursor, according to settings. More...

#include <CursorFactory.h>

Collaboration diagram for CursorFactory:
Collaboration graph

Public Member Functions

 CursorFactory ()
 Single constructor.
 
QCursor generate (const DocumentModelDigitizeCurve &modelDigitizeCurve) const
 Factory method to generate standard or custom cursor.
 

Detailed Description

Create standard cross cursor, or custom cursor, according to settings.

Definition at line 15 of file CursorFactory.h.

Constructor & Destructor Documentation

◆ CursorFactory()

CursorFactory::CursorFactory ( )

Single constructor.

Definition at line 14 of file CursorFactory.cpp.

15{
16}

Member Function Documentation

◆ generate()

QCursor CursorFactory::generate ( const DocumentModelDigitizeCurve & modelDigitizeCurve) const

Factory method to generate standard or custom cursor.

Definition at line 18 of file CursorFactory.cpp.

19{
20 // To prevent hideous drawing errors when the line is thicker, we
21 // leave a padding region around the outside equal in size to the line width
22 int innerRadius = modelDigitizeCurve.cursorInnerRadius();
23 int size = CursorSizeToPixels (modelDigitizeCurve.cursorSize());
24 int halfSize = size / 2;
25 int lineWidth = modelDigitizeCurve.cursorLineWidth();
26 int halfLineWidth = lineWidth / 2;
27
28 if (modelDigitizeCurve.cursorStandardCross()) {
29
30 // Standard cursor
31 return QCursor (Qt::CrossCursor);
32
33 } else {
34
35 // Custom cursor
36 const int BACKGROUND_COLOR = Qt::white, FOREGROUND_COLOR = Qt::black;
37
38 // Cursor is created with pic image (which has nontrivial pen) masked by picMask image
39 // (which has single color pen)
40 QPixmap picMask (size,
41 size);
44
46 modelDigitizeCurve.cursorLineWidth());
47 picMaskPaint.setPen (pen);
48
49 picMaskPaint.drawLine (QPointF (halfSize,
52 lineWidth)); // Up
54 halfSize),
55 QPointF (lineWidth,
56 halfSize)); // Left
57 picMaskPaint.drawLine (QPointF (halfSize,
60 size - 1 - lineWidth)); // Down
62 halfSize),
63 QPointF (size - 1 - lineWidth,
64 halfSize)); // Right
65
66 QPixmap pic (size,
67 size);
69
70 return QCursor (pic.createMaskFromColor(QColor (BACKGROUND_COLOR)),
71 picMask.createMaskFromColor(QColor (BACKGROUND_COLOR)));
72 }
73}
int CursorSizeToPixels(CursorSize cursorSize)
const int INNER_RADIUS_MIN
CursorSize cursorSize() const
Get method for cursor size.
int cursorInnerRadius() const
Get method for cursor inner radius.
bool cursorStandardCross() const
Get method for cursor type.
int cursorLineWidth() const
Get method for cursor line width.

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