#pragma once #include "pch.h" /// Represents one menu item in a menu. struct MenuItem { char* text; char key; void* (*action)(void); }; /// Represents a border in which a menu is displayed. struct MenuBorder { char line_vertical; char line_horizontal; char corner_upper_left; char corner_upper_right; char corner_lower_left; char corner_lower_right; char title_left; char title_right; }; const extern struct MenuBorder DEFAULT, MODERN, NO_BORDER, SOLID; /// Represents a page in the menu. struct MenuPage { const struct MenuItem* items; const size_t item_count; char* title; bool loopback, pause; const struct MenuBorder* border; }; /// Displaces a CUI menu to the user /// The length of the array itemv of menu items. /// An array of all menu items to display in the menu. /// The title of the menu. /// Specifies the border in which the menu is displayed. void show_menu(const int itemc, const struct MenuItem itemv[], const char title[], const struct MenuBorder *border);