# 四向链表菜单框架 **Repository Path**: franki_rainbow/chain-menu-framework ## Basic Information - **Project Name**: 四向链表菜单框架 - **Description**: No description available - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-08 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [项目名称] chain_menu —— 四向链表菜单框架 [简介] 本项目为基于C语言的四向链表菜单系统,支持嵌套菜单、数值调节、SDL2图形界面显示和按键事件处理。适用于嵌入式、桌面等需要菜单导航的场景。 目前在WIN32下SDL进行框架验证 后续会移植mspm0、stm32和esp32等嵌入式系统中 [主要特性] - 菜单结构采用四向链表(up/down/enter/back),支持多级菜单及横纵向切换 - 支持菜单项的数值调节(如整数增减) - SDL2 图形化显示与按键交互 - 支持自定义菜单项回调函数 [主要文件] - chain/core/menu/menu.h —— 菜单结构体与接口声明 - chain/core/menu/menu.c —— 菜单功能实现 - chain/core/key/key.h —— 按键定义与事件接口 - main.cpp —— 示例入口 [使用说明] 1. 初始化SDL窗口后,调用 menu_src_init 进行菜单系统初始化。 2. 使用 menu_create 创建根菜单及子菜单项,设置label、类型、回调等。 3. 主循环中调用 menu_gui_event 绘制菜单,menu_key_event 处理按键。 4. 可通过自定义action函数实现菜单项的业务逻辑。 [编译说明] - 依赖 SDL2、SDL2_ttf - Windows下需配置SDL2开发环境,CMakeLists.txt已给出示例 [示例代码] ```c Number val = {0, 0, 0, 10}; Menu *root = menu_create(NULL, NULL, "主菜单", MENU_TYPE_ROOT, NULL, val); Menu *item1 = menu_create(root, NULL, "子菜单1", MENU_TYPE_CHILD, NULL, val); ``` [作者] Frankie [联系方式] 邮箱: caihongfrank@yeah.net [许可证] MIT License