【发布时间】:2011-03-07 18:26:59
【问题描述】:
我正在寻找一个管理菜单的库。我正在寻找基于配置文件的东西。它不必管理键盘输入或显示,只需管理菜单逻辑。我的想法是这样的:
//menu.xml
<menu>
<Start />
<Stop />
<Configuration displayname="Configure System">
<Sound type="toggle" />
<Speed display="Speed related settings">
<Speedy type="toggle" default="on" />
<Optimizations type="toggle" />
</Speed>
</Configuration>
<Filesystem>
<SaveSnapshot />
<LoadSnapshot />
</Filesystem>
</menu>
在我们的代码中:
//menu.cpp
Menu menu("menu.xml");
menu.bind("SaveSnapshot",saveSnapshotPressed);
menu.bind("LoadSnapshot",loadSnapshotPressed);
menu.bind("Sound",soundSetTo);
...
void onKeyPressed(key_t key) {
...
switch (key) {
case KEY_UP:
menu.goUp();
break;
case KEY_DOWN:
menu.goDown();
break;
case KEY_ENTER:
menu.action();
break;
}
// display.cpp
void render(...) {
for (int i=0;i<menu.items().size();++i) {
renderText(getMenuCoord(i),menu.items()[i].c_str());
}
...
}
这样的库对于在嵌入式设备中显示菜单非常有用。
我很高兴知道是否存在这样的库,或者对于这个库有更好的想法。
【问题讨论】:
-
+1 表示有用性和相关性。我很乐意看到任何投票关闭的人提出菜单。我最终从 1995 年开始使用 C 代码结构布局。没有 OOP 解决方案。 github.com/cacycleworks/chipKIT_ST7735/tree/master/Libraries/…
-
嗨 Elazar,您是否使用 OOP 解决方案进行管理?
-
@ransh 不幸的是没有。
标签: c++ c user-interface embedded menu