/***************************************************************************** * * Copyright (C) 2003 Cédric Brégardis <cedric.bregardis@free.fr> * * This file is part of BRIQUOLO * * BRIQUOLO is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * BRIQUOLO is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with BRIQUOLO; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *****************************************************************************/ #ifndef MOGL_TEMPORISATION #define MOGL_TEMPORISATION #include "MOGL_ElementArbre.h" #include "MOGL_Signal.h" /** Permet de définir une temporisation. La temporisation est destinée à être insérer dans l'arbre de repréentation de MOGL, c'est pourquoi MOGL_Temporisation spécialise MOGL_ElementArbre. Une fois la temporisation écoulée, le signal FinTemporisation est emis. La temporisation est mise en pause lorsque MOGL_Temps est mis en pause (cf MOGL_Temps::SetPause()). La temporisation de s'écoule que lorsque l'arbre de représentation parcourt l'objet (c'est à dire lorsque TnL() est appelé.) */ class MOGL_Temporisation: public MOGL_ElementArbre { protected: /** Durée de la temporisation (en secondes). */ float _DureeTempo; /** Durée écoulée. */ float _TempsEcoule; /** Indique si la temporisation doit être réarmée après écoulement. */ bool _Rearmer; /** Indique si la temporisation est en cours d'écoulement. */ bool _EnCours; public: // SIGNAUX MOGL_Signal0 FinTemporisation; public: /** Permet de construire une temporisation. @param p_DureeTemporisation : durée de la temporisation, en seconde. @param p_Rearmer : indique si la temporisation doit être réarmée après écoulement. @param p_Demarrer : indique si la temporisation doit être démarrée automatiquement dès la création. */ MOGL_Temporisation(float p_DureeTemporisation=1, bool p_Rearmer=false, bool p_Demarrer=true); /** Permet de récupérer la durée de la temporisation. @return Durée de la temporisation, en secondes. */ float GetDureeTemporisation() const; /** Permet de définir la durée de la temporisation. @param p_DureeTemporisation : durée de la temporisation, en secondes. */ void SetDureeTemporisation(float p_DureeTemporisation); /** Permet de savoir si la temporisation est réarmée après écoulement. @return <i>true</i> si la temporisation est réarmée, <i>false</i> sinon. */ bool GetRearmage() const; /** Permet de définir si la temporisation doit être réarmée après écoulement. @param p_Rearmer : <i>true</i> si la temporisation doit être réarmée, <i>false</i> sinon. */ void SetRearmage(bool p_Rearmer); /** Permet de démarrer la temporisation. Si la temporisation est déjà démarrée, la méthode n'a aucun effet. */ void Demarrer(); /** Permet d'arrêter la temporisation. Si la temporisation est déjà arrêté, la méthode n'a aucun effet. */ void Arreter(); void TnL(MOGL_Afficheur * p_Afficheur); }; #endif