Files
StorytellersBestFriend/sbf-cpp/Menus.h
Tom Hicks b3bb6e4031 Converts from wstring to regular string.
Cleans up empty test suites to return no tests instead of a single pass.
2023-04-15 16:30:06 -07:00

52 lines
1.6 KiB
C++

#ifndef MENUS_H__
#define MENUS_H__
namespace SBF {
struct MenuStyle;
struct MenuItem;
}
// End forward declarations
#include <string>
#include <cstdint>
namespace SBF {
using std::string;
struct MenuStyle {
int idWidth;
int labelWidth;
int valueWidth;
int screenWidth;
string randomItemName;
int randomItemId;
string idLabelSeparator;
string labelValueSeparator;
string menuItemSpacer;
bool showRandom;
bool useColors;
};
struct MenuItem {
string label;
int id;
int value;
int color;
bool isVisible;
};
int GetRandomMenuItemId (std::vector<MenuItem> items);
void BuildMenu(std::vector<MenuItem> items, std::vector<string> labels);
void BuildMenuWithValues(std::vector<MenuItem> items, std::vector<string> labels, std::vector<int> values);
void BuildMenuWithColors(std::vector<MenuItem> items, std::vector<string> labels, std::vector<uint8_t> colors);
void AdjustMenuStyle(MenuStyle& style, std::vector<MenuItem> items, bool ignoreValue);
void PrintMenu(std::vector<MenuItem> items, MenuStyle style);
string GetTitle(MenuItem item, MenuStyle style);
string GetTitleWithoutValue(MenuItem item, MenuStyle style);
void NewMenuStyle(MenuStyle& style);
void NewMenuItem(MenuItem& item, string label, int id);
void NewMenuItemWithValue(MenuItem& item, string label, int id, int value);
void NewMenuItemWithColor(MenuItem& item, string label, int id, uint8_t color);
} // End namespace SBF
#endif // !defined MENUS_H__