X Window 系统交互 [源代码]
适用于 X 后端的特定函数
本节中的函数特定于 GDK X11 后端。要使用这些函数,您需要包含 <gdk/x11/gdkx.h>
标题,并使用特定于 X11 的 pkg-config 文件 gtk4-x11
构建您的应用程序。
检查 X11 后端
GDK 可以通过支持多个后端来构建,这意味着如果想要调用特定于后端的 API,您将需要执行编译时间和运行时检查;例如,以下代码样例将保护针对不同后端的调用,并在不受支持的窗口系统上出错
#ifdef GDK_WINDOWING_X11
#include <gdk/x11/gdkx.h>
#endif
#ifdef GDK_WINDOWING_WAYLAND
#include <gdk/wayland/gdkwayland.h>
#endif
#ifdef GDK_WINDOWING_X11
if (GDK_IS_X11_DISPLAY (display))
{
// make X11-specific calls here
}
else
#endif
#ifdef GDK_WINDOWING_WAYLAND
if (GDK_IS_WAYLAND_DISPLAY (display))
{
// make Wayland-specific calls here
}
else
#endif
g_error ("Unsupported GDK backend");
编译时间检查通过使用 GDK_WINDOWING_*
预处理器符号执行;针对内置于 GDK 中的每个窗口系统后端都有一个定义。对于 X11,符号是 GDK_WINDOWING_X11
。
运行时检查通过查看 GdkDisplay
对象的类型来执行。对于 X11,显示对象将为类型 GdkX11Display
。