#!/etc/bin/sh
#
#  xcfg, dless-Xwin toolkit v2.1, (C) 1997 Roman Dolejsi - roman@sorry.vse.cz
#

# ------------------------
# Video Card Configuration
# ------------------------

cfg_grcard() {

  dialog --backtitle "$L_COPY" --txts $L_DIALOG \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --infobox "$L_WAIT" 3 25
  rm -f $TEMPM
  CNTR=0
  DFLV=_
  for VIDN in $VCONF/*
  do
    if [ -d "$VIDN" ]; then
      TMP1="`echo $VIDN | cut -f4 -d\"/\"`"
      echo -n "$CNTR \"$TMP1\" " >> $TEMPM
      if [ "$TMP1" = "$V_CHIP" ]; then
        DFLV=$CNTR
      fi
      CNTR=`expr $CNTR + 1`
    fi
  done
  TMP1=$CNTR
  TXSIZY=`echo $TXSIZE | cut -f2 -d"x"`
  if [ "$CNTR" -gt "`expr $TXSIZY - 19`" ]; then
    TMP1=`expr $TXSIZY - 19`
  fi
  echo "dialog --backtitle \"$L_COPY\" --title \"$L_GRCARD\" --txts $L_DIALOG --default "$DFLV" \
               --btext \"$ETH_IP, $LANG, $DEFAULT, $MOUSE\" 2 -2 --btext \"$V_MON, $V_MEM, $V_CHIP, $TXSIZE\" 3 -2 \
               --btext \"$CPUTYPE\" -1 -1 --menu \"$L_GRCTYP\" `expr $TMP1 + 7` 60 `echo $TMP1` `cat $TEMPM`" > $TEMPM2
  . $TEMPM2 2> $TEMPM
  CNTR=0
  if [ -s $TEMPM ]; then
    for VIDN in $VCONF/*
    do
      if [ -d "$VIDN" ]; then
        if [ "$CNTR" = `cat $TEMPM` ]; then
          export V_CHIP="`echo \"$VIDN\" | cut -f4 -d\"/\"`"
        fi
        CNTR=`expr "$CNTR" + 1`
      fi
    done  
  fi

  DFLM=_
  case $V_MEM in
     512) DFLM=0;;1024) DFLM=1;;2048) DFLM=2;;4096) DFLM=4;;8192) DFLM=8;;
  esac
  dialog --backtitle "$L_COPY" --title "$L_GRCARD" --default $DFLM --txts $L_DIALOG \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "$L_GRCMEM" 12 60 5 0 " 512 kB" 1 "1024 kB" 2 "2048 kB" 4 "4096 kB" 8 "8192 kB" 2> $TEMPM
  if [ -s $TEMPM ]; then
    if [ `cat $TEMPM` = "0" ]; then
      export V_MEM=512
    else
      V_MEM=`cat $TEMPM`
      export V_MEM=`expr $V_MEM \* 1024`
    fi
  fi
  rm -f TEMPM2
}

# ---------------------
# Monitor Configuration
# ---------------------

cfg_mon() {

  rm -f $TEMPM
  dialog --backtitle "$L_COPY" --title "$L_MONM" --default $V_MON --txts $L_DIALOG \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "$L_GRCTYP" 17 78 10 vga "$L_MVGA" svga "$L_MSVGA" svga8514 "$L_M8514" \
                  esvga56 "$L_MES56" esvga60 "$L_MES60" nisvga "$L_MNIS" hfsvga "$L_MHFS" mfsvga60 "$L_MMFS60" \
                  mfsvga74 "$L_MMFS74" mfsvga76 "$L_MMFS76" 2> $TEMPM
  if [ -s $TEMPM ]; then
    export V_MON=`cat $TEMPM`
  fi
}

# ------------------------------
# Text screen size Configuration
# ------------------------------

cfg_txc() {

  rm -f $TEMPM
  dialog --backtitle "$L_COPY" --title "$L_TXTMNU" --txts $L_DIALOG --default `echo $TXSIZE | cut -f1 -d"x"` \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "$L_TXTMNX" 11 30 4 80 " 80 x .." 100 "100 x .." 116 "116 x .." 132 "132 x .." 2> $TEMPM
  if [ -s $TEMPM ]; then
    TXTX=`cat $TEMPM`
    if [ "$TXTX" = 100 ]; then
      dialog --backtitle "$L_COPY" --title "$L_TXTMNU" --txts $L_DIALOG --default `echo $TXSIZE | cut -f2 -d"x"` \
             --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
             --btext "$CPUTYPE" -1 -1 --menu "$L_TXTMNY" 9 30 2 30 "$TXTX x 30" 37 "$TXTX x 37" 2> $TEMPM
    else
      dialog --backtitle "$L_COPY" --title "$L_TXTMNU" --txts $L_DIALOG --default `echo $TXSIZE | cut -f2 -d"x"` \
             --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
             --btext "$CPUTYPE" -1 -1 --menu "$L_TXTMNY" 15 30 8 25 "$TXTX x 25" 30 "$TXTX x 30" 32 "$TXTX x 32" \
               34 "$TXTX x 34" 40 "$TXTX x 40" 43 "$TXTX x 43" 50 "$TXTX x 50" 60 "$TXTX x 60" 2> $TEMPM
    fi
    if [ -s $TEMPM ]; then
      clear
      export TXSIZE=$TXTX\x`cat $TEMPM`
      stm -t /tmp/txconf -a $TXSIZE > /dev/null
      setfont /etc/fonts/`cat $VCONF/txfonts | grep $TXSIZE | cut -f1 -d"	"` 2> /dev/null
      kill -9 `cat /tmp/run/gpmpid`
      gpm -m /dev/`echo $MOUSE | cut -f1 -d"_"` -t `echo $MOUSE | cut -f2 -d"_"`
    fi
  fi
}

# -------------------
# Mouse Configuration
# -------------------

cfg_mouse() {

  rm -f $TEMPM
  DFLM=_
  case $MOUSE in
    ttyS0_Microsoft) DFLM=1;;
    ttyS1_Microsoft) DFLM=2;;
    ttyS0_MouseSystems) DFLM=3;;
    ttyS1_MouseSystems) DFLM=4;;
    psaux_PS/2) DFLM=5;;
  esac
  dialog --backtitle "$L_COPY" --title "$L_MOUSE" --txts $L_DIALOG --default $DFLM \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "$L_MOUSET" 12 60 5 \
    1 "COM1 - Microsoft (2 $L_MOUSEB)" 2 "COM2 - Microsoft (2 $L_MOUSEB)" \
    3 "COM1 - Mouse Systems (3 $L_MOUSEB)" 4 "COM2 - Mouse Systems (3 $L_MOUSEB)" \
    5 " AUX - PS/2 Auxiliary Mouse" 2> $TEMPM

  if [ -s $TEMPM ]; then
    choice=`cat $TEMPM`
    case $choice in
      1) export MOUSE=ttyS0_Microsoft;;
      2) export MOUSE=ttyS1_Microsoft;;
      3) export MOUSE=ttyS0_MouseSystems;;
      4) export MOUSE=ttyS1_MouseSystems;;
      5) export MOUSE=psaux_PS/2;;
    esac
    kill -9 `cat /tmp/run/gpmpid`
    gpm -m /dev/`echo $MOUSE | cut -f1 -d"_"` -t `echo $MOUSE | cut -f2 -d"_"`
  fi
}

# ----------------------
# Language Configuration
# ----------------------

cfg_lang() {

  rm -f $TEMPM
  TMP0=
  TMPC=0
  for TMP1 in /etc/lang/*; do
    if [ -f "$TMP1" ]; then
      eval `cat $TMP1`
      TMPC=`expr $TMPC + 1`
      TMP0="$TMP0 `echo $TMP1 | cut -f4 -d/` $L_LANG"
    fi
  done
  eval `cat /etc/lang/$LANG`
  dialog --backtitle "$L_COPY" --title "$L_LANGM" --txts $L_DIALOG --default $LANG \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "$L_LANGS" `expr $TMPC + 7` 60 $TMPC $TMP0 2> $TEMPM

  if [ -s $TEMPM ]; then
    export LANG=`cat $TEMPM`
    eval `cat /etc/lang/$LANG`
  fi
}

# --------------------
# Server Configuration
# --------------------

cfg_server() {

  rm -f $TEMPM
  dialog --backtitle "$L_COPY" --title "$L_LSERV" --txts $L_DIALOG \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --inputbox "($L_DFLT: $DEFAULT).." 9 40 2> $TEMPM
  if [ -s $TEMPM ]; then
    export DEFAULT=`cat $TEMPM`
  fi
}

# -------------------
# Show current config
# -------------------

cfg_current() {

  dialog --backtitle "$L_COPY" --txts $L_DIALOG --title "$L_CFGCUR" \
         --msgbox "\n$L_CFGSIP: $ETH_IP\n$L_CFGSLG: $LANG\n$L_CFGSSR: $DEFAULT\n\
$L_CFGSMS: $MOUSE\n$L_CFGSMN: $V_MON\n$L_CFGSMM: $V_MEM\n$L_CFGSVD: $V_CHIP\n\
$L_CFGTXM: $TXSIZE\n\n$L_CFGTXT\n\n\
$ETH_IP:$LANG:$DEFAULT:$MOUSE:\n$V_MON:$V_MEM:$V_CHIP:$TXSIZE\n" 19 75
}

# -------------------
# Show current config
# -------------------

cfg_loadef() {

dialog --backtitle "$L_COPY" --txts $L_DIALOG --title "$L_CFGDFM" \
           --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
           --btext "$CPUTYPE" -1 -1 --yesno "$L_CFGDFT" 6 60
if [ "$?" = 0 ]; then
  export LANG="$DFL_LANG"; export DEFAULT="$DFL_DEFAULT"; export V_MON="$DFL_V_MON"; export MOUSE="$DFL_MOUSE"
  export V_MEM="$DFL_V_MEM"; export V_CHIP="$DFL_V_CHIP"; eval `cat /etc/lang/$LANG`
  if [ "$TXSIZE" != "$DFL_TXSIZE" ]; then
    clear
    export TXSIZE="$DFL_TXSIZE"
    stm -t /tmp/txconf -a $TXSIZE > /dev/null
    setfont /etc/fonts/`cat $VCONF/txfonts | grep $TXSIZE | cut -f1 -d"	"` 2> /dev/null
  fi
  kill -9 `cat /tmp/run/gpmpid`
  gpm -m /dev/`echo $MOUSE | cut -f1 -d"_"` -t `echo $MOUSE | cut -f2 -d"_"`
fi
}

# ------------------
# main config dialog
# ------------------

mnu_video() {

choice=.
rm -f $TEMPM
LASTSEL=_
while [ "$choice" != "x" ]; do
  dialog --backtitle "$L_COPY" --title "$L_CFGVID" --txts $L_DIALOG --default $LASTSEL \
         --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
         --btext "$CPUTYPE" -1 -1 --menu "" 12 60 5 1 "$L_CFGGRC" 2 "$L_CFGMON" 3 "$L_CFGTXC" \
                  4 "$L_FNT" x "$L_CFGBCK" 2> $TEMPM

  choice=`cat $TEMPM`
  if [ -s $TEMPM ]; then
    LASTSEL=$choice
    case $choice in
      1) cfg_grcard;;
      2) cfg_mon;;
      3) cfg_txc;;
      4) setfont /etc/fonts/`cat $VCONF/txfonts | grep $TXSIZE | cut -f1 -d"	"` 2> /dev/null;;
    esac
  fi
done
LASTSEL=1
choice=1
}

# ------------------
# main config dialog
# ------------------

choice=.
rm -f $TEMPM
LASTSEL=_
while [ "$choice" != "x" ]; do
  if [ "$SOUND" = "no" ]; then
    dialog --backtitle "$L_COPY" --title "$L_CFGCUR" --txts $L_DIALOG --default $LASTSEL \
           --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
           --btext "$CPUTYPE" -1 -1 --menu "" 14 60 7 1 "$L_CFGVID" 2 "$L_CFGMOU" \
             3 "$L_CFGLNG" 4 "$L_CFGDFL" 5 "$L_CFGDFM" w "$L_CFGCUR" x "$L_CFGBCK" 2> $TEMPM
  else
    dialog --backtitle "$L_COPY" --title "$L_CFGCUR" --txts $L_DIALOG --default $LASTSEL \
           --btext "$ETH_IP, $LANG, $DEFAULT, $MOUSE" 2 -2 --btext "$V_MON, $V_MEM, $V_CHIP, $TXSIZE" 3 -2 \
           --btext "$CPUTYPE" -1 -1 --menu "" 15 60 8 1 "$L_CFGVID" 2 "$L_CFGMOU" \
             3 "$L_CFGLNG" 4 "$L_CFGDFL" 5 "$L_CFGDFM" a "$L_CFGSND" w "$L_CFGCUR" x "$L_CFGBCK" 2> $TEMPM
  fi
  choice=`cat $TEMPM`
  if [ -s $TEMPM ]; then
    LASTSEL=$choice
    case $choice in
      1) mnu_video;;
      2) cfg_mouse;;
      3) cfg_lang;;
      4) cfg_server;;
      5) cfg_loadef;;
      a) runaumix;;
      w) cfg_current;;
    esac
  fi
done

rm -f $1
if [ -n "$V_CHIP" ]; then
  echo -n "export V_CHIP=\"$V_CHIP\";" >> $1
fi
if [ -n "$V_MEM" ]; then
  echo -n "export V_MEM=\"$V_MEM\";" >> $1
fi
if [ -n "$V_MON" ]; then
  echo -n "export V_MON=\"$V_MON\";" >> $1
fi
if [ -n "$TXSIZE" ]; then
  echo -n "export TXSIZE=\"$TXSIZE\";" >> $1
fi
if [ -n "$MOUSE" ]; then
  echo -n "export MOUSE=\"$MOUSE\";" >> $1
fi
if [ -n "$LANG" ]; then
  echo -n "export LANG=\"$LANG\";" >> $1
fi
if [ -n "$DEFAULT" ]; then
  echo -n "export DEFAULT=\"$DEFAULT\";" >> $1
fi
echo >> $1
rm -f $TEMPM
