// Balises C++, évitant les doublons d'includes #ifndef TUFR_ACTIONSTEPTUTORIAL04_H #define TUFR_ACTIONSTEPTUTORIAL04_H // Inclusion de la classe pour la vue correspondant à l'action (interface) #include "views/actions/tufr_actionsteptutorial04options.h" // Inclusion de la classe parente des actions en mode graphique #include "ctlibaction/ct_actions/abstract/ct_abstractactionforgraphicsview.h" // Inclusion des classes Qt nécessaires #include #include #include #include // Inclure ensuite les éventuelles classes de définitions nécessaires à votre étape #include "ct_itemdrawable/ct_pointcluster.h" /*! * \class TUFR_ActionStepTutorial04 * \ingroup Steps_TUFR * * \brief Cette classe créée une action en mode graphique pour StepTutorial04 * */ // Une action doit hériter de CT_AbstractActionForGraphicsView (ou d'une classe abstraite d'action) class TUFR_ActionStepTutorial04 : public CT_AbstractActionForGraphicsView { // Macro Qt, donnant accès à certaines fonctionnalités // En l'occurence, permet de récupérer le nom de l'étape Q_OBJECT public: // Conteneur d'échange d'information entre l'étape et l'action class TUFR_ActionStepTutorial04_dataContainer { public: TUFR_ActionStepTutorial04_dataContainer(); // On peut définir ici toutes les données nécessaires QList* _sceneList; double _limitBuffer; }; // Constructeur/destructeur de l'étape TUFR_ActionStepTutorial04(TUFR_ActionStepTutorial04_dataContainer* dataContainer); ~TUFR_ActionStepTutorial04(); // Méthodes caractéristiques de l'actions QString uniqueName() const; QString title() const; QString description() const; QIcon icon() const; QString type() const; // Initialisation lors de la création void init(); // Méthodes pour l'intéraction bool mousePressEvent (QMouseEvent *e); bool mouseMoveEvent (QMouseEvent *e); bool mouseReleaseEvent(QMouseEvent *e); bool wheelEvent (QWheelEvent *e); bool keyPressEvent (QKeyEvent *e); bool keyReleaseEvent (QKeyEvent *e); void draw (GraphicsViewInterface &view, PainterInterface &painter); void drawOverlay(GraphicsViewInterface &view, QPainter &painter); // Méthode de copie de l'action CT_AbstractAction* createInstance() const; public slots: // Lorsqu'on agit avec le rendu, il faut parfois le mettre à jour, via ce slot void update(); private: // Dans la zone privée : les paramètres de l'étapes (initialisés dans le constructeur) TUFR_ActionStepTutorial04_dataContainer* _dataContainer; }; #endif // TUFR_ACTIONSTEPTUTORIAL04_H