Swiftray  1.0
canvas-control.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QMouseEvent>
4 #include <QObject>
5 #include <QPainter>
6 #include <document.h>
7 
8 class Canvas;
9 
10 
15 namespace Controls {
16  class CanvasControl : public QObject {
17  Q_OBJECT
18  public:
19  explicit CanvasControl(Canvas *parent);
20 
21  virtual bool mousePressEvent(QMouseEvent *e);
22 
23  virtual bool mouseMoveEvent(QMouseEvent *e);
24 
25  virtual bool mouseReleaseEvent(QMouseEvent *e);
26 
27  virtual bool hoverEvent(QHoverEvent *e, Qt::CursorShape *cursor);
28 
29  virtual bool keyPressEvent(QKeyEvent *e);
30 
31  virtual void paint(QPainter *painter);
32 
33  // Return if the control is active in the correct mode
34  virtual bool isActive();
35 
36  virtual void exit();
37 
38  Canvas &canvas();
39 
40  Document &document();
41 
42  private:
43  Canvas *canvas_;
44  };
45 }
Definition: canvas.h:27
Definition: canvas-control.h:16
virtual void exit()
Definition: canvas-control.cpp:30
virtual bool mouseReleaseEvent(QMouseEvent *e)
Definition: canvas-control.cpp:19
virtual bool isActive()
Definition: canvas-control.cpp:10
Document & document()
Definition: canvas-control.cpp:38
virtual bool mousePressEvent(QMouseEvent *e)
Definition: canvas-control.cpp:13
virtual bool mouseMoveEvent(QMouseEvent *e)
Definition: canvas-control.cpp:16
virtual bool hoverEvent(QHoverEvent *e, Qt::CursorShape *cursor)
Definition: canvas-control.cpp:22
virtual bool keyPressEvent(QKeyEvent *e)
Definition: canvas-control.cpp:25
Canvas & canvas()
Definition: canvas-control.cpp:34
virtual void paint(QPainter *painter)
Definition: canvas-control.cpp:27
CanvasControl(Canvas *parent)
Definition: canvas-control.cpp:6
Document state store for layers, shapes, document specfic settings and current view state.
Definition: document.h:19
In-canvas controls with its own painting and event handling functions.
Definition: canvas-control.h:8