core: 定义核心事件数据模型并更新其文档

This commit is contained in:
2026-03-21 02:51:43 +08:00
parent 4c96f2a1db
commit 931dc3d8d5
22 changed files with 1204 additions and 220 deletions

View File

@@ -1,5 +1,6 @@
#pragma once
#include "wm_binding.h"
#include "wm_event.h"
#include "wm_plan.h"
@@ -18,6 +19,22 @@ typedef enum wm_backend_next_result_t {
typedef struct wm_backend_api_t {
bool (*init)(wm_backend_t *backend);
/*
* 安装 bootstrap 固定下来的键盘绑定表。
* X11 这类需要被动抓键的平台可以在这里建立平台侧 grab
* 总能收到所有键盘事件的 backend 可以把它留空。
*/
bool (*set_keybindings)(wm_backend_t *backend,
const wm_key_binding_table_t *keybindings);
/*
* 安装 bootstrap 固定下来的鼠标按键绑定表。
* X11 这类需要被动抓按钮的平台可以把它缓存下来,并在 root 或新受管窗口
* 上按 target 规则建立 grab总能收到所有 pointer button 事件的 backend
* 可以把它留空。
*/
bool (*set_pointer_bindings)(
wm_backend_t *backend,
const wm_pointer_binding_table_t *pointer_bindings);
/*
* 返回一个 backend 轮询结果。
* 只有返回 WM_BACKEND_NEXT_EVENT 时out 才包含一个完整的 runtime 输入事件。