Clase wxLogGui
Este es el objetivo de registro por defecto para las aplicaciones GUI wxWidgets.
Jerarquía:

Por favor, ver Personalización del Registro para una explicación de cómo cambiar el objetivo de registro por defecto.
Un objeto de esta clase se utiliza por defecto para mostrar los mensajes de registro creados mediante wxLogMessage(), wxLogError() y otras funciones de registro. Sin embargo, no muestra los mensajes registrados por ellas inmediatamente, sino que acumula todos los mensajes registrados durante la ejecución de un manejador de eventos y luego los muestra todos a la vez cuando se llama a su método Flush() durante el procesamiento del tiempo de inactividad. Esto tiene la importante ventaja de mostrar un único diálogo al usuario incluso si se han registrado varios mensajes debido a un único error, como ocurre a menudo (por ejemplo, una función de bajo nivel podría registrar un mensaje porque falló al abrir un fichero, lo que provocó que su llamante registrara otro mensaje debido al fallo de una operación de nivel superior que requería el uso de este fichero). Si se necesita forzar la visualización de todos los mensajes previamente registrados inmediatamente se puede utilizar wxLog::FlushActive() para forzar la visualización del diálogo.
Obsérvese también que si se registra un mensaje de error cuando ya se habían registrado antes varios mensajes informativos, los mensajes informativos se descartan suponiendo que ya no son útiles -y pueden ser confusos y por tanto perjudiciales- después del error. Sin embargo, los mensajes de advertencia y error nunca se descartan y los mensajes informativos registrados después del primer error también se conservan (ya que pueden contener información sobre la recuperación del error). Se puede anular el método DoLog() para cambiar este comportamiento.
En cualquier caso, es posible que se hayan acumulado varios mensajes antes de llamar al método Flush() de esta clase. Si este es el caso, Flush() utiliza un diálogo personalizado que muestra directamente el último mensaje y permite al usuario ver los registrados anteriormente expandiendo el wxCollapsiblePane "Detalles" en su interior. Este diálogo personalizado también proporciona los botones para copiar los mensajes de registro al portapapeles y guardarlos en un archivo.
Sin embargo, si solo hay un mensaje presente cuando se llama a Flush(), solo se utiliza wxMessageBox() para mostrarlo. Esto tiene la ventaja de estar más cerca del comportamiento nativo, pero no da al usuario ninguna posibilidad de copiar o guardar el mensaje (excepto para las versiones recientes de Windows, donde se puede pulsar Ctrl-C en el cuadro de mensaje para copiar su contenido al portapapeles), por lo que es posible que desee anular DoShowSingleLogMessage() para personalizar wxLogGui - el ejemplo de diálogos muestra cómo hacerlo.
Funciones miembro
wxLogGui()
wxLogGui::wxLogGui()
Constructor por defecto.
Clear()
void wxLogGui::Clear()
Olvida todos los mensajes almacenados actualmente.
Si se anula Flush() (y no se llama a la versión de la clase base), se debe llamar a este método para evitar que los mensajes se registren una y otra vez.
DoShowMultipleLogMessages()
virtual void wxLogGui::DoShowMultipleLogMessages( const wxArrayString & messages, const wxArrayInt & severities, const wxArrayLong & times, const wxString & title, int style )
Método llamado por Flush() para mostrar múltiples mensajes de registro.
Esta función puede sobrescribirse para mostrar los mensajes de una forma diferente. Por defecto, se utiliza un diálogo de registro especial que muestra el mensaje más reciente y permite al usuario expandirlo para ver los mensajes registrados anteriormente.
Parámetros
- messages
- Matriz de mensajes a mostrar; contiene más de un elemento.
- severities
- Matriz de severidades de mensajes que contiene valores wxLOG_XXX.
- times
- Conjunto de valores time_t que indican cuándo se registró cada mensaje.
- title
- El título sugerido para el diálogo que muestra el mensaje, véase GetTitle().
- style
- Una de las constantes wxICON_XXX, véase GetSeverityIcon().
DoShowSingleLogMessage()
virtual void wxLogGui::DoShowSingleLogMessage( const wxString & message, const wxString & title, int style )
Método llamado por Flush() para mostrar un único mensaje de registro.
Esta función puede ser sobrescrita para mostrar el mensaje de una manera diferente. Por defecto se utiliza una simple llamada a wxMessageBox().
Parámetros
- message
- El mensaje a mostrar (puede contener múltiples líneas).
- title
- El título sugerido para el diálogo que muestra el mensaje, véase GetTitle().
- style
- Una de las constantes wxICON_XXX, véase GetSeverityIcon().
Flush()
virtual void wxLogGui::Flush()
Presenta los mensajes de registro acumulados, si los hay, al usuario.
Este método es llamado durante el tiempo de inactividad y debería mostrar cualquier mensaje acumulado en el campo wxLogGui::m_aMessages al usuario.
Reimplementado de wxLog.
GetSeverityIcon()
int wxLogGui::GetSeverityIcon() const
Devuelve wxICON_ERROR, wxICON_WARNING o wxICON_INFORMATION dependiendo de la gravedad máxima actual.
Este valor es adecuado para ser utilizado en el parámetro de estilo de la función wxMessageBox().
GetTitle()
wxString wxLogGui::GetTitle() const
Devuelve el título apropiado para el diálogo.
El título se construye a partir de wxApp::GetAppDisplayName() y la cadena de severidad (p.e. "error" o "warning") apropiada para los valores actuales de wxLogGui::m_bErrors y wxLogGui::m_bWarnings.
Datos miembro
m_aMessages
wxArrayString wxLogGui::m_aMessages
Todos los mensajes acumulados actualmente.
Esta matriz puede estar vacía si no se ha registrado ningún mensaje.
m_aSeverity
wxArrayInt wxLogGui::m_aSeverity
La gravedad de cada mensaje registrado.
Este array está sincronizado con wxLogGui::m_aMessages, es decir, el n-ésimo elemento de este array corresponde a la gravedad del n-ésimo mensaje. Los posibles valores de severidad son constantes wxLOG_XXX, por ejemplo wxLOG_Error, wxLOG_Warning, wxLOG_Message etc.
m_aTimes
wxArrayLong wxLogGui::m_aTimes
as marcas de tiempo de cada mensaje registrado.
Los elementos de esta matriz son valores time_t correspondientes a la hora en que se registró el mensaje.
m_bErrors
bool wxLogGui::m_bErrors
True si hay mensajes de error.
m_bHasMessages
bool wxLogGui::m_bHasMessages
True si hay algún mensaje que mostrar al usuario.
Esta variable se utiliza en lugar de simplemente comprobar si el array wxLogGui::m_aMessages está vacío para permitir bloquear más llamadas a Flush() mientras ya se está mostrando un diálogo de registro, incluso si el array de mensajes aún no se ha vaciado.
m_bWarnings
bool wxLogGui::m_bWarnings
True si hay mensajes de advertencia.
Si tanto wxLogGui::m_bErrors como este miembro son falsos, solo se mostrarán mensajes informativos.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxLog.