toplevel.h

Clase wxTopLevelWindow

wxTopLevelWindow es una clase base común para wxDialog y wxFrame.

Jerarquía:

Jerarquía de la clase wxTopLevelWindow

Es una clase base abstracta, lo que significa que nunca se trabaja con objetos de esta clase directamente, pero todos sus métodos son también aplicables para las dos clases anteriores.

Hay que tener en cuenta que las instancias de wxTopLevelWindow son gestionadas por wxWidgets en la lista interna de ventanas de nivel superior.

Eventos emitidos por esta clase

Macros para eventos emitidos por esta clase:

EVT_MAXIMIZE(id, func)
Procesa un evento wxEVT_MAXIMIZE. Ver wxMaximizeEvent.
EVT_MOVE(func)
Procesa un evento wxEVT_MOVE, que se genera cuando se mueve una ventana. Ver wxMoveEvent.
EVT_MOVE_START(func)
Procesa un evento wxEVT_MOVE_START, que se genera cuando el usuario empieza a mover o dimensionar una ventana. Sólo wxMSW. Ver wxMoveEvent.
EVT_MOVE_END(func)
Procesa un evento wxEVT_MOVE_END, que se genera cuando el usuario deja de mover o dimensionar una ventana. Sólo wxMSW. Ver wxMoveEvent.
EVT_SHOW(func)
Procesa un evento wxEVT_SHOW. Ver wxShowEvent.
EVT_FULLSCREEN(id, func)
Procesa un evento wxEVT_FULLSCREEN. Ver wxFullScreenEvent.

Funciones miembro

wxTopLevelWindow()

wxTopLevelWindow::wxTopLevelWindow()

Constructor por defecto.

wxTopLevelWindow()

wxTopLevelWindow::wxTopLevelWindow( wxWindow * parent, wxWindowID id, const wxString & title, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString & name = wxFrameNameStr )

Constructor que crea la ventana de nivel superior.

Parámetros
parent
Puntero a una ventana padre.
id
Identificador de la ventana. Si wxID_ANY, creará automáticamente un identificador. Ver Identificadores de ventana para más información sobre IDs.
pos
Posición de la ventana. wxDefaultPosition indica que wxWidgets debe generar una posición por defecto para la ventana. Si utiliza la clase wxWindow directamente, proporcione una posición real.
size
Tamaño de la ventana. wxDefaultSize indica que wxWidgets debe generar un tamaño por defecto para la ventana. Si no se puede encontrar un tamaño adecuado, la ventana tendrá un tamaño de 20x20 píxeles para que la ventana sea visible, pero obviamente no tendrá el tamaño correcto.
style
Estilo de ventana.
name
Nombre de la ventana.
~wxTopLevelWindow()

virtual wxTopLevelWindow::~wxTopLevelWindow()

Destructor.

Hay que recordar que las wxTopLevelWindows no se destruyen inmediatamente cuando el usuario (o la aplicación) las cierra; tienen una destrucción retardada.

CanSetTransparent()

virtual bool wxTopLevelWindow::CanSetTransparent()

Devuelve true si la plataforma permite hacer la ventana translúcida.

CenterOnScreen()

void wxTopLevelWindow::CenterOnScreen(int direction = wxBOTH)

Un sinónimo para CentreOnScreen().

CentreOnScreen()

void wxTopLevelWindow::CentreOnScreen(int direction = wxBOTH)

Centra la ventana en la pantalla.

Parámetros
direction
Especifica la dirección del centrado. Puede ser wxHORIZONTAL, wxVERTICAL o wxBOTH.
Create()

bool wxTopLevelWindow::Create( wxWindow * parent, wxWindowID id, const wxString & title, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString & name = wxFrameNameStr )

Crea la ventana de nivel superior. Ver wxWindow::Create

EnableCloseButton()

virtual bool wxTopLevelWindow::EnableCloseButton(bool enable = true)

Activa o desactiva el botón Cerrar (normalmente en la esquina superior derecha de un diálogo) y la entrada Cerrar del menú del sistema (normalmente en la esquina superior izquierda del diálogo).

Devuelve true si la operación se ha realizado correctamente. Esto puede ser erróneo en X11 (incluyendo GTK+) donde el gestor de ventanas puede no soportar esta operación y no hay forma de averiguarlo.

EnableFullScreenView()

virtual bool wxTopLevelWindow::EnableFullScreenView( bool enable = true, long style = wxFULLSCREEN_ALL )

Activa o desactiva el botón Cerrar (normalmente en la esquina superior derecha de un diálogo) y la entrada Cerrar del menú del sistema (normalmente en la esquina superior izquierda del diálogo). Devuelve true si la operación se ha realizado correctamente. Esto puede ser erróneo en X11 (incluyendo GTK+) donde el gestor de ventanas puede no soportar esta operación y no hay forma de averiguarlo.

EnableMaximizeButton()

virtual bool wxTopLevelWindow::EnableMaximizeButton(bool enable = true)

Activa o desactiva el botón Maximizar (en la esquina superior derecha o izquierda de un cuadro o diálogo).

Actualmente sólo está implementado para wxMSW y wxOSX.

El estilo de ventana debe contener wxMAXIMIZE_BOX.

Devuelve true si la operación se ha realizado correctamente. Hay que tener en cuenta que una operación exitosa no cambia las banderas de estilo de ventana.

EnableMinimizeButton()

virtual bool wxTopLevelWindow::EnableMinimizeButton(bool enable = true)

Activa o desactiva el botón Minimizar (en la esquina superior derecha o izquierda de un marco o diálogo).

Actualmente sólo está implementado para wxMSW y wxOSX.

El estilo de ventana debe contener wxMINIMIZE_BOX.

Hay que tener en cuenta que en wxMSW una operación exitosa cambiará las banderas de estilo de ventana.

Devuelve true si la operación se ha realizado correctamente. Hay que tener en cuenta que una operación exitosa no cambia las banderas de estilo de ventana.

GetContentProtection()

virtual wxContentProtection wxTopLevelWindow::GetContentProtection() const

Obtiene la protección de contenido actual de la ventana.

GetDefaultItem()

wxWindow* wxTopLevelWindow::GetDefaultItem() const

Devuelve un puntero al botón por defecto de esta ventana, o NULL.

El botón por defecto es el que se activa pulsando la tecla Intro.

GetDefaultSize()

static wxSize wxTopLevelWindow::GetDefaultSize()

Obtiene el tamaño por defecto para una nueva ventana de nivel superior.

Esto es usado internamente por wxWidgets en algunas plataformas para determinar el tamaño por defecto para una ventana creada usando wxDefaultSize por lo que no es necesario usarlo cuando se crea una wxTopLevelWindow, sin embargo puede ser útil si se necesita una estimación aproximada del tamaño de la ventana por alguna otra razón.

GetIcon()

wxIcon wxTopLevelWindow::GetIcon() const

Devuelve el icono estándar de la ventana.

El icono no será válido si no se ha establecido previamente mediante SetIcon().

GetIcons()

const wxIconBundle& wxTopLevelWindow::GetIcons() const

Devuelve todos los iconos asociados a la ventana, no habrá ninguno si antes no se ha llamado ni a SetIcon() ni a SetIcons().

Utilizar GetIcon() para obtener el icono principal de la ventana.

GetTitle()

virtual wxString wxTopLevelWindow::GetTitle() const

Obtiene una cadena que contiene el título de la ventana.

GetTmpDefaultItem()

wxWindow* wxTopLevelWindow::GetTmpDefaultItem() const

?

Iconize()

virtual void wxTopLevelWindow::Iconize(bool iconize = true)

Iconiza o restaura la ventana.

Hay que tener en cuenta que en wxGTK el cambio en el estado de la ventana no es inmediato, es decir, IsIconized() normalmente devolverá false justo después de una llamada a Iconize() y su valor de retorno solo cambiará después de que el flujo de control vuelva al bucle de eventos y se reciba la notificación de que la ventana ha sido realmente iconizada.

Parámetros
iconize
Si es true, iconiza la ventana; si es false, la muestra y la restaura.
IsActive()

virtual bool wxTopLevelWindow::IsActive()

Devuelve true si esta ventana está actualmente activa, es decir, si el usuario está trabajando con ella.

IsAlwaysMaximized()

virtual bool wxTopLevelWindow::IsAlwaysMaximized() const

Devuelve true si se espera que esta ventana esté siempre maximizada, ya sea debido a la política de la plataforma o debido a la política local con respecto a la clase en particular.

Reimplementado en wxMDIChildFrame.

IsFullScreen()

virtual bool wxTopLevelWindow::IsFullScreen() const

Devuelve true si la ventana está en modo de pantalla completa.

IsIconized()

virtual bool wxTopLevelWindow::IsIconized() const

Devuelve true si la ventana está iconizada.

Reimplementado en wxDialog.

IsMaximized()

virtual bool wxTopLevelWindow::IsMaximized() const

Devuelve true si la ventana está maximizada.

IsUsingNativeDecorations()

bool wxTopLevelWindow::IsUsingNativeDecorations() const

Este método es específico del port wxUniversal.

Devuelve true si esta ventana utiliza decoraciones nativas, false si las dibujamos nosotros mismos.

Layout()

virtual bool wxTopLevelWindow::Layout()

Distribuye los hijos utilizando el tamaño de la ventana o redimensiona el único hijo de la ventana para cubrir toda su área.

Esta clase sobrescribe el método Layout() de la clase base para comprobar si esta ventana contiene exactamente un hijo - lo que es comúnmente el caso, con wxPanel siendo a menudo creado como el único hijo de wxTopLevelWindow - y, si este es el caso, redimensiona esta ventana hija para cubrir toda el área del cliente.

Hay que tener en cuenta que si asocia un sizer con esta ventana, el sizer tiene prioridad y el redimensionamiento de único hijo solo se utiliza como segunda opción.

Valor de retorno

false si no se ha hecho nada porque la ventana no tiene ni un dimensionador ni un único hijo, true en caso contrario.

Maximize()

virtual void wxTopLevelWindow::Maximize(bool maximize = true)

Maximiza o restaura la ventana.

hay que tener en cuenta que, al igual que con Iconize(), el cambio del estado de la ventana no es inmediato al menos en el port wxGTK.

Parámetros
maximize
Si es true, maximiza la ventana, en caso contrario la restaura.
MSWGetSystemMenu()

wxMenu* wxTopLevelWindow::MSWGetSystemMenu() const

Función específica de MSW para acceder al menú del sistema.

Devuelve un puntero wxMenu que representa el menú del sistema de la ventana bajo MSW. El wxMenu devuelto puede utilizarse, si no es NULL, para añadir elementos adicionales al menú del sistema. Los eventos wxEVT_MENU habituales (que pueden procesarse utilizando la macro de tabla de eventos EVT_MENU) se generarán para ellos. Todos los demás métodos de wxMenu pueden utilizarse también, pero teniendo en cuenta que no permitirán acceder a ningún elemento estándar del menú del sistema (por ejemplo, actualmente no pueden borrarse ni modificarse de ninguna forma).

Debido a las limitaciones del sistema nativo, los identificadores de los elementos añadidos al menú del sistema deben ser múltiplos de 16, de lo contrario no se generarán eventos para ellos.

El puntero devuelto no debe borrarse, es propiedad de la ventana y solo se borrará cuando se destruya la propia ventana.

Esta función no está disponible en los otros ports por diseño, cualquier aparición de la misma en el código portable debe estar protegida por:

#ifdef __WXMSW__ 

del preprocesador.

OSXIsModified()

virtual bool wxTopLevelWindow::OSXIsModified() const

Devuelve el estado modificado actual de wxTopLevelWindow en macOS.

En otras plataformas, este método no hace nada.

OSXSetModified()

virtual void wxTopLevelWindow::OSXSetModified(bool modified)

Esta función establece el estado modificado de wxTopLevelWindow en macOS, que actualmente dibuja un punto negro en el botón de cierre de wxTopLevelWindow.

En otras plataformas, este método no hace nada.

RequestUserAttention()

virtual void wxTopLevelWindow::RequestUserAttention(int flags = wxUSER_ATTENTION_INFO)

Utiliza una forma dependiente del sistema para atraer la atención del usuario hacia la ventana cuando está en segundo plano.

flags puede tener el valor de wxUSER_ATTENTION_INFO (por defecto) o wxUSER_ATTENTION_ERROR que resulta en una acción más drástica. En caso de duda, utilizar el valor por defecto.

Nota: Normalmente, esta función solo debería utilizarse cuando la aplicación no está ya en primer plano.

Esta función está actualmente implementada para Win32 donde parpadea el icono de la ventana en la barra de tareas, y para wxGTK con barras de tareas que lo soporten.

Restore()

void wxTopLevelWindow::Restore()

Restaura una ventana previamente iconizada o maximizada a su estado normal.

En wxGTK este método actualmente no devuelve la ventana maximizada a su estado normal y se debe utilizar Maximize() con argumento false explícitamente para ello. En los otros ports, desmaximiza las ventanas maximizadas y desiconiza las iconizadas.

RestoreToGeometry()

bool wxTopLevelWindow::RestoreToGeometry(GeometrySerializer & ser)

Restaura la ventana a la geometría guardada previamente.

Es una función complementaria de SaveGeometry() y puede invocarse posteriormente para restaurar la ventana a la geometría que tenía cuando se guardó.

Parámetros
ser
Un objeto que implementa los métodos virtuales de GeometrySerializer.
Valor de retorno

true si alguno (y, normalmente, pero no necesariamente, todos) de los atributos de geometría de la ventana fueron restaurados o false si no había ninguna información de geometría guardada o la restauración falló.

SaveGeometry()

bool wxTopLevelWindow::SaveGeometry(const GeometrySerializer & ser) const

Guarda la geometría actual de la ventana para poder restaurarla más tarde.

Tras llamar a esta función, la geometría de la ventana se guarda en el serializador proporcionado y llamando a RestoreToGeometry() con el mismo serializador más tarde (es decir, normalmente durante una ejecución posterior del programa) se restauraría la ventana a la misma posición, tamaño, estado maximizado/minimizado, etc.

Esta función es utilizada por wxPersistentTLW, por lo que no es necesario utilizarla si el objetivo es simplemente guardar y restaurar la geometría de la ventana de la forma más sencilla posible. Sin embargo, si se requiere más flexibilidad, también se puede utilizar directamente con un objeto serializador personalizado.

Parámetros
ser
Un objeto que implemente los métodos virtuales de GeometrySerializer.
Valor de retorno

true si la geometría se ha guardado, false si ha fallado

SetContentProtection()

virtual bool wxTopLevelWindow::SetContentProtection(wxContentProtection contentProtection)

Establece la protección del contenido de la ventana.

Cuando la protección de contenido está activada, el contenido de esta ventana no se incluirá en las capturas de pantalla.

Obviamente, esto no puede proporcionar una seguridad absoluta, ya que podría haber soluciones y herramientas que eludan esta protección. Además, una pantalla siempre puede ser fotografiada.

Valor de retorno

true si se cambió la protección de contenido, false si se ejecuta bajo un SO no soportado.

Nota: Se requiere Windows 7 o posterior, pero cualquier versión de macOS es compatible.

Disponibilidad: solo disponible para los ports wxMSW, wxOSX/Cocoa.

SetDefaultItem()

wxWindow* wxTopLevelWindow::SetDefaultItem(wxWindow * win)

Cambia el elemento por defecto para el panel, normalmente win es un botón.

SetIcon()

void wxTopLevelWindow::SetIcon(const wxIcon & icon)

Establece el icono de esta ventana.

Parámetros
icon
El wxIcon a asociar con esta ventana.
Observaciones

La ventana toma una 'copia' del icono, pero como utiliza el conteo de referencias, la copia es muy rápida. Es seguro borrar el icono después de llamar a esta función.

Nota: En wxMSW, el icono debe ser de 16x16 o 32x32.

SetIcons()

virtual void wxTopLevelWindow::SetIcons(const wxIconBundle & icons)

Establece varios iconos de diferentes tamaños para esta ventana: esto permite usar diferentes iconos para diferentes situaciones (p.ej. barra de cambio de tareas, barra de tareas, barra de título de la ventana) en lugar de escalar, con resultados posiblemente malos, el único icono establecido por SetIcon().

Parámetros
icons
Los iconos a asociar con esta ventana.

Nota: En wxMSW, icons deben contener un icono de 16x16 o 32x32, preferiblemente ambos.

SetMaxSize()

virtual void wxTopLevelWindow::SetMaxSize(const wxSize & size)

Una interfaz más sencilla para establecer las sugerencias de tamaño que SetSizeHints().

Reimplementado a partir de wxWindow.

SetMinSize()

virtual void wxTopLevelWindow::SetMinSize(const wxSize & size)

Una interfaz más sencilla para establecer las sugerencias de tamaño que SetSizeHints().

Reimplementado a partir de wxWindow.

SetRepresentedFilename()

virtual void wxTopLevelWindow::SetRepresentedFilename(const wxString & filename)

Establece el nombre de archivo representado por esta wxTopLevelWindow.

En macOS, este nombre de archivo se utiliza para establecer el "icono proxy", que aparece en la barra de título de la ventana cerca de su título, correspondiente a este nombre de archivo. En otras plataformas actualmente no hace nada, pero es inofensivo llamarlo ahora y podría ser implementado para hacer algo útil en el futuro, por lo que te animamos a utilizarlo para cualquier ventana que represente un documento basado en archivo.

SetSizeHints()

void wxTopLevelWindow::SetSizeHints( const wxSize & minSize, const wxSize & maxSize = wxDefaultSize, const wxSize & incSize = wxDefaultSize )

Permite especificar los tamaños de ventana mínimo y máximo, así como los incrementos de tamaño de ventana.

Si no se establece un par de valores (o se establece en -1), no se utilizará ninguna restricción.

Parámetros
minSize
Tamaño mínimo de la ventana.
maxSize
Tamaño máximo de la ventana.
incSize
Incremento de tamaño (sólo se tiene en cuenta en ports basados en X11 como wxGTK/wxMotif/wxX11).
Observaciones

Observese que esta función no solo evita que el usuario redimensione la ventana fuera de los límites dados, sino que también evita que el propio programa lo haga utilizando wxWindow::SetSize():SetSize().

Reimplementado de wxWindow.

SetSizeHints()

virtual void wxTopLevelWindow::SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 )

Permite especificar los tamaños de ventana mínimo y máximo, así como los incrementos de tamaño de ventana.

Si no se establece un par de valores (o se establece en -1), no se utilizará ninguna restricción.

Parámetros
minW
Anchura mínima.
minH
Altura mínima.
maxW
Anchura máxima.
maxH
Altura máxima.
incW
Especifica el incremento para dimensionar la anchura (sólo GTK/Motif/Xt).
incH
Especifica el incremento para el tamaño de la altura (sólo GTK/Motif/Xt).
Observaciones

Observese que esta función no solo evita que el usuario redimensione la ventana fuera de los límites dados, sino que también evita que el propio programa lo haga utilizando wxWindow::SetSize():SetSize().

Reimplementado de wxWindow.

SetTitle()

virtual void wxTopLevelWindow::SetTitle(const wxString & title)

Establece el título de la ventana.

Parámetros
title
El título de la ventana.
SetTmpDefaultItem()

wxWindow* wxTopLevelWindow::SetTmpDefaultItem(wxWindow * win)

?

SetTransparent()

virtual bool wxTopLevelWindow::SetTransparent(wxByte alpha)

Si la plataforma lo soporta hará que la ventana sea translúcida.

Hay que tener en cuenta que en wxGTK esta función debe ser llamada antes de que la ventana se muestre la primera vez que se llama (pero puede ser llamada de nuevo después de mostrar la ventana también).

Parámetros
alpha
Determina lo opaca o transparente que será la ventana, si la plataforma soporta la operación. Un valor de 0 hace que la ventana sea totalmente transparente, y un valor de 255 hace que la ventana sea totalmente opaca.

Reimplementado desde wxWindow.

ShouldPreventAppExit()

virtual bool wxTopLevelWindow::ShouldPreventAppExit() const

Esta función virtual no está pensada para ser llamada directamente, pero puede ser sobrescrita para devolver false (devuelve true por defecto) para permitir que la aplicación se cierre incluso si esta ventana, presumiblemente no muy importante, sigue abierta.

Por defecto, la aplicación permanece viva mientras haya alguna ventana de nivel superior abierta.

ShowFullScreen()

virtual bool wxTopLevelWindow::ShowFullScreen( bool show, long style = wxFULLSCREEN_ALL )

Dependiendo del valor del parámetro show la ventana se muestra a pantalla completa o se restaura a su estado normal.

style es una lista de bits que contiene algunos o todos los valores siguientes, que indican qué elementos de la ventana ocultar en modo de pantalla completa:

  • wxFULLSCREEN_NOMENUBAR
  • wxFULLSCREEN_NOTOOLBAR
  • wxFULLSCREEN_NOSTATUSBAR
  • wxFULLSCREEN_NOBORDER
  • wxFULLSCREEN_NOCAPTION
  • wxFULLSCREEN_ALL (todas las anteriores)

Esta función no ha sido probada con marcos MDI.

Nota: Mostrar una ventana a pantalla completa también muestra la ventana si no lo estaba.

ShowWithoutActivating()

virtual void wxTopLevelWindow::ShowWithoutActivating()

Muestra la wxTopLevelWindow, pero no le da foco de teclado.

Esto se puede utilizar para ventanas emergentes o de notificación que no deben robar el foco actual.

UseNativeDecorations()

void wxTopLevelWindow::UseNativeDecorations(bool native = true)

Este método es específico del port wxUniversal.

Utilizar decoraciones nativas o personalizadas solo para esta ventana. Hay que tener en cuenta que para que tenga algún efecto este método debe ser llamado antes de crear realmente la ventana, es decir, se debe utilizar la creación en dos pasos:

MyFrame *frame = new MyFrame; // usar ctor por defecto
frame->UseNativeDecorations(false); // cambiar de "true" por defecto
frame->Create(parent, title, ...); // crear realmente el marco
UseNativeDecorationsByDefault()

void wxTopLevelWindow::UseNativeDecorationsByDefault(bool native = true)

Este método es específico del port wxUniversal.

Las ventanas de nivel superior en el port wxUniversal pueden utilizar decoraciones de ventana proporcionadas por el sistema (es decir, la barra de título y varios iconos, botones y menús en ella) o dibujar las propias decoraciones. Por defecto, las decoraciones del sistema se utilizan si están disponibles, pero este método puede ser llamado con native establecido a false para cambiar esto para todas las ventanas creadas después de este punto.

También hay que tener en cuenta que si la variable de entorno WXDECOR está establecida, entonces las decoraciones personalizadas se utilizan por defecto y por lo tanto puede tener sentido llamar a este método con el argumento por defecto si la aplicación no puede utilizar decoraciones personalizadas en absoluto por alguna razón.

Clases miembro

GeometrySerializer

Clase utilizada con SaveGeometry() y RestoreToGeometry().

Se trata de una clase base abstracta, es decir, para utilizarla se debe definir una clase derivada que implemente los métodos virtuales puros SaveField() y RestoreField().

Por ejemplo, si se desea almacenar la geometría de la ventana en una base de datos, se podría derivar una clase que guarde campos como "anchura" o "altura" en una tabla de esta base de datos y los restaure desde ella posteriormente.

Métodos y datos heredados

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