重构显示逻辑为 MVP 架构,进行显示模块的解耦

This commit is contained in:
2026-03-24 19:52:22 +08:00
parent a4bf0962b2
commit 0690d6a00e
42 changed files with 2207 additions and 1417 deletions

View File

@@ -0,0 +1,37 @@
#include "test_common.h"
#include <string.h>
#include "../src/Drv/menu/model/menu_tree_builder.h"
static int noop_proc(void)
{
return 0;
}
int main(void)
{
tagMenuCtrl ctrl;
tagMenuItem items[4];
const tagMenuModel model[4] = {
{0, "Root", "", 0, 0, 0, (FUNCPTR)noop_proc},
{1, "A", "", 0, 0, 0, (FUNCPTR)noop_proc},
{1, "B", "", 0, 0, 0, (FUNCPTR)noop_proc},
{2, "C", "", 0, 0, 0, (FUNCPTR)noop_proc},
};
memset(&ctrl, 0, sizeof(ctrl));
memset(items, 0, sizeof(items));
MenuTree_0LevelNumCal(&ctrl, model, 4);
ASSERT_EQ_INT(1, ctrl.by0LevelNum);
MenuTree_MainCreate(items, model, 4);
ASSERT_TRUE(items[0].ptLower == &items[1]);
ASSERT_TRUE(items[1].ptBehind == &items[2]);
ASSERT_TRUE(items[2].ptBefore == &items[1]);
ASSERT_TRUE(items[2].ptLower == &items[3]);
ASSERT_TRUE(items[3].ptHigher == &items[2]);
return 0;
}