The purpose of the DisplayManager singleton object is to offer notification when displays appear or disappear
or the default display changes.
You can use @get to obtain the DisplayManager
singleton, but that should be rarely necessary. Typically, initializing GTK+ opens a display that you can work with without ever
accessing the DisplayManager.
The GDK library can be built with support for multiple backends. The DisplayManager object determines which
backend is used at runtime.
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:
Backend-specific code
#ifdef GDK_WINDOWING_X11 if (GDK_IS_X11_DISPLAY (display)) { // make X11-specific calls here } else #endif #ifdef GDK_WINDOWING_QUARTZ if (GDK_IS_QUARTZ_DISPLAY (display)) { // make Quartz-specific calls here } else #endif g_error ("Unsupported GDK backend");