Clase wxTimer
La clase wxTimer permite ejecutar código a intervalos especificados.
Jerarquía:

Su precisión depende de la plataforma, pero en general no será mejor que 1ms ni peor que 1s.
Hay tres maneras diferentes de utilizar esta clase:
- Se puede derivar una nueva clase de wxTimer y sobrescribir el miembro wxTimer::Notify para realizar la acción requerida.
- Se puede redirigir las notificaciones a cualquier objeto derivado de wxEvtHandler utilizando el constructor no predeterminado o wxTimer::SetOwner. A continuación, utilizar la macro EVT_TIMER para conectarlo al manejador de eventos que recibirá las notificaciones wxTimerEvent.
- Se puede utilizar una clase derivada y la macro EVT_TIMER para conectarla a un manejador de eventos definido en la clase derivada. Si se utiliza el constructor por defecto, el objeto temporizador será su propio objeto propietario, ya que deriva de wxEvtHandler.
En cualquier caso, se debe iniciar el temporizador con wxTimer::Start() después de construirlo antes de que comience a enviar notificaciones. Puede pararse más tarde con wxTimer::Stop().
Nota: Un temporizador solo puede ser utilizado desde el hilo principal.
Funciones miembro
wxTimer()
wxTimer::wxTimer()
Constructor por defecto.
Si se utiliza para construir el objeto y no se llama a SetOwner() más tarde, se debe anular el método Notify() para procesar las notificaciones.
wxTimer()
wxTimer::wxTimer( wxEvtHandler * owner, int id = -1 )
Crea un temporizador y le asocia un propietario.
Consultar SetOwner() para ver la descripción de los parámetros.
~wxTimer()
virtual wxTimer::~wxTimer()
Destructor.
Detiene el temporizador si está en marcha.
GetId()
int wxTimer::GetId() const
Devuelve el ID de los eventos generados por este temporizador.
GetInterval()
int wxTimer::GetInterval() const
Devuelve el intervalo actual del temporizador (en milisegundos).
GetOwner()
wxEvtHandler* wxTimer::GetOwner() const
Devuelve el propietario actual del temporizador.
Si no es NULL, este es el manejador de eventos que recibirá los eventos del temporizador (ver wxTimerEvent) cuando el temporizador esté funcionando.
IsOneShot()
bool wxTimer::IsOneShot() const
Devuelve true si el temporizador es one shot, es decir, si se detendrá tras disparar la primera notificación automáticamente.
IsRunning()
bool wxTimer::IsRunning() const
Devuelve true si el temporizador está en marcha, false si está parado.
Notify()
virtual void wxTimer::Notify()
Este miembro debe ser sobrescrito por el usuario si se usó el constructor por defecto y SetOwner() no fue llamado.
Realiza cualquier acción que deba ser tomada periódicamente aquí.
Hay que tener en cuenta que lanzar excepciones desde este método no está soportado actualmente, utilizar el enfoque de manejo de temporizador basado en eventos si una excepción puede ser lanzada mientras se manejan las notificaciones del temporizador.
SetOwner()
void wxTimer::SetOwner( wxEvtHandler * owner, int id = -1 )
Asocia el temporizador con el objeto propietario dado.
Cuando el temporizador está en marcha, el propietario recibirá eventos de temporizador (ver wxTimerEvent) con id igual al id especificado aquí.
Start()
virtual bool wxTimer::Start( int milliseconds = -1, bool oneShot = wxTIMER_CONTINUOUS )
(Re)inicia el temporizador.
Si el parámetro milisegundos es -1 (valor por defecto), se utiliza el valor anterior. Devuelve false si el temporizador no ha podido iniciarse, true en caso contrario (en MS Windows los temporizadores son un recurso limitado).
Si oneShot es false (por defecto), la función Notify() será llamada repetidamente hasta que el temporizador se detenga. Si es true, solo se llamará una vez y el temporizador se detendrá automáticamente.
Para hacer el código más legible también se puede utilizar las siguientes constantes simbólicas:
- wxTIMER_CONTINUOUS: Inicia un temporizador normal, de ejecución continua.
- wxTIMER_ONE_SHOT: Iniciar un temporizador de un solo disparo Alternativamente, utilizar StartOnce().
Si el temporizador ya estaba en marcha, este método lo detendrá antes de reiniciarlo.
StartOnce()
bool wxTimer::StartOnce(int milliseconds = -1)
Inicia el temporizador para una notificación de una sola vez.
Esta es una simple envoltura para Start() con el parámetro wxTIMER_ONE_SHOT.
Stop()
virtual void wxTimer::Stop()
Detiene el temporizador.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject y wxEvtHandler.