- 新增settings_module.c实现设置菜单逻辑,包括蓝牙配对槽位管理和主题颜色选择 - 添加settings_mode_event.h/.c和settings_view_event.h/.c事件定义用于设置模式切换 - 创建settings_ui.h定义设置界面状态结构体和页面枚举 - 修改display_module.c集成设置UI显示逻辑,支持主界面和设置界面切换 - 在keyboard_core_module.c中添加设置活动状态检查,避免设置模式下键盘输入冲突 - 更新CMakeLists.txt包含新的源文件:settings_module.c、ui_settings.c及新事件文件 - 修改prj.conf调整LVGL内存池大小从16KB到32KB以支持更复杂UI渲染 - 移除BLE配对擦除相关配置选项并增加长按检测时间到1500毫秒 - 更新ui_main.c添加可见性控制函数用于界面切换
57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
#ifndef BLINKY_SETTINGS_UI_H_
|
|
#define BLINKY_SETTINGS_UI_H_
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#include "theme_color.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define SETTINGS_UI_ROOT_ITEM_COUNT 2U
|
|
#define SETTINGS_UI_BLE_SLOT_COUNT 3U
|
|
#define SETTINGS_UI_BLE_ITEM_COUNT 4U
|
|
#define SETTINGS_UI_THEME_OPTION_COUNT 6U
|
|
#define SETTINGS_UI_TITLE_MAX 20U
|
|
#define SETTINGS_UI_VALUE_MAX 24U
|
|
#define SETTINGS_UI_THEME_NAME_MAX 16U
|
|
|
|
enum settings_ui_page {
|
|
SETTINGS_UI_PAGE_ROOT = 0,
|
|
SETTINGS_UI_PAGE_BLE,
|
|
SETTINGS_UI_PAGE_THEME,
|
|
};
|
|
|
|
struct settings_ui_list_item {
|
|
char title[SETTINGS_UI_TITLE_MAX];
|
|
char value[SETTINGS_UI_VALUE_MAX];
|
|
};
|
|
|
|
struct settings_ui_theme_option {
|
|
char name[SETTINGS_UI_THEME_NAME_MAX];
|
|
struct theme_rgb color;
|
|
};
|
|
|
|
struct settings_ui_state {
|
|
bool active;
|
|
enum settings_ui_page page;
|
|
uint8_t root_selected;
|
|
uint8_t ble_selected;
|
|
uint8_t theme_selected;
|
|
uint8_t active_ble_slot;
|
|
struct theme_rgb accent;
|
|
struct settings_ui_list_item root_items[SETTINGS_UI_ROOT_ITEM_COUNT];
|
|
struct settings_ui_list_item ble_items[SETTINGS_UI_BLE_ITEM_COUNT];
|
|
struct settings_ui_theme_option
|
|
theme_options[SETTINGS_UI_THEME_OPTION_COUNT];
|
|
uint8_t theme_option_count;
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* BLINKY_SETTINGS_UI_H_ */
|