#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(); //QDom methods void read(QFile *file); void write(QFile *file); 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); void clearLines(); QList m_Lines; Line *m_NewLine; Line *m_SelectedLine; QPoint m_MousePressPoint; QPoint m_MouseReleasePoint; QPoint m_LastMousePosition; QDomDocument m_fileName; protected: void paintEvent(QPaintEvent *paintEvent); }; #endif // INTERACTIONCANVAS_H