core: 窗口分层类型与接口草案

This commit is contained in:
2026-03-24 23:40:46 +08:00
parent e6b4486f89
commit dee0a19f34
5 changed files with 107 additions and 16 deletions

30
src/core/layer.h Normal file
View File

@@ -0,0 +1,30 @@
#pragma once
#include <stddef.h>
#include "core/types.h"
#include "core/window.h"
/* 层级从低到高 */
typedef enum layer_type_t {
ZDWM_WINDOW_LAYER_DESKTOP = 0,
ZDWM_WINDOW_LAYER_NORMAL,
ZDWM_WINDOW_LAYER_TOP,
ZDWM_WINDOW_LAYER_OVERLAY,
ZDWM_WINDOW_LAYER_COUNT,
} layer_type_t;
typedef struct layer_stack_t {
window_id_t *order;
size_t count;
size_t capacity;
} layer_stack_t;
void layer_stack_init(layer_stack_t *layer);
void layer_stack_reset(layer_stack_t *layer);
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);
layer_type_t layer_classify(const window_props_t *props);