ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
794071 Топик полностью
aoreh (13.11.2017 17:55 - 18:02, просмотров: 106) ответил misyachniy на Изобретаю велосипед пользовательское меню.
А зачем вообще так сложно? Нельзя ли просто иметь вот типа такую структуру:
typedef void(*menu_func) (void);

struct main_menu_item{
       int level;
       menu_func *function;
       char * string_menu;
       int type; // ну там чек, н-р, или номер картинки
       };

и, соответственно, описание меню:
const main_menu_item menu[] = 
{
    { 0, funcXX, "Пункт 1" },
    { 0, funcXX, "Пункт 2" },
    { 1, funcXX, "Пункт 2.1" },
    { 0, funcXX, "Пункт 3" },
    { 1, funcXX, "Пункт 3.1" },
    { 1, ..... },
    { 1, ..... },
    { 2, funcXX, "Пункт 3.3.1" },
    { 2, funcXX, "Пункт 3.3.2" },
    { 1, funcXX, "Пункт 3.4" },
    { 0, funcXX, "Пункт 4" },
};
там, где ф-ии не нужны, а нужно только раскрывать подменю, то, разумеется, заменить на нулптр. Как вариант, не пользовать номер глубины, а 1, где нужно в подменю, 0 на том же уровне, -1... -n, для возврата на нужный уровень