From 869b1875f2febe169f5701e41de3e653e7a8343c Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 29 Oct 2015 20:48:49 -0400 Subject: message(): New function --- diff --git a/src/ui.sh b/src/ui.sh index f3243c5..c127034 100644 --- a/src/ui.sh +++ b/src/ui.sh @@ -29,7 +29,7 @@ init_ui() ;; esac - for fn in exit_ui show_menu show_prompt; do + for fn in exit_ui message show_menu show_prompt; do eval "${fn}() { ${ui}_${fn} \"\${@}\"; }" done for fn in dbg info warn err; do diff --git a/src/ui/cli.sh b/src/ui/cli.sh index b341c9e..369694c 100644 --- a/src/ui/cli.sh +++ b/src/ui/cli.sh @@ -16,6 +16,7 @@ # along with this program. If not, see . cli_tty='' +cli_msg='' cli_init_ui() { @@ -53,6 +54,16 @@ cli_err() printf "Error: ${fmt}\n" "${@}" >"${cli_tty}" } +cli_message() +{ + local msg="${1}" + shift 1 + + printf '%s\n\n' "${msg}" >"${cli_tty}" + + return 0 +} + cli_show_menu() { local title="${1}" diff --git a/src/ui/tui.sh b/src/ui/tui.sh index 4aec0d1..75ef4e6 100644 --- a/src/ui/tui.sh +++ b/src/ui/tui.sh @@ -15,6 +15,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +_tui_msg='' + tui_init_ui() { term_init @@ -33,6 +35,16 @@ tui_exit_ui() term_cooked } +tui_message() +{ + local msg="${1}" + shift 1 + + _tui_msg="${msg}" + + return 0 +} + _tui_box() { local w=${1} @@ -43,10 +55,16 @@ _tui_box() local i= local line='' - # Clear the screen and set the cursor position to center the box. + # Reset SGR and clear the screen. term_attr_reset term_clear - y=$(expr \( $(term_lines) - ${h} \) / 2 + 1) + + # Write the persistent message (if any). + term_cursor_position $(expr $(term_lines) - 1) 3 + term_write "${_tui_msg}" + + # Set the cursor position to center the box. + y=$(expr \( $(term_lines) - ${_tui_msg+3} - ${h} \) / 2 + 1) x=$(expr \( $(term_columns) - ${w} \) / 2 + 1) term_cursor_position ${y} ${x} -- cgit v0.9.1