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