Clase wxUpdateUIEvent
Esta clase se utiliza para pseudoeventos que son invocados por wxWidgets para dar a una aplicación la oportunidad de actualizar diversos elementos de la interfaz de usuario.
Jerarquía:
Sin eventos de actualización de la interfaz de usuario, una aplicación tiene que trabajar mucho para marcar/desmarcar, habilitar/deshabilitar, mostrar/ocultar y establecer el texto de elementos como los elementos del menú y los botones de la barra de herramientas. El código para hacer esto tiene que mezclarse con el código que se llama cuando se invoca una acción para un elemento del menú o un botón.
Con los eventos de actualización de la interfaz de usuario, se define un controlador de eventos para examinar el estado de la aplicación y cambiar los elementos de la interfaz de usuario en consecuencia. wxWidgets llamará a sus funciones miembro en tiempo de inactividad, por lo que no hay que preocuparse de dónde llamar a este código.
Además de ser un método más claro y declarativo, también significa que no hay que preocuparse de si está actualizando un identificador de barra de herramientas o de barra de menús. El mismo controlador puede actualizar un elemento del menú y un botón de la barra de herramientas, si el identificador es el mismo. En lugar de manipular directamente el menú o el botón, se llaman funciones en el objeto de evento, como wxUpdateUIEvent::Check. wxWidgets determinará si se ha realizado dicha llamada y qué elemento de la interfaz de usuario se debe actualizar.
Estos eventos funcionarán tanto para los menús emergentes como para las barras de menú. Justo antes de que aparezca un menú, se llama a wxMenu::UpdateUI para procesar cualquier evento de la interfaz de usuario de la ventana propietaria del menú.
Si se observa que la sobrecarga del procesamiento de actualizaciones de la interfaz de usuario está afectando a la aplicación, se puede realizar una o ambas de las siguientes acciones:
- Llamar a wxUpdateUIEvent::SetMode con un valor de wxUPDATE_UI_PROCESS_SPECIFIED y establecer el estilo adicional wxWS_EX_PROCESS_UI_UPDATES para cada ventana que deba recibir eventos de actualización. Ninguna otra ventana recibirá eventos de actualización.
- Llamar a wxUpdateUIEvent::SetUpdateInterval con un valor en milisegundos para establecer el retraso entre actualizaciones. Es posible que se tenga que llamar a wxWindow::UpdateWindowUI en puntos críticos, por ejemplo, cuando esté a punto de mostrarse un cuadro de diálogo, en caso de que el usuario note un ligero retraso antes de que se actualicen las ventanas.
Hay que tener en cuenta que, aunque los eventos se envían en tiempo de inactividad, definir un controlador wxIdleEvent para una ventana no afecta a esto, ya que los eventos se envían desde wxWindow::OnInternalIdle, que siempre se llama en tiempo de inactividad.
wxWidgets intenta optimizar los eventos de actualización en algunas plataformas. En Windows y GTK+, los eventos para los elementos de la barra de menús sólo se envían cuando el menú está a punto de mostrarse, y no en tiempo de inactividad.
Eventos que usan esta clase
void handlerFuncName(wxUpdateUIEvent& event)
Macros de eventos:
- EVT_UPDATE_UI(id, func)
- Procesa un evento wxEVT_UPDATE_UI para el comando con el id dado.
- EVT_UPDATE_UI_RANGE(id1, id2, func)
- Procesa un evento wxEVT_UPDATE_UI para cualquier comando con un id incluido en el rango dado.
Funciones miembro
wxUpdateUIEvent()
wxUpdateUIEvent::wxUpdateUIEvent(wxWindowID commandId = 0)
Constructor.
CanUpdate()
static bool wxUpdateUIEvent::CanUpdate(wxWindow * window)
Devuelve verdadero si es apropiado actualizar (enviar eventos de actualización de la interfaz de usuario a) esta ventana.
Esta función examina el modo utilizado (véase wxUpdateUIEvent::SetMode), el indicador wxWS_EX_PROCESS_UI_UPDATES en la ventana, la última vez que se enviaron eventos de actualización en tiempo de inactividad y el intervalo de actualización, para determinar si los eventos deben enviarse a esta ventana ahora. De forma predeterminada, siempre devolverá verdadero porque el modo de actualización es inicialmente wxUPDATE_UI_PROCESS_ALL y el intervalo está establecido en 0; por lo tanto, los eventos de actualización se enviarán con la mayor frecuencia posible. Se puede reducir la frecuencia con la que se envían los eventos cambiando el modo y/o estableciendo un intervalo de actualización.
Check()
void wxUpdateUIEvent::Check(bool check)
Marcar o desmarcar el elemento de la interfaz de usuario.
Enable()
void wxUpdateUIEvent::Enable(bool enable)
Habilitar o deshabilitar el elemento de la interfaz de usuario.
Get3StateValue()
wxCheckBoxState wxUpdateUIEvent::Get3StateValue() const
Devuelve el estado que debe mostrar un wxCheckBox con wxCHK_3STATE.
GetChecked()
bool wxUpdateUIEvent::GetChecked() const
evuelve verdadero si el elemento de la interfaz de usuario debe estar marcado.
GetEnabled()
bool wxUpdateUIEvent::GetEnabled() const
Devuelve verdadero si el elemento de la interfaz de usuario debe estar habilitado.
GetMode()
static wxUpdateUIMode wxUpdateUIEvent::GetMode()
Función estática que devuelve un valor que especifica cómo wxWidgets enviará los eventos de actualización: a todas las ventanas o sólo a aquellas que especifiquen que procesarán los eventos.
GetSetChecked()
bool wxUpdateUIEvent::GetSetChecked() const
Devuelve verdadero si la aplicación ha llamado a Check() o SetSet3StateValue().
Sólo para uso interno de wxWidgets.
GetSetEnabled()
bool wxUpdateUIEvent::GetSetEnabled() const
Devuelve verdadero si la aplicación ha llamado a Enable().
Solo para uso interno de wxWidgets.
GetSetShown()
bool wxUpdateUIEvent::GetSetShown() const
Devuelve verdadero si la aplicación ha llamado a Show().
Sólo para uso interno de wxWidgets.
GetSetText()
bool wxUpdateUIEvent::GetSetText() const
Devuelve verdadero si la aplicación ha llamado a SetText().
Sólo para uso interno de wxWidgets.
GetShown()
bool wxUpdateUIEvent::GetShown() const
Devuelve verdadero si el elemento de la interfaz de usuario debe mostrarse.
GetText()
wxString wxUpdateUIEvent::GetText() const
Devuelve el texto que se debe establecer para el elemento de la interfaz de usuario.
GetUpdateInterval()
static long wxUpdateUIEvent::GetUpdateInterval()
Devuelve el intervalo actual entre actualizaciones en milisegundos.
El valor -1 desactiva las actualizaciones, 0 actualiza con la mayor frecuencia posible.
Is3State()
bool wxUpdateUIEvent::Is3State() const
Devuelve verdadero si el elemento de la interfaz de usuario es compatible con wxCheckboxState.
Para los controladores de eventos que se pueden utilizar para varios elementos, no todos los cuales son compatibles con wxCheckboxState, este método puede ser útil para determinar si se debe llamar a Set3StateValue() en el objeto de evento o no, es decir, el caso de uso principal de este método es:
void MyWindow::OnUpdateUI(wxUpdateUIEvent& event)
{
....
if ( event.Is3State() )
event.Set3StateValue(...alguna condición...);
else if ( event.IsCheckable() )
event.Check(...alguna condición...);
}
IsCheckable()
bool wxUpdateUIEvent::IsCheckable() const
Devuelve verdadero si el elemento de la interfaz de usuario se puede marcar.
Para los controladores de eventos que se pueden utilizar para varios elementos, no todos los cuales se pueden marcar, este método puede ser útil para determinar si se debe llamar a Check() en el objeto de evento o no, es decir, el caso de uso principal de este método es:
void MyWindow::OnUpdateUI(wxUpdateUIEvent& event)
{
....
if ( event.IsCheckable() )
event.Check(...alguna condición...);
}
ResetUpdateTime()
static void wxUpdateUIEvent::ResetUpdateTime()
Se utiliza internamente para restablecer la hora de la última actualización a la hora actual.
Se supone que los eventos de actualización se envían normalmente en tiempo de inactividad, por lo que se llama al final del procesamiento de inactividad.
Set3StateValue()
void wxUpdateUIEvent::Set3StateValue(wxCheckBoxState check)
Para wxCheckBox con wxCHK_3STATE: Establece el estado del elemento de la interfaz de usuario.
SetMode()
static void wxUpdateUIEvent::SetMode(wxUpdateUIMode mode)
Especifica cómo wxWidgets enviará los eventos de actualización: a todas las ventanas o sólo a aquellas que especifiquen que procesarán los eventos.
Parámetros
- mode
- este parámetro puede ser uno de los valores de la enumeración wxUpdateUIMode. El modo predeterminado es wxUPDATE_UI_PROCESS_ALL.
SetText()
void wxUpdateUIEvent::SetText(const wxString & text)
Establece el texto para este elemento de la interfaz de usuario.
SetUpdateInterval()
static void wxUpdateUIEvent::SetUpdateInterval(long updateInterval)
Establece el intervalo entre actualizaciones en milisegundos.
Establecer el valor en -1 para desactivar las actualizaciones, o en 0 para actualizar con la mayor frecuencia posible. El valor predeterminado es 0.
Utilizar esta opción para reducir la sobrecarga de los eventos de actualización de la interfaz de usuario si la aplicación tiene muchas ventanas. Si se establece el valor en -1 o superior a 0, es posible que también se tenga que llamar a wxWindow::UpdateWindowUI en los puntos adecuados de la aplicación, como cuando está a punto de mostrarse un cuadro de diálogo.
Show()
void wxUpdateUIEvent::Show(bool show)
Mostrar u ocultar el elemento de la interfaz de usuario.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxCommandEvent, wxEvent y wxObject.