A singleton object that offers notification when displays appear or disappear.
You can use [[email protected]] 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 [[email protected]_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:
```c 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"); ```