X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=gui;h=fbcbb01e49dce6d7c6e55045c5286e2652411549;hb=refs%2Fheads%2Fpu;hp=e9eb1a86e8fe1ec66c80ee8fb394fec7425cc3d4;hpb=64712f59781b7d1029773b6f555f74c964129040;p=gsu.git diff --git a/gui b/gui index e9eb1a8..fbcbb01 100644 --- a/gui +++ b/gui @@ -95,17 +95,15 @@ gsu_msgbox() _gsu_menu() { - local header="${1:-root}" - local items="$2" - local i opts num=0 + local header=${1:-root} dflt_item=$2 items=$3 + local geom _get_geometry - opts="$result 16" - for i in $items; do - let num++ - opts+=" $i $num" - done - result="$(dialog --menu "$gsu_banner_txt ($header)" $opts 3>&1 1>&2 2>&3 3>&-)" + geom=$result + result="$(dialog --no-lines --no-items \ + --default-item "$dflt_item" \ + --menu "$gsu_banner_txt ($header)" \ + $geom 16 $items 3>&1 1>&2 2>&3 3>&-)" _set_dialog_ret $? } @@ -156,12 +154,14 @@ _get_root_nodes() _browse() { - local header="$1" old_header - local tree="$2" subtree="$3" + local header=$1 tree=$2 + local -a subtree=($3) + local old_header dflt_item=${subtree[0]} while :; do - _gsu_menu "$header" "$subtree" + _gsu_menu "$header" "$dflt_item" "${subtree[*]}" ((ret < 0)) && return + dflt_item=$result [[ -z "$result" ]] && return # menu was cancelled if [[ "${result%/}" != "$result" ]]; then old_header="$header"