#ifndef INTERACTIONCANVAS_H #define INTERACTIONCANVAS_H #include #include #include #include #include #include #include "line.h" #include "rectangle.h" #include "ellipse.h" #include "polygon.h" class InteractionCanvas : public QLabel { public: InteractionCanvas(QWidget *parent); ~InteractionCanvas(); void addLine(); void addRectangle(); void addEllipse(); void addPolygon(); protected: void mouseMoveEvent(QMouseEvent *mouseEvent); void mousePressEvent(QMouseEvent *mouseEvent); void mouseReleaseEvent(QMouseEvent *mouseEvent); void keyPressEvent(QKeyEvent *keyEvent); void keyReleaseEvent(QKeyEvent *keyEvent); private: void changeSelectedLine(Line *newSelectedLine); void addNewLine(Line *newLine); QList m_Lines; Line *m_NewLine; Line *m_SelectedLine; QPoint m_MousePressPoint; QPoint m_MouseReleasePoint; QPoint m_LastMousePosition; protected: void paintEvent(QPaintEvent *paintEvent); }; #endif // INTERACTIONCANVAS_H