event.h

Clase wxEvent

Un evento es una estructura que contiene información sobre un evento pasado a una llamada de retorno o a una función miembro.

Jerarquía:

Jerarquía de la clase wxEvent

wxEvent es un objeto de eventos multipropósito, y es una clase base abstracta para otras clases de eventos (ver más abajo).

Para más información sobre eventos, ver la descripción general de Eventos y Manejo de Eventos.

Nota: en wxPerl las clases de eventos personalizadas deben derivar de Wx::PlEvent y Wx::PlCommandEvent.

Funciones miembro

wxEvent()

wxEvent::wxEvent( int id = 0, wxEventType eventType = wxEVT_NULL )

Constructor.

Hay que tener en cuenta que los eventos son normalmente creados por el propio wxWidgets y crear, por ejemplo, un wxPaintEvent en su código y enviarlo a, por ejemplo, un wxTextCtrl no le afectará normalmente en absoluto ya que los controles nativos no tienen conocimiento específico sobre los eventos de wxWidgets. Sin embargo se puede construir objetos de tipos específicos y pasarlos a wxEvtHandler::ProcessEvent() si se quiere crear un control propio personalizado y se quiere procesar sus eventos de la misma manera que los estándar.

Observar también que el orden de los parámetros en este constructor es diferente al de casi todas las clases derivadas que especifican el tipo de evento como primer argumento.

Parámetros
id
El identificador del objeto (ventana, temporizador, ...) que generó este evento.
eventType
El tipo único de evento, por ejemplo wxEVT_PAINT, wxEVT_SIZE o wxEVT_BUTTON.
Clone()

virtual wxEvent* wxEvent::Clone() const

Devuelve una copia del evento.

Cualquier evento que se envíe al sistema de eventos de wxWidgets para una acción posterior (a través de wxEvtHandler::AddPendingEvent, wxEvtHandler::QueueEvent o wxPostEvent()) debe implementar este método.

Todos los eventos wxWidgets implementan completamente este método, pero cualquier evento derivado implementado por el usuario debería también implementar este método por si acaso ellos (o algún evento derivado de ellos) son publicados alguna vez.

Todos los eventos wxWidgets implementan un constructor de copia, por lo que la forma más sencilla de implementar la función Clonar es implementar un constructor de copia para un nuevo evento (llamarlo MiEvento) y luego definir la función Clonar de esta manera:

wxEvent *Clone() const { return new MiEvento(*this); }

Implementado en wxTextUrlEvent, wxRichTextEvent, wxThreadEvent y wxWindowModalDialogEvent.

GetEventCategory()

virtual wxEventCategory wxEvent::GetEventCategory() const

Devuelve una categoría genérica para este evento.

La implementación de wxEvent devuelve wxEVT_CATEGORY_UI por defecto.

Esta función se utiliza para procesar selectivamente eventos en wxEventLoopBase::YieldFor.

Reimplementado en wxThreadEvent.

GetEventObject()

wxObject* wxEvent::GetEventObject() const

Devuelve el objeto (normalmente una ventana) asociado al evento, si existe.

GetEventType()

wxEventType wxEvent::GetEventType() const

Devuelve el identificador del tipo de evento dado, como wxEVT_BUTTON.

GetEventUserData()

wxObject* wxEvent::GetEventUserData() const

Devuelve los datos de usuario asociados a un manejador de eventos conectado dinámicamente.

wxEvtHandler::Connect() y wxEvtHandler::Bind() permiten asociar el puntero opcional userData con el manejador y este método devuelve el valor de este puntero.

El puntero devuelto es propiedad de wxWidgets y no debe ser borrado.

GetId()

int wxEvent::GetId() const

Devuelve el identificador asociado a este evento, como el id de un comando de botón.

GetSkipped()

bool wxEvent::GetSkipped() const

Devuelve true si el manejador de eventos debe ser omitido, false en caso contrario.

GetTimestamp()

long wxEvent::GetTimestamp() const

Obtiene la marca de tiempo del evento.

El timestamp es el tiempo en milisegundos desde algún momento fijo (no necesariamente el estándar Unix Epoch, por lo que solo las diferencias entre los timestamps y no sus valores absolutos suelen tener sentido).

Advertencia

wxWidgets devuelve una marca de tiempo no NULL solo para eventos de ratón y tecla (ver wxMouseEvent y wxKeyEvent).

IsCommandEvent()

bool wxEvent::IsCommandEvent() const

Devuelve true si el evento es o deriva de wxCommandEvent en caso contrario devuelve false.

Nota: solo existe a efectos de optimización.

ResumePropagation()

void wxEvent::ResumePropagation(int propagationLevel)

Establece el nivel de propagación al valor dado (por ejemplo devuelto de una llamada anterior a wxEvent::StopPropagation).

SetEventObject()

void wxEvent::SetEventObject(wxObject * object)

Establece el objeto de origen.

SetEventType()

void wxEvent::SetEventType(wxEventType type)

Establece el tipo de evento.

SetId()

void wxEvent::SetId(int id)

Establece el identificador asociado a este evento, como el id de un comando de botón.

SetTimestamp()

void wxEvent::SetTimestamp(long timeStamp = 0)

Establece la fecha y hora del evento.

ShouldPropagate()

bool wxEvent::ShouldPropagate() const

Comprueba si este evento debe propagarse o no, es decir, si el nivel de propagación es actualmente mayor que 0.

Skip()

void wxEvent::Skip(bool skip = true)

Este método puede usarse dentro de un manejador de eventos para controlar si otros manejadores de eventos vinculados a este evento serán llamados después de que el actual retorne.

Sin Skip() (o equivalentemente si se utiliza Skip(false)), el evento no se procesará más. Si se llama a Skip(true), el sistema de procesamiento de eventos continúa buscando otra función manejadora para este evento, aunque ya haya sido procesado en el manejador actual.

En general, se recomienda omitir todos los eventos que no sean de comando para permitir que se realice el tratamiento por defecto. Los eventos de comando, sin embargo, normalmente no se omiten, ya que normalmente un solo comando, como el clic de un botón o la selección de un elemento de menú, solo debe ser procesado por un manejador.

StopPropagation()

int wxEvent::StopPropagation()

Detiene la propagación del evento a su ventana padre.

Devuelve el valor antiguo del nivel de propagación que puede pasarse posteriormente a ResumePropagation() para permitir que el evento se propague de nuevo.

Datos miembro

m_propagationLevel

int wxEvent::m_propagationLevel

Indica cuántos niveles puede propagar el evento.

Este miembro está protegido y normalmente solo debería establecerse en los constructores de las clases derivadas. Puede ser cambiado temporalmente por StopPropagation() y ResumePropagation() y probado con ShouldPropagate().

El valor inicial se establece a wxEVENT_PROPAGATE_NONE (por defecto) lo que significa que el evento no debe propagarse en absoluto o a wxEVENT_PROPAGATE_MAX (para eventos de comando) lo que significa que debe propagarse tanto como sea necesario.

Cualquier número positivo significa que el evento debe propagarse pero no más del número de veces dado. Por ejemplo, el nivel de propagación puede ser 1 para propagar el evento solo a su padre, pero no a su abuelo.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject.