core: 实现窗口分层栈维护函数

This commit is contained in:
2026-03-25 22:46:09 +08:00
parent dee0a19f34
commit 4d8092be43
2 changed files with 123 additions and 5 deletions

View File

@@ -20,11 +20,41 @@ typedef struct layer_stack_t {
size_t capacity;
} layer_stack_t;
void layer_stack_init(layer_stack_t *layer);
void layer_stack_reset(layer_stack_t *layer);
/**
* @brief 释放层栈内部资源并重置为空状态。
* @param layer 目标层栈。
*/
void layer_stack_cleanup(layer_stack_t *layer);
/**
* @brief 在该层栈顶部追加一个窗口。
* @param layer 目标层栈。
* @param window 待追加的窗口 ID。
*/
void layer_stack_append(layer_stack_t *layer, window_id_t window);
void layer_stack_remove(layer_stack_t *layer, window_id_t window);
void layer_stack_raise(layer_stack_t *layer, window_id_t window);
void layer_stack_lower(layer_stack_t *layer, window_id_t window);
/**
* @brief 删除指定窗口。
* @param layer 目标层栈。
* @param window 待删除的窗口 ID。
* @return 找到并删除窗口时返回 true否则返回 false。
*/
bool layer_stack_remove(layer_stack_t *layer, window_id_t window);
/**
* @brief 将指定窗口提升到该层栈顶。
* @param layer 目标层栈。
* @param window 待提升的窗口 ID。
* @return 仅在窗口存在且顺序发生变化时返回 true否则返回 false。
*/
bool layer_stack_raise(layer_stack_t *layer, window_id_t window);
/**
* @brief 将指定窗口下沉到该层栈底。
* @param layer 目标层栈。
* @param window 待下沉的窗口 ID。
* @return 仅在窗口存在且顺序发生变化时返回 true否则返回 false。
*/
bool layer_stack_lower(layer_stack_t *layer, window_id_t window);
layer_type_t layer_classify(const window_props_t *props);