The GDK library can be built with support for multiple backends.
The gdk.display_manager.DisplayManager 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 func@Gdk.set_allowed_backends. Note
that you need to call this function before initializing GTK.
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:
#ifdef GDK_WINDOWING_X11if (GDK_IS_X11_DISPLAY (display))
{
// make X11-specific calls here
}
else#endif#ifdef GDK_WINDOWING_MACOSif (GDK_IS_MACOS_DISPLAY (display))
{
// make Quartz-specific calls here
}
else#endif
g_error ("Unsupported GDK backend");
A singleton object that offers notification when displays appear or disappear.
You can use gdk.display_manager.DisplayManager.get to obtain the gdk.display_manager.DisplayManager singleton, but that should be rarely necessary. Typically, initializing GTK opens a display that you can work with without ever accessing the gdk.display_manager.DisplayManager.
The GDK library can be built with support for multiple backends. The gdk.display_manager.DisplayManager 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 func@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: