Initialize TUI lookup tables in tp_init instead of using static init
This commit is contained in:
parent
d3028c28b2
commit
b116b89977
47
tui.cpp
47
tui.cpp
|
@ -12,6 +12,15 @@ termpaint_terminal *terminal;
|
||||||
termpaint_surface *surface;
|
termpaint_surface *surface;
|
||||||
|
|
||||||
AttributeSet attributes[ASetTypeCount];
|
AttributeSet attributes[ASetTypeCount];
|
||||||
|
std::unordered_map<std::string, std::string> key_symbols;
|
||||||
|
|
||||||
|
struct button_info {
|
||||||
|
Button button;
|
||||||
|
std::string string;
|
||||||
|
size_t width;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<button_info> all_buttons;
|
||||||
|
|
||||||
std::deque<Event> eventqueue;
|
std::deque<Event> eventqueue;
|
||||||
|
|
||||||
|
@ -52,6 +61,20 @@ std::optional<Event> wait_for_event(termpaint_integration *integration, int time
|
||||||
|
|
||||||
void tp_init()
|
void tp_init()
|
||||||
{
|
{
|
||||||
|
all_buttons = {
|
||||||
|
{Button::Ok, "Ok", 2},
|
||||||
|
{Button::Cancel, "Cancel", 6},
|
||||||
|
{Button::Yes, "Yes", 3},
|
||||||
|
{Button::No, "No", 2},
|
||||||
|
};
|
||||||
|
key_symbols = {
|
||||||
|
{"ArrowLeft", "←"},
|
||||||
|
{"ArrowUp", "↑"},
|
||||||
|
{"ArrowRight", "→"},
|
||||||
|
{"ArrowDown", "↓"},
|
||||||
|
{"Escape", "Esc"},
|
||||||
|
};
|
||||||
|
|
||||||
auto new_attr_set = [](AttributeSet &set, int color, int style = 0) {
|
auto new_attr_set = [](AttributeSet &set, int color, int style = 0) {
|
||||||
set.normal = termpaint_attr_new(color, TERMPAINT_DEFAULT_COLOR);
|
set.normal = termpaint_attr_new(color, TERMPAINT_DEFAULT_COLOR);
|
||||||
termpaint_attr_set_style(set.normal, style);
|
termpaint_attr_set_style(set.normal, style);
|
||||||
|
@ -335,20 +358,8 @@ std::vector<std::string> split(const std::string &str, const char delim, const u
|
||||||
return parts;
|
return parts;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct button_info {
|
static const char *button_gfx_left[] = {"[", " "};
|
||||||
Button button;
|
static const char *button_gfx_right[] = {"]", " "};
|
||||||
std::string string;
|
|
||||||
size_t width;
|
|
||||||
};
|
|
||||||
|
|
||||||
static std::vector<button_info> all_buttons = {
|
|
||||||
{Button::Ok, "Ok", 2},
|
|
||||||
{Button::Cancel, "Cancel", 6},
|
|
||||||
{Button::Yes, "Yes", 3},
|
|
||||||
{Button::No, "No", 2},
|
|
||||||
};
|
|
||||||
static const char *button_gfx_left[]={"[", " "};
|
|
||||||
const char *button_gfx_right[]={"]", " "};
|
|
||||||
|
|
||||||
Button message_box(const std::string &caption, const std::string &text, const Button buttons, const Button default_button, const Align align)
|
Button message_box(const std::string &caption, const std::string &text, const Button buttons, const Button default_button, const Align align)
|
||||||
{
|
{
|
||||||
|
@ -616,14 +627,6 @@ static void draw_help(const std::vector<helpitem> &items)
|
||||||
message_box("Help", to_show.c_str());
|
message_box("Help", to_show.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::unordered_map<std::string, std::string> key_symbols = {
|
|
||||||
{"ArrowLeft", "←"},
|
|
||||||
{"ArrowUp", "↑"},
|
|
||||||
{"ArrowRight", "→"},
|
|
||||||
{"ArrowDown", "↓"},
|
|
||||||
{"Escape", "Esc"},
|
|
||||||
};
|
|
||||||
|
|
||||||
static std::string format_key(const action &action) {
|
static std::string format_key(const action &action) {
|
||||||
std::string str;
|
std::string str;
|
||||||
if(action.modifier & TERMPAINT_MOD_CTRL)
|
if(action.modifier & TERMPAINT_MOD_CTRL)
|
||||||
|
|
Loading…
Reference in New Issue