Библиотека dialog
содержит структуру с именем dialog_vars
, которая содержит среди многих переменных char *input_result
.
Когда в меню делается выбор, input_result
устанавливается на значение тега , (в предоставленном исходном коде этот тег является либо "1"
, либо "2"
, а если выбор не сделан вообще, указатель NULL
.
От здесь, strcmp
может быть сделано, чтобы определить, какой ответ был выбран.
PS: Всегда убедитесь, что вы вызываете dlg_clr_result()
перед повторными диалогами, потому что выбор объединен to input_result
и, следовательно, не вызывая функцию, новый результат будет добавлен к старому вместо его замены.
Пример:
#include <dialog.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN(arr) ((int) (sizeof(arr) / sizeof(arr)[0]))
void
menu()
{
char *modes[] =
{
"1", "The first option",
"2", "The second option"
};
init_dialog(stdin, stdout);
dialog_menu("test_app", "Choose an option.", 0, 0, 0, LEN(modes) / 2, modes);
end_dialog();
char *result = dialog_vars.input_result; /* this will be "1", "2" or NULL */
init_dialog(stdin, stdout);
dialog_menu("test_app", strcmp(result, "1") ? "One" : "Two", 0, 0, 1);
end_dialog();
}
int
main()
{
menu();
return 0;
}