An open API service indexing awesome lists of open source software.

https://github.com/lxstvayne/interactiveconsolemenu

Меню, которое можно кастомизировать
https://github.com/lxstvayne/interactiveconsolemenu

console cpp interactive menu

Last synced: about 1 year ago
JSON representation

Меню, которое можно кастомизировать

Awesome Lists containing this project

README

          

#

Menu.h

Данная библиотека помогает очень просто создавать интерактивные меню для вашей программы.
___
## Использование
```cpp
#include
#include "Menu.h"
#include

using namespace std;

void script(vector& v);
void print_vector(vector v);
void print_smth();

int main()
{
vector v;

Menu menu("Моё меню: ");

menu.add_row(
" 1. Строка номер 1", print_smth
);

menu.add_row(
" 2. Добавить элементы в вектор", [&]() { script(v); }
);

menu.add_row(
" 3. Вывести вектор", [&]() { print_vector(v); }
);

menu.add_row(
" Выход", nullptr
);

menu.run();
}

void script(vector& v)
{
int n;
int number;
cout << "Сколько чисел: ";
cin >> n;
cout << "Вводите ваши числа: " << endl;
for (size_t i = 0; i < n; i++)
{
cin >> number;
v.push_back(number);
}
}

void print_vector(vector v)
{
for (auto el: v)
cout << el << endl;

}

void print_smth()
{
cout << "Вы в пункте 1" << endl;
}
```
![Alt-текст](example.png "Пример")
___
## Создание меню
Чтобы создать меню необходимо создать объект класса **Menu**:
```cpp
Menu menu(string title); // title -> Заголовок вашего меню, по умолчанию нет.
```

Установить по необходимости свои цвета для консоли, добавить строчки выбора:
```cpp
menu.add_row(
string name,
void function,
bool pause = true
);
```
Аргумент pause отвечает за то, будет ли ожидаться ввод любой клавиши после выполнения фукнции, использовать false при вложенном меню.

Лямба функция, если необходимо передать какие-то аргументы:
```cpp
menu.add_row(
string name,
[&]() { function(a, b, c) }
);
```
И запустить само меню:
```cpp
menu.run();
```
## Изменение цветов консоли
Вы также можете изменить цвет текста или заднего фона консоли:
```cpp
menu.set_color(char BG_COLOR, char FONT_COLOR);
```
Параметры **BG_COLOR** и **FONT_COLOR** используют в качестве аргумента перечисления Colors. Доступные цвета:
+ BLUE
+ LIGHT_GREEN
+ LIGHT_AQUA
+ AQUA
+ LIGHT_RED
+ RED
+ LIGHT_PURPLE
+ PURPLE
+ LIGHT_YELLOW
+ YELLOW
+ BRIGHT_WHITE
+ WHITE
+ GRAY
+ LIGHT_BLUE
+ BLACK