Ncurses的菜单 - 选择记忆 [英] Ncurses menu - remembering selection

查看:567
本文介绍了Ncurses的菜单 - 选择记忆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用ncurses库做一些交互式菜单,我不知道该怎么做的一件事。我有几个选择简单的菜单,我转身的 O_ONEVALUE 这么多的选择可以在同一时间进行选择,张贴的菜单之前,我所有的菜单项,并将其标记选择与否,取决于一个位掩码,我一直保存在其他地方,但是当菜单张贴的每一个选项是关闭的,这里是code:

I am using Ncurses library to do some interactive menus, and I don't know how to do one thing. I have simple menu with few options, I turned of O_ONEVALUE so many options can be selected at the same time, before posting menu I get all the menu items and mark them as selected or not, depending on a bit mask that I keep stored somewhere else, but when the menu is posted every option is turned off, here is the code:

//acquiring menu items
ITEM** header_items = menu_items(params.header_opts_menu);
ITEM* cur_item;
if (header_items == NULL)
{
    client_cleanup();
    syslog_nsys_f(LOG_ERR, "error while getting header menu items");
}
//selecting appropriate items
long header_menu_items_count = ARRAY_SIZE(header_menu_choices);
for (i = 0; i < header_menu_items_count; ++i)
{
    if ((params.header_flags & (1 << (i))) != 0)
        decision = TRUE;
    else
        decision = FALSE;
    if (set_item_value(header_items[i], TRUE) != E_OK)
    {
        client_cleanup();
        syslog_nsys_f(LOG_ERR,"error while setting menu item value");
    }
}
if (post_menu(params.header_opts_menu) != E_OK)
{
    client_cleanup();
    syslog_nsys_f(LOG_ERR,"error while posting header options menu");
}
set_menu_items(params.header_opts_menu,header_items);
refresh();

即使我设置每个项目的价值 TRUE 什么也没有发生

,哪里是我的错?

even if I set value of every item to TRUE nothing happens, where is my mistake?

推荐答案

它看起来像你正试图调用post_menu之后调用set_menu_items。从你很可能得到一个错误E_POSTED检查set_menu_items的返回值。

It looks like you are attempting to call set_menu_items after calling post_menu. Check the return value from set_menu_items you are probably getting an E_POSTED error.

这篇关于Ncurses的菜单 - 选择记忆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆