代码之家  ›  专栏  ›  技术社区  ›  Elazar Leibovich

C/C++(嵌入式)嵌入式设备菜单管理

  •  2
  • Elazar Leibovich  · 技术社区  · 16 年前

    //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());
        }
        ...
    }
    

    这样的库对于在嵌入式设备中显示菜单非常有用。

    我很高兴知道是否有这样的图书馆,或者有没有更好的办法来建这个图书馆。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Vicky    16 年前

    卡莱多就是这样: http://www.digitalairways.com/kaleido-engine.htm

    Emwin更简单、更便宜,但在功能方面却没有它丰富: http://www.segger.com/cms/emwin.html

        2
  •  1
  •   simon    16 年前

    您可能想看看Android SDK。这也可能超出了你想要处理的范围,但复制或使用谷歌可能拥有的任何工具都可能有价值。

        3
  •  1
  •   MaBu    14 年前

    我知道这是个老问题,但也许其他人也有同样的问题。

    我想 CLI 是你需要的解决方案。

    它具有XML配置文件,并生成C++链接,java链接,然后链接。 我没有测试过它,只是在搜索创建CLI菜单时发现的。