greatly improved the rdiff wizard. added default option to menu in easydialog.
[matthijs/upstream/backupninja.git] / handlers / easydialog.sh
index ce7d31eefcae6ad7fba7d0e296bbf62914fb8586..b96a5c1df5c511f11f6ae3c21d8b5292d6f883fd 100644 (file)
@@ -81,15 +81,20 @@ _genericListBox() {
     local temp=$(mktemp -t) || exit 1
     trap "rm -f $temp" 0
     REPLY=
-    $DIALOG $HELP --backtitle "$BACKTITLE" --title "$title" \
+    $DIALOG $HELP $_DEFAULT --backtitle "$BACKTITLE" --title "$title" \
         $box "$text" $HEIGHT $WIDTH 10 \
        "$@" 2> $temp
     local status=$?
     [ $status = 0 ] && REPLY=$(_listReplyHook $temp $box)
     rm -f $temp
+    _DEFAULT=
     return $status
 }
 
+setDefault() {
+  _DEFAULT="--default-item $1"
+}
+
 menuBox() {
     _genericListBox --menu "$@"
 }
@@ -164,19 +169,20 @@ displayForm() {
     
    local form=
    local xpos=1
-   for ((i=0; i < $_form_items ; i++)); do
-      label=${_form_labels[$i]}
-      text=${_form_text[$i]}
-      if [ "$text" == "" ]; then
-         text='_empty_'
-      fi
-      form=`echo -e "$form $label $xpos 1" $text "$xpos $max_length 30 30"`
-      let "xpos += _form_gap"
-   done
-
-   $DIALOG --form "$_form_title" 0 0 20 $form 2> $temp
+   (
+      echo -n -e "--form '$_form_title' 0 0 20"
+      for ((i=0; i < $_form_items ; i++)); do
+        label=${_form_labels[$i]}
+        text=${_form_text[$i]}
+#        if [ "$text" == "" ]; then
+#           text='_empty_'
+#        fi
+        echo -n -e "$form $label $xpos 1 '$text' $xpos $max_length 30 30"
+        let "xpos += _form_gap"
+      done
+   ) | xargs $DIALOG 2> $temp
    local status=$?
-   [ $status = 0 ] && REPLY=$(cat $temp)
+   [ $status = 0 ] && REPLY=`cat $temp`
    rm -f $temp
    return $status
 }