Clase wxApp
La clase wxApp representa la propia aplicación cuando wxUSE_GUI=1.
Jerarquía:

Además de las características proporcionadas por wxAppConsole mantiene el seguimiento de la ventana principal (ver SetTopWindow()) y añade soporte para modos de video (ver SetDisplayMode()).
En general, la configuración para las aplicaciones con solo interfaz gráfica es accesible desde wxApp (o desde las clases wxSystemSettings o wxSystemOptions).
Eventos emitidos por esta clase
Macros para eventos emitidos por esta clase:
- EVT_QUERY_END_SESSION(func):
- Procesar un evento de consulta de fin de sesión, mediante la función miembro suministrada. Ver wxCloseEvent.
- EVT_END_SESSION(func):
- Procesar un evento de fin de sesión, mediante la función miembro suministrada. Ver wxCloseEvent.
- EVT_ACTIVATE_APP(func):
- Procesar un evento wxEVT_ACTIVATE_APP. Ver wxActivateEvent.
- EVT_HIBERNATE(func):
- Procesar un evento de hibernar. Ver wxActivateEvent.
- EVT_DIALUP_CONNECTED(func):
- Se ha establecido una conexión con la red. Ver wxDialUpEvent.
- EVT_DIALUP_DISCONNECTED(func):
- La conexión con la red se ha perdido. Ver wxDialUpEvent.
- EVT_IDLE(func):
- Procesar el siguiente evento wxEVT_IDLE event. Ver wxIdleEvent.
Funciones miembro públicas
wxApp()
wxApp::wxApp()
Constructor.
Invocado implícitamente con la definición de un objeto wxApp
~wxApp()
virtual wxApp::~wxApp()
Destructor.
Será invocado implícitamente a la salida del programa si el objeto wxApp fue creado en la pila.
GetDisplayMode()
virtual wxVideoMode GetDisplayMode () const
Obtiene el modo de visualización que se utiliza. Solo se usa en framebuffer de adaptaciones de wxWidgets como wxDFB.
GetExitOnFrameDelete()
bool GetExitOnFrameDelete () const
Devuelve true si la aplicación terminará cuando el marco de mayor nivel sea eliminado.
Ver también
GetLayoutDirection()
virtual wxLayoutDirection GetLayoutDirection () const
Devuelve la dirección del diseño para la localización actual o wxLayout_Default si es desconocida.
GetUseBestVisual()
bool GetUseBestVisual () const
Devuelve true si la aplicación usará la mejor visualización en sistemas que soporten diferentes visualizaciones, false en caso contrario. Ver SetUseBestVisual().
GetTopWindow()
virtual wxWindow * GetTopWindow () const
Devuelve un puntero a la ventana superior.
Si la ventana superior no fue asignada usando SetTopWindow(), esta función encontrará la primera ventana de nivel superior (marco o diálogo o instancia de wxTopLevelWindow) desde la lista interna de ventanas de nivel superior y la devolverá. Ver SetTopWindow().
IsActive()
virtual bool IsActive () const
Devuelve true si la aplicación está activa, es decir, si una de sus ventanas está actualmente en primer plano.
Si la función devuelve false y se necesita atraer la atención del usuario hacia la aplicación, se puede usar wxTopLevelWindow::RequestUserAttention para hacerlo.
SafeYield()
virtual bool SafeYield (wxWindow *win, bool onlyIfNeeded)
Esta función es similar a wxYield(), excepto porque desactiva la entrada del usuario para todas las ventanas del programa antes de llamar a wxAppConsole::Yield y las reactiva otra vez después.
Si win no es NULL, esta ventana permanecerá activa, permitiendo la implementación de alguna interacción limitada del usuario. Devuelve el resultado de la llamada a wxAppConsole::Yield.
Ver: wxSafeYield.
SafeYieldFor()
virtual bool SafeYieldFor (wxWindow *win, long eventsToProcess)
Funciona como SafeYield() con onlyIfNeeded == true salvo que permite especificar una máscara de eventos a procesar. Ver wxAppConsole::YieldFor para más información.
ProcessMessage()
bool ProcessMessage (WXMSG *msg)
Exclusiva de Windows para procesar un mensaje.
Esta función es invocada desde el bucle de mensajes principal, comprobando si hay ventanas que quieran procesarlo.
Devuelve true si el mensaje fue procesado, false en caso contrario. Si se usa wxWidgets con otra librería de clases con su propio bucle de mensajes, hay que asegurarse de que esta función es llamada para permitir a wxWidgets recibir mensajes. Por ejemplo, para permitir la coexistencia con Microsoft Foundation Classes, anular la función PreTranslateMessage:
// Provide wxWidgets message loop compatibility BOOL CTheApp::PreTranslateMessage(MSG *msg) { if (wxTheApp && wxTheApp->ProcessMessage((WXMSW *)msg)) return true; else return CWinApp::PreTranslateMessage(msg); }
Solo disponible para la versión wxMSW.
SetDisplayMode()
virtual bool SetDisplayMode (const wxVideoMode &info)
Asigna el modo de visualización a usar. Solo se usa con versiones de wxWidgets con buffer de marcos, como wxDFB.
SetExitOnFrameDelete()
void SetExitOnFrameDelete (bool flag)
Permite al programador especificar si la aplicación debe salir cuando el marco de nivel superior es borrado.
Parámetros
- flag
- Si es true (valor por defecto), la aplicación saldrá cuando el marco de mayor nivel sea borrado. Si es false, la aplicación continuará ejecutándose.
Ver también
SetNativeTheme()
virtual bool SetNativeTheme (const wxString &theme)
Permite cambiar el tema del entorno del interfaz de usuario durante la ejecución.
Actualmente solo está implementado para la versión wxGTK2. Devuelve true si el tema fue cambiado con éxito.
Parámetros
- heme
- Es el nombre del nuevo tema o la ruta absoluta de un gtkrc-theme-file.
SetTopWindow()
void SetTopWindow (wxWindow *window)
Asigna la ventana superior 'top'.
Se puede llamar a esta función desde OnInit() para hacer que wxWidgets sepa cual es la ventana principal. No es necesario asignar una ventana superior; solo es conveniente para que (por ejemplo) algunos diálogos sin propietario puedan usar una ventana específica como la ventana top.
Si no se especifica una ventana superior por la aplicación, wxWidgets se usará el primer marco o diálogo (o mejor, cualquier wxTopLevelWindow) en la lista de ventanas top-level, cuando necesite usar la ventana top. Si se ha invicado previamente SetTopWindow() y se necesita restaurar el comportamiento automático, se puede usar:
wxApp::SetTopWindow(NULL)
Parámetros
- window
- Es la nueva ventana top.
Ver también
SetUseBestVisual()
void SetUseBestVisual (bool flag, bool forceTrueColour=false)
Permite al programador especificar si la aplicación usará la mejor visualización en sistemas que soporten varias visualizaciones en la misma pantalla.
Este es el caso típico bajo Solaris y IRIX, donde la visualización por defecto es de solo 8 bits cuando ciertas aplicaciones soportan la ejecución en modo TrueColour.
Hay que tener en cuenta que esta función debe ser invocada en el constructor de la instancia de wxApp y no tendrá efecto si es llamada más tarde. Actualmente, esta función solo tiene efecto bajo GTK.
Parámetros
- flag
- Si es true, la aplicación usará la mejor visualización.
- forceTrueColour
- Si es true entonces la aplicación intentará forzar la visualización TrueColour y la abortará si no lo consigue.
Métodos estáticos
GetGUIInstance()
static wxAppConsole* wxApp::GetGUIInstance()
Devuelve el objeto wxApp GUI actual si existe o NULL en caso contrario.
Esta función solo debería usarse en los raros casos en los que el mismo código necesita trabajar tanto en aplicaciones de consola como de GUI, pero necesita usar funcionalidad específica de GUI si está disponible, y por tanto solo llamar a wxAppConsole::GetInstance() es insuficiente mientras que usar wxTheApp es incorrecto, ya que el objeto de aplicación no siempre es una wxApp de GUI.
Por ejemplo:
WXWidget handle = 0; if ( wxApp* const app = wxApp::GetGUIInstance() ) { if ( wxWindow* const w = app->GetTopWindow() ) { handle = w->GetHandle(); } } //else: no window to use some_native_function_taking_a_window_handle(handle);
Hay que tener en cuenta que en este ejemplo en particular, se podría utilizar GetMainTopWindow() que ya hace lo mismo en lugar de hacerlo de este modo.
GetMainTopWindow()
static wxWindow* wxApp::GetMainTopWindow()
Devuelve un puntero a la ventana superior de la aplicación, si existe.
Esta función es segura de llamar incluso antes de crear, o después de destruir, el objeto aplicación, ya que simplemente devuelve NULL si no existe. En otro caso es equivalente a llamar a wxTheApp->GetTopWindow().
Funciones específicas para GTK
GTKAllowDiagnosticsControl()
static void wxApp::GTKAllowDiagnosticsControl()
Permite a wxWidgets suprimir selectivamente algunos mensajes GTK.
Esta función puede ser llamada para permitir a wxWidgets controlar el registro de mensajes GTK. No debe llamarla si su aplicación llama a la funcióng_log_set_writer_func(), ya que esta función sólo puede ser llamada una vez.
Se recomienda llamar a esta función en la versión superpuesta de wxApp::OnInit() para permitir a wxWidgets suprimir algunos mensajes de error GTK espurios, por ejemplo, los que ocurren cada vez que se eliminan páginas de wxNotebook con las versiones GTK actuales.
Solo disponible para el port wxGTK.
GTKSuppressDiagnostics()
static void wxApp::GTKSuppressDiagnostics(int flags = -1)
Desactiva la impresión de varios mensajes GTK.
Esta función puede invocarse para suprimir los mensajes de diagnóstico GTK que se emiten por defecto en el flujo de error estándar.
El valor por defecto del argumento desactiva todos los mensajes, pero se puede pasar una bandera de máscara para desactivar específicamente sólo categorías particulares de mensajes.
Hay que tener en cuenta que esta función solo funciona cuando se utiliza glib 2.50 (publicado en septiembre de 2016) o posterior y no hace nada con las versiones anteriores de la biblioteca.
Parámetros
- flags
- La máscara para los tipos de mensajes a suprimir. Consultar la documentación de glib para el enum GLogLevelFlags, que define los distintos tipos de mensajes.
Solo disponible para el port wxGTK.
Métodos y datos heredados
Por supuesto, ya que esta clase hereda de wxAppConsole, dispone de los métodos y datos miembro públicos y protegidos de ella, además de las clases que a su vez hereda de wxEvtHandler, wxEventFilter y wxObject.