Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_canvas_decoration.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef _KIS_CANVAS_DECORATION_H_
8#define _KIS_CANVAS_DECORATION_H_
9
10#include <QObject>
11#include <QPointer>
12
13#include <kritaui_export.h>
14#include <kis_image.h>
15#include "KisView.h"
16#include <kis_shared.h>
17
19class KisCanvas2;
20class QRectF;
21class QPainter;
23
26
31class KRITAUI_EXPORT KisCanvasDecoration : public QObject, public KisShared
32{
33 Q_OBJECT
34public:
35 KisCanvasDecoration(const QString& id, QPointer<KisView>parent);
36
37 ~KisCanvasDecoration() override;
38
39 void setView(QPointer<KisView> imageView);
40
41 const QString& id() const;
42
46 bool visible() const;
47
56 void paint(QPainter& gc, const QRectF& updateRect, const KisCoordinatesConverter *converter,KisCanvas2* canvas);
57
62 int priority() const;
63
64 static bool comparePriority(KisCanvasDecorationSP decoration1, KisCanvasDecorationSP decoration2);
65
66 virtual void notifyWindowMinimized(bool minimized);
67 virtual void setCanvasWidget(KisCanvasWidgetBase* canvas) {};
68
69public Q_SLOTS:
73 virtual void setVisible(bool v);
77 void toggleVisibility();
78protected:
79 virtual void drawDecoration(QPainter& gc, const QRectF& updateArea, const KisCoordinatesConverter *converter,KisCanvas2* canvas) = 0;
80
81
85 QPointer<KisView> view() const;
86
91 void setPriority(int value);
92
93 // returns the minimum decoration thickness, somewhat equivalent to the display scaling.
94 int decorationThickness() const;
95
96private:
97 struct Private;
98 Private* const d;
99};
100
101#endif
float value(const T *src, size_t ch)
qreal v
virtual void setCanvasWidget(KisCanvasWidgetBase *canvas)
virtual void drawDecoration(QPainter &gc, const QRectF &updateArea, const KisCoordinatesConverter *converter, KisCanvas2 *canvas)=0
KisSharedPtr< KisCanvasDecoration > KisCanvasDecorationSP