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_backend.h"
#include "wm_layout.h"
#include "wm_plan.h"
@@ -23,6 +24,11 @@ typedef struct wm_interaction_state_t {
wm_rect_t window_origin_rect;
} wm_interaction_state_t;
typedef struct wm_border_palette_t {
wm_rgba32_t normal_rgba;
wm_rgba32_t focused_rgba;
} wm_border_palette_t;
typedef struct wm_runtime_bootstrap_t {
/*
* 输出配置(启动时扫描显示器后填充)。
@@ -55,6 +61,18 @@ typedef struct wm_runtime_bootstrap_t {
*/
wm_policy_config_t policy;
/*
* 不可变键盘绑定表。
* 当前草案把它视为 bootstrap 提供的只读视图items 的生命周期必须覆盖 runtime。
*/
wm_key_binding_table_t keybindings;
/*
* 不可变鼠标按键绑定表。
* bar / status 点击属于核心外服务,因此这里只覆盖 root / window 目标。
*/
wm_pointer_binding_table_t pointer_bindings;
/*
* 全局统一边框宽度。
* 它不是窗口真状态。runtime 在提交 configure effect 时:
@@ -63,6 +81,14 @@ typedef struct wm_runtime_bootstrap_t {
*/
uint16_t border_width;
/*
* 全局边框颜色配置。
* 它不是窗口真状态。runtime 在提交 configure effect 时根据当前焦点关系解析:
* - 当前 workspace 的 focused window -> focused_rgba
* - 其余窗口 -> normal_rgba
*/
wm_border_palette_t border_palette;
/*
* Existing windows discovered during startup should be translated into these
* commands instead of being injected into wm_state_t directly.
@@ -80,7 +106,10 @@ typedef struct wm_runtime_t {
wm_command_buffer_t command_buffer;
wm_layout_registry_t layouts;
wm_policy_config_t policy;
wm_key_binding_table_t keybindings;
wm_pointer_binding_table_t pointer_bindings;
uint16_t border_width;
wm_border_palette_t border_palette;
wm_interaction_state_t interaction;
wm_backend_t backend;
wm_service_registry_t services;