macOS 交互 [src]

macOS 后端特定功能

本部分中的功能是 GDK macOS 后端特定的。要使用这些功能,需要包含标头 <gdk/macos/gdkmacos.h> 并使用 macOS 特定的 pkg-config gtk4-macos 文件来构建你的应用程序。

检查 macOS 后端

GDK 可内置支持多个后端,这意味着如果你希望调用后端特定的 API,则需要进行编译时运行时检查;例如,以下代码示例将保护对不同后端进行的调用,并对不受支持的窗口系统提出错误

#ifdef GDK_WINDOWING_MACOS
#include <gdk/macos/gdkmacos.h>
#endif
#ifdef GDK_WINDOWING_WAYLAND
#include <gdk/wayland/gdkwayland.h>
#endif
#ifdef GDK_WINDOWING_X11
#include <gdk/x11/gdkx.h>
#endif

#ifdef GDK_WINDOWING_MACOS
  if (GDK_IS_MACOS_DISPLAY (display))
    {
      // make macOS-specific calls here
    }
  else
#endif
#ifdef GDK_WINDOWING_WAYLAND
  if (GDK_IS_WAYLAND_DISPLAY (display))
    {
      // make Wayland-specific calls here
    }
  else
#endif
#ifdef GDK_WINDOWING_X11
  if (GDK_IS_X11_DISPLAY (display))
    {
      // make X11-specific calls here
    }
  else
#endif
  g_error ("Unsupported GDK backend");

编译时检查是通过使用 GDK_WINDOWING_* 预处理器符号进行的;为内置于 GDK 中的每个窗口系统后端定义了一个符号。对于 Wayland,其符号为 GDK_WINDOWING_MACOS

运行时检查是通过查看 GdkDisplay 对象的类型来进行的。对于 Wayland,显示对象将是类型为 GdkMacosDisplay 的对象。