sysopt.h

Clase wxSystemOptions

wxSystemOptions almacena pares de opciones/valores que wxWidgets o las aplicaciones pueden utilizar para modificar el comportamiento en tiempo de ejecución.

Jerarquía:

Jerarquía de wxSystemOptions

Se puede utilizar para optimizar comportamientos que no merecen una API específica, pero que siguen siendo importantes para poder configurar.

Las opciones del sistema pueden ser configuradas por el propio programa utilizando el método SetOption(), y también pueden ser configuradas desde el entorno del programa definiendo una variable de entorno wx_option para establecer la opción dada para todas las aplicaciones wxWidgets o wx_appname_option para establecerla sólo para la aplicación con el nombre dado (tal y como lo devuelve wxApp::GetAppName()). Hay que tener en cuenta que cualquier carácter no permitido en los nombres de las variables de entorno, como puntos y guiones, debe sustituirse por guiones bajos. Por ejemplo, para definir una opción del sistema "foo-bar", se debe definir la variable de entorno "wx_foo_bar".

El programa puede utilizar las opciones del sistema para sus propias necesidades, pero se utilizan principalmente para controlar el comportamiento de la propia biblioteca wxWidgets.

Actualmente, wxWidgets reconoce las siguientes opciones:

Todas las plataformas

  • exit-on-assert
  • Si se establece en un valor distinto de cero, aborta el programa si falla un assert. El comportamiento predeterminado en caso de fallo de assert depende del modo de compilación y se puede cambiar sobrescribiendo wxApp::OnAssertFailure(), pero al establecer esta opción se puede cambiar sin modificar el código del programa y también se aplica a los asserts que pueden ocurrir antes de la creación del objeto wxApp o después de su destrucción.

  • catch-unhandled-exceptions
  • Si se establece en cero, wxWidgets no capturará las excepciones no gestionadas, sino que dejará que se produzca el comportamiento predeterminado de abortar el programa. No capturar las excepciones no gestionadas facilita la depuración, ya que es más probable que el backtrace muestre lo que realmente ocurrió y dónde. Lo mismo se aplica a cualquier volcado de memoria generado debido a excepciones no gestionadas. Por defecto, las excepciones no gestionadas son finalmente capturadas por wxWidgets. Esta bandera debe establecerse muy pronto durante el inicio del programa, dentro del constructor del derivado wxApp. Esta opción se ha añadido en wxWidgets 3.3.0.

Windows

  • no-maskblt
  • 1 para no utilizar nunca la función MaskBlt de WIN32, 0 para permitir su uso siempre que sea posible. Valor predeterminado: 0. En algunas circunstancias, la función MaskBlt puede ser más lenta que el código de reserva, especialmente si se utiliza el almacenamiento en caché DC. De forma predeterminada, MaskBlt se utilizará cuando esté implementado por el sistema operativo y el controlador.

  • msw.remap
  • Si es 1 (el valor predeterminado), los colores del mapa de bits de wxToolBar se reasignarán a los valores del tema actual. Establecer este valor en 0 para desactivar esta funcionalidad, por ejemplo, si se utilizan más de 16 colores en los mapas de bits de sus herramientas.

  • msw.window.no-clip-children
  • Si es 1, las ventanas no obtendrán automáticamente el estilo WS_CLIPCHILDREN. Esto restaura la forma en que se actualizan las ventanas al método utilizado en las versiones de wxWidgets anteriores a la 2.5.4 y, para algunas jerarquías de ventanas complejas, puede reducir los retrasos aparentes en la actualización. Aún puede especificar wxCLIP_CHILDREN para ventanas individuales.

  • msw.notebook.themed-background
  • Si se establece en 0, desactiva globalmente los fondos temáticos en las páginas del cuaderno. Hay que tener en cuenta que esto no desactivará el tema en el fondo real del cuaderno (sólo se nota si no hay páginas).

  • msw.staticbox.optimized-paint
  • Si se establece en 0, desactiva el dibujo optimizado de wxStaticBox. Establecerlo en 0 provoca más parpadeo, pero permite a las aplicaciones dibujar gráficos en el elemento padre de un cuadro estático (la actualización optimizada hace que cualquier dibujo de este tipo desaparezca).

  • msw.font.no-proof-quality
  • Si se establece en 1, utiliza la calidad de fuente predeterminada en lugar de la calidad de prueba al crear fuentes. Con la calidad de prueba, las fuentes tienen un aspecto ligeramente mejor, pero no todas las fuentes están disponibles en esta calidad, por ejemplo, la fuente Terminal en tamaños pequeños no lo está, y esta opción se puede utilizar si una selección más amplia de fuentes es más importante que una mayor calidad.

  • msw.window.no-composited
  • Si se establece en 1, desactiva el uso de ventanas compuestas, es decir, con doble búfer, de forma predeterminada en wxMSW. No se recomienda, pero puede ser útil para depurar o solucionar problemas de redibujado en el código existente.

  • msw.dark-mode
  • Si se establece en 1, habilita la compatibilidad experimental con el modo oscuro si el sistema lo está utilizando, es decir, tiene el mismo efecto que llamar a wxApp::MSWEnableDarkMode(). Si se establece en 2, utiliza el modo oscuro incondicionalmente, como si esta función se llamara con el argumento wxApp::DarkMode_Always.

  • msw.native-dialogs-pmdpi
  • Algunos diálogos nativos de Win32 (como los selectores de fuente y color) no reconocen el DPI por monitor, y wxWidgets los mostrará de forma forzada como si reconocieran el DPI del sistema cuando hay monitores conectados con diferentes DPI. Si se establece en 1, estos diálogos siempre se mostrarán como si reconocieran el DPI por monitor (cuando esté habilitado en el manifiesto).

GTK+

  • gtk.tlw.can-set-transparent
  • El método wxTopLevelWindow::CanSetTransparent() normalmente intenta detectar automáticamente si la transparencia para las ventanas de nivel superior es compatible actualmente, sin embargo, esto a veces puede fallar y esta opción permite anular la detección automática. Si se establece en 1, la transparencia estará siempre disponible (por supuesto, el establecimiento puede fallar) y si se establece en 0, no estará disponible en ningún caso.

  • gtk.desktop
  • Esta opción se puede configurar para anular la determinación predeterminada del entorno de escritorio. Los valores admitidos son GNOME y KDE.

  • gtk.window.force-background-colour
  • Si se establece en 1, los fondos de las ventanas con el estilo de fondo wxBG_STYLE_COLOUR se borran de forma forzada en lugar de basarse en el color de la ventana GTK+ subyacente. Esto soluciona un problema de visualización al ejecutar aplicaciones en KDE con el tema gtk-qt instalado (0.6 y versiones anteriores).

Mac

  • mac.window-plain-transition
  • Si es 1, utiliza una transición más sencilla al mostrar una ventana. También puede utilizar el símbolo wxMAC_WINDOW_PLAIN_TRANSITION.

  • window-default-variant
  • La variante predeterminada utilizada por las ventanas (convertida a entero desde la enumeración wxWindowVariant). También conocida como wxWINDOW_DEFAULT_VARIANT.

  • mac.textcontrol-use-spell-checker
  • Si es 1, activa la revisión ortográfica en wxTextCtrl.

  • osx.openfiledialog.always-show-types
  • Por defecto, un wxFileDialogcon wxFD_OPEN no muestra una ventana emergente de tipos en macOS, pero permite la selección de archivos de cualquiera de los tipos compatibles. Si se establece en 1, se muestra un wxChoice para la selección (si hay más de un tipo de archivo compatible).

La opción en tiempo de compilación para incluir o excluir esta funcionalidad es wxUSE_SYSTEM_OPTIONS.

Funciones miembro

wxSystemOptions()

wxSystemOptions::wxSystemOptions()

Constructor predeterminado.

No es necesario crear una instancia de wxSystemOptions, ya que todas sus funciones son estáticas.

GetOption()

static wxString wxSystemOptions::GetOption(const wxString & name)

Obtiene una opción.

La función no distingue entre mayúsculas y minúsculas en el nombre. Devuelve una cadena vacía si la opción no se ha establecido.

GetOptionInt()

static int wxSystemOptions::GetOptionInt(const wxString & name)

Obtiene una opción como un número entero.

La función no distingue entre mayúsculas y minúsculas en el nombre. Si la opción no se ha establecido, esta función devuelve 0.

HasOption()

static bool wxSystemOptions::HasOption(const wxString & name)

Devuelve verdadero si la opción dada está presente.

La función no distingue entre mayúsculas y minúsculas en el nombre.

IsFalse()

static bool wxSystemOptions::IsFalse(const wxString & name)

Devuelve verdadero si la opción con el nombre dado se ha establecido en el valor 0.

Esto resulta especialmente útil para opciones booleanas en las que no se puede utilizar GetOptionInt(name) == 0, ya que esto también sería verdadero si la opción no se hubiera establecido en absoluto.

SetOption()

static void wxSystemOptions::SetOption( const wxString & name, const wxString & value )

Establece una opción.

La función no distingue entre mayúsculas y minúsculas en el nombre.

SetOption()

static void wxSystemOptions::SetOption( const wxString & name, int value )

Establece una opción.

La función no distingue entre mayúsculas y minúsculas en el nombre.

Métodos y datos heredados

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