#ifndef WFRAME_H #define WFRAME_H #include class WFrame : public QMainWindow { // macro Q_OBJECT indispensable pour spécifier à Qt l'utilisation du mécanisme interne de // communication entre les classes. public: /** * @brief Constructeur de notre classe. * Initialise les menus, la toolbar et les zones images et d'information. * @param parent : parent de cette fenêtre : ici 0 signifie que c'est la fenêtre principale * @param applicationPath : chemin absolu de lancement de cette application */ WFrame(QMainWindow* parent = 0,const QString& applicationPath= "", Qt::WFlags = Qt::Window ); /** * @brief Destructeur de classe. */ virtual ~WFrame(); private: /** @brief Pointeur sur le widget de la palette */ Palette* m_palette; /** @brief Pointeur sur le widget de la visu */ Visu2D* m_visu2d; /** @brief Pointeur sur le widget des statistiques */ WStatistiques *m_wStatistiques; /** @brief Pointeur sur notre image */ Image *m_pImage; /** @brief chemin absolu de lancement de cette application */ QString m_applicationPath; /** @brief Classe d'évenements associés au bouton Rectangle */ QAction *m_actionRectangle; /** @brief Classe d'évenements associés au bouton Ellipse */ QAction *m_actionEllipse; /** @brief Classe d'évenements associés au bouton Carre */ QAction *m_actionCarre; /** @brief Classe d'évenements associés au bouton Cercle */ QAction *m_actionCercle; /** @brief Classe d'évenements associés au bouton Polygone */ QAction *m_actionPolygone; /** @brief Pointeur utilisé pour mémoriser la forme en cours ; pas de bouton directement associé */ QAction *m_actionFormeEnCours; /** @brief Classe d'évenements associés au mode déplacement de la forme */ QAction *m_actionDeplaceForme; /** @brief Classe d'évenements associés au mode selection de la couleur */ QAction *m_actionSelectCouleur; /** @brief Classe d'évenements associés au bouton d'effacement des formes représentées */ QAction *m_actionEffaceFormes; /** @brief Classe d'évenements associés au mode ajoute nouvelle forme */ QAction *m_actionModeAjoute; /** @brief Label associé à la barre de status */ QLabel* m_label; public slots: /** * @brief Méthode appelée lors de la selection d'une nouvelle image. * @return true si l'image est correcte, false sinon */ bool OuvreImage(); /** * @brief Méthode appelée par visu2d lorsque un changement de la barre d'info est nécessaire * @param s nouvelle string à affecter à la barre d'infos */ void MAJBarreInfo(const QString& s); /** * @brief Méthode appelée lors du clic sur le bouton Rectangle de la toolbar */ void ClicRectangle(); /** * @brief Méthode appelée lors du clic sur le bouton Ellipse de la toolbar */ void ClicEllipse(); /** * @brief Méthode appelée lors du clic sur le bouton Carre de la toolbar */ void ClicCarre(); /** * @brief Méthode appelée lors du clic sur le bouton Cercle de la toolbar */ void ClicCercle(); /** * @brief Méthode appelée lors du clic sur le bouton Polygone de la toolbar */ void ClicPolygone(); /** * @brief Methode appelée lors de la mise à jour de la palette. */ void MAJPalette(); /** * @brief Appelée lorsque la sélection a changé ; pour mettre à jour la fenêtre de stat. */ void MAJStatistiques(Selection*, int); protected: /** @brief Initialise les menus */ void InitMenus(); /** @brief Initialise la barre d'outils */ void InitToolBar(); /** @brief Change le type de forme sélectionné */ void SetType(QAction* tb, TYPE_FORME type); }; #endif // WFRAME_H