我正在使用 Ncurses 库做一些交互式菜单,但我不知道如何做一件事。我有几个选项的简单菜单,我打开了O_ONEVALUE
很多选项可以同时选择,在发布菜单之前,我获取所有菜单项并将它们标记为选中或未选中,这取决于我保存在其他地方的位掩码,但是当菜单发布时,每个选项都被关闭,这里是代码:
//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
没有发生,我的错误在哪里?