:right-sidebar: True DisplayManager =================================================================== .. currentmodule:: gi.repository.Gdk .. class:: DisplayManager(**properties: ~typing.Any) :no-contents-entry: Superclasses: :class:`~gi.repository.GObject.Object` A singleton object that offers notification when displays appear or disappear. You can use :obj:`~gi.repository.Gdk.DisplayManager.get` to obtain the ``GdkDisplayManager`` singleton, but that should be rarely necessary. Typically, initializing GTK opens a display that you can work with without ever accessing the ``GdkDisplayManager``\. The GDK library can be built with support for multiple backends. The ``GdkDisplayManager`` object determines which backend is used at runtime. In the rare case that you need to influence which of the backends is being used, you can use :obj:`~gi.repository.Gdk.set_allowed_backends`\. Note that you need to call this function before initializing GTK. Backend-specific code -------------------------------------------------------------------------------- When writing backend-specific code that is supposed to work with multiple GDK backends, you have to consider both compile time and runtime. At compile time, use the ``GDK_WINDOWING_X11``\, ``GDK_WINDOWING_WIN32`` macros, etc. to find out which backends are present in the GDK library you are building your application against. At runtime, use type-check macros like GDK_IS_X11_DISPLAY() to find out which backend is in use: .. code-block:: c :dedent: #ifdef GDK_WINDOWING_X11 if (GDK_IS_X11_DISPLAY (display)) { // make X11-specific calls here } else #endif #ifdef GDK_WINDOWING_MACOS if (GDK_IS_MACOS_DISPLAY (display)) { // make Quartz-specific calls here } else #endif g_error ("Unsupported GDK backend"); Methods ------- .. rst-class:: interim-class .. class:: DisplayManager :no-index: .. classmethod:: get() -> ~gi.repository.Gdk.DisplayManager Gets the singleton ``GdkDisplayManager`` object. When called for the first time, this function consults the ``GDK_BACKEND`` environment variable to find out which of the supported GDK backends to use (in case GDK has been compiled with multiple backends). Applications can use :obj:`~gi.repository.Gdk.set_allowed_backends` to limit what backends will be used. .. method:: get_default_display() -> ~gi.repository.Gdk.Display | None Gets the default ``GdkDisplay``\. .. method:: list_displays() -> list[~gi.repository.Gdk.Display] List all currently open displays. .. method:: open_display(name: str | None = None) -> ~gi.repository.Gdk.Display | None Opens a display. :param name: the name of the display to open .. method:: set_default_display(display: ~gi.repository.Gdk.Display) -> None Sets ``display`` as the default display. :param display: a ``GdkDisplay`` Properties ---------- .. rst-class:: interim-class .. class:: DisplayManager :no-index: .. attribute:: props.default_display :type: ~gi.repository.Gdk.Display The type of the None singleton. Signals ------- .. rst-class:: interim-class .. class:: DisplayManager.signals :no-index: .. method:: display_opened(display: ~gi.repository.Gdk.Display) -> None The type of the None singleton. :param display: the opened display