Browse Source

Add about msg

master
cancel 6 years ago
parent
commit
60c5954528
  1. 47
      tui_main.c

47
tui_main.c

@ -1447,20 +1447,62 @@ enum {
Main_menu_controls, Main_menu_controls,
Main_menu_save, Main_menu_save,
Main_menu_save_as, Main_menu_save_as,
Main_menu_about,
}; };
void push_main_menu() { void push_main_menu() {
Qmenu* qm = qmenu_create(Main_menu_id); Qmenu* qm = qmenu_create(Main_menu_id);
qmenu_add_choice(qm, "Save", Main_menu_save); qmenu_add_choice(qm, "Save", Main_menu_save);
// qmenu_add_choice(qm, "Save As...", Main_menu_save_as); qmenu_add_choice(qm, "Save As...", Main_menu_save_as);
qmenu_add_spacer(qm); qmenu_add_spacer(qm);
qmenu_add_choice(qm, "Controls...", Main_menu_controls); qmenu_add_choice(qm, "Controls...", Main_menu_controls);
qmenu_add_choice(qm, "About...", Main_menu_about);
qmenu_add_spacer(qm); qmenu_add_spacer(qm);
qmenu_add_choice(qm, "Quit", Main_menu_quit); qmenu_add_choice(qm, "Quit", Main_menu_quit);
qmenu_push_to_nav(qm); qmenu_push_to_nav(qm);
qblock_set_title(&qm->qblock, "ORCA"); qblock_set_title(&qm->qblock, "ORCA");
} }
void push_about_msg() {
// clang-format off
static char const* logo[] = {
"lqqqk|lqqqk|lqqqk|lqqqk",
"x x|xqqqu|x |lqqqu",
"mqqqj|m j|mqqqj|mqqqj",
};
static char const* footer =
"Live Programming Environment";
// clang-format on
int cols = (int)strlen(logo[0]);
int hpad = 2;
int tpad = 2;
int bpad = 1;
int sep = 1;
int rows = (int)ORCA_ARRAY_COUNTOF(logo);
int footer_len = (int)strlen(footer);
int width = footer_len;
if (cols > width)
width = cols;
width += hpad * 2;
int logo_left_pad = (width - cols) / 2;
int footer_left_pad = (width - footer_len) / 2;
Qmsg* qm = qmsg_push(tpad + rows + sep + 1 + bpad, width);
WINDOW* w = qmsg_window(qm);
for (int row = 0; row < rows; ++row) {
wmove(w, row + tpad, logo_left_pad);
wattrset(w, A_BOLD);
for (int col = 0; col < cols; ++col) {
char c = logo[row][col];
chtype ch = c == '|' ? (ACS_VLINE | (chtype)fg_bg(C_black, C_natural) | A_BOLD)
: (NCURSES_ACS(c) | A_BOLD);
waddch(w, ch);
}
}
wattrset(w, A_DIM);
wmove(w, tpad + rows + sep, footer_left_pad);
wprintw(w, footer);
}
void push_controls_msg() { void push_controls_msg() {
struct Ctrl_item { struct Ctrl_item {
char const* input; char const* input;
@ -1852,6 +1894,9 @@ int main(int argc, char** argv) {
case Main_menu_controls: case Main_menu_controls:
push_controls_msg(); push_controls_msg();
break; break;
case Main_menu_about:
push_about_msg();
break;
case Main_menu_save: { case Main_menu_save: {
try_save_with_msg(&ged_state); try_save_with_msg(&ged_state);
} break; } break;

Loading…
Cancel
Save