#pragma once #include "pch.h" /// Represents one menu item in a menu. struct MenuItem { char* text; char key; void* (*action)(void); }; 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; /// Is used for style-switching /// Default style with asterisks around the terminal /// Solid border with ASCII border characters /// Minimalistic design with bar instead of start>/item> /// No border, just plain text /// Displaces a CUI menu to the user and lets them choose an option, then calls the corresponding function. /// 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. /// If this parameter is set to true, the menu will be displayed again after an action is executed. /// If this parameter is set to true, a pausecommand will be run after an action is executed. /// Specifies the border in which the menu is displayed. void show_menu(const int itemc, const struct MenuItem itemv[], const char title[], const bool loopback, const bool pause, const struct MenuBorder *border);