Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCanvasBase.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2
3 SPDX-FileCopyrightText: 2006, 2010 Boudewijn Rempt <boud@valdyas.org>
4 SPDX-FileCopyrightText: 2006, 2010 Thomas Zander <zander@kde.org>
5 SPDX-FileCopyrightText: 2006 Thorsten Zachmann <zachmann@kde.org>
6
7 SPDX-License-Identifier: LGPL-2.0-or-later
8*/
9
10#ifndef KOCANVASBASE_H
11#define KOCANVASBASE_H
12
13#include <QPoint>
14
15#include "kritaflake_export.h"
16
17class KUndo2Command;
18
19class KoUnit;
21class KoShapeManager;
22class KoToolProxy;
23class KoViewConverter;
27class KoShape;
28class KoSnapGuide;
30
31class QWidget;
32class QCursor;
33class QPointF;
34class QRectF;
35class QSizeF;
36
37#include <QObject>
38
44class KRITAFLAKE_EXPORT KoCanvasBase : public QObject
45{
46 Q_OBJECT
47public:
48
54 explicit KoCanvasBase(KoShapeControllerBase *shapeController, KoCanvasResourceProvider *sharedResourceManager = 0);
55 ~KoCanvasBase() override;
56
57public:
58
62 virtual bool canvasIsOpenGL() const { return false; }
63
70 virtual void gridSize(QPointF *offset, QSizeF *spacing) const = 0;
71
76 virtual bool snapToGrid() const = 0;
77
78
85 virtual void setCursor(const QCursor &cursor) = 0;
86
98 virtual void addCommand(KUndo2Command *command) = 0;
99
108 virtual KoShapeManager *shapeManager() const = 0;
109
117
122 virtual void updateCanvas(const QRectF &rc) = 0;
123
129 virtual KoToolProxy *toolProxy() const = 0;
130
135 virtual const KoViewConverter *viewConverter() const = 0;
137
142 virtual QPointF viewToDocument(const QPointF &viewPoint) const;
143
147 virtual QWidget *canvasWidget() = 0;
148
152 virtual const QWidget *canvasWidget() const = 0;
153
159 virtual KoUnit unit() const = 0;
160
170 virtual void clipToDocument(const KoShape *shape, QPointF &move) const;
171
177 virtual QPoint documentOrigin() const {
178 return QPoint(0, 0);
179 }
180
186 virtual void disconnectCanvasObserver(QObject *object);
187
200
206
210 KoCanvasController *canvasController() const;
211
216
218 void setCanvasController(KoCanvasController *controller);
219
220private:
221 // we need a KoShapeControllerBase so that it can work
223
224 class Private;
225 Private * const d;
226};
227
228#endif // KOCANVASBASE_H
virtual KoViewConverter * viewConverter()=0
KoShapeController * shapeController() const
virtual void setCursor(const QCursor &cursor)=0
virtual void gridSize(QPointF *offset, QSizeF *spacing) const =0
virtual KoShapeManager * shapeManager() const =0
virtual const QWidget * canvasWidget() const =0
Private *const d
virtual bool canvasIsOpenGL() const
KoCanvasResourceProvider * resourceManager() const
virtual KoUnit unit() const =0
virtual KoToolProxy * toolProxy() const =0
virtual QPoint documentOrigin() const
virtual const KoViewConverter * viewConverter() const =0
virtual void updateCanvas(const QRectF &rc)=0
virtual void addCommand(KUndo2Command *command)=0
virtual QWidget * canvasWidget()=0
KoSnapGuide * snapGuide() const
virtual KoSelectedShapesProxy * selectedShapesProxy() const =0
selectedShapesProxy() is a special interface for keeping a persistent connections to selectionChanged...
virtual bool snapToGrid() const =0
The KoSelectedShapesProxy class is a special interface of KoCanvasBase to have a stable connection to...