From 766225df49bac22581d121e7962c5613d2a0006c Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 30 Oct 2015 16:54:49 -0400 Subject: tui_show_menu(): Add a Cancel button --- diff --git a/src/ui/tui.sh b/src/ui/tui.sh index 85f2fe1..0aca904 100644 --- a/src/ui/tui.sh +++ b/src/ui/tui.sh @@ -203,6 +203,9 @@ tui_show_menu() w=$(expr ${#label} + 6) fi done + if [ ${w} -lt 17 ]; then + w=17 + fi lsth=${#} h=$(($lsth + 8)) if [ ${h} -gt $(term_lines) ]; then @@ -229,8 +232,8 @@ tui_show_menu() # Event loop. while :; do - # Draw a button. - term_cursor_position $(($y + $h - 2)) $(($x + $w - 6)) + # Draw buttons. + term_cursor_position $(($y + $h - 2)) $(($x + $w - 15)) if [ ${focus} -eq 1 ]; then term_attr_on reverse term_write '[OK]' @@ -238,6 +241,14 @@ tui_show_menu() else term_write '[OK]' fi + term_write ' ' + if [ ${focus} -eq 2 ]; then + term_attr_on reverse + term_write '[Cancel]' + term_attr_off reverse + else + term_write '[Cancel]' + fi # Draw a box. term_cursor_position $(($y + 3)) $(($x + 2)) @@ -292,7 +303,7 @@ tui_show_menu() # Input. key="$(term_getch)" if [ "x${key}" = xKEY_TAB ]; then - focus=$(expr \( ${focus} + 1 \) % 2) + focus=$(expr \( ${focus} + 1 \) % 3) elif [ ${focus} -eq 0 ]; then case "${key}" in KEY_ENTER) break;; @@ -326,6 +337,10 @@ tui_show_menu() case "${key}" in KEY_ENTER | KEY_SPACE) break;; esac + elif [ ${focus} -eq 2 ]; then + case "${key}" in + KEY_ENTER | KEY_SPACE) return 1;; + esac fi done -- cgit v0.9.1