#!/usr/bin/env bash
# winezgui-settings-winearch
winezgui-settings-wine-arch()
{
  HEADER="$(basename ${0}): ${FUNCNAME[0]}"
    
  SOURCE "script-check-variables-loaded-or-not"
  script-check-variables-loaded-or-not
  dbug "I: $(basename ${0}): Launched ${FUNCNAME[0]}"
  CURRENT_ARCH=${WINEARCH}

  # For Zenity 4
  ZENITY_VERSION=$(${ZENITY_CMD} --version|cut -f1 -d ".")
  if [ "${ZENITY_VERSION}" -eq 4 ]; then
       WINDOW_HEIGHT=300
       WINDOW_WIDTH=500
  else
       WINDOW_HEIGHT=240
       WINDOW_WIDTH=360
  fi

  WINEARCH_OPTION=$(${ZENITY_CMD} --title "${APP_WITH_VER}" \
                           --list   --hide-header    \
                           --width=${WINDOW_WIDTH}   \
                           --height=${WINDOW_HEIGHT} \
                           --radiolist --column " "  \
                           --column "Action"         \
                                  0 "win32"          \
                                  0 "win64"          \
                           --text   "Set winearch...")
  
  if [ -z "${WINEARCH_OPTION}" ]; then
          echo "Cancelled!"
          return 1
  fi

  dbug "I: ${HEADER}: Selected ${WINEARCH_OPTION}!"

  if [ "${WINEARCH_OPTION}" = "win32" ]; then
          dbug "I: ${HEADER}: winearch set to 32 bit"
          # Change values in Settings
          if [ $(grep "arch:" "${SETTINGS_FILE}") ]; then
              sed "s|arch:.*|arch:win32|g" -i "${SETTINGS_FILE}"
          else
              if [ -w "${SETTINGS_FILE}" ]; then # update Settings
                  echo "arch:win32" >> "${SETTINGS_FILE}" 
              else
                  echo "Cannot write to ${SETTINGS_FILE}"
              fi
          fi
          export WINEARCH="win32" # Runtime update
  
  fi
  
  if [ "${WINEARCH_OPTION}" = "win64" ]; then
          dbug "I: ${HEADER}: winearch set to 64 bit"
          # If grep can get value from Settings then replace else add it
          if [ $(grep "arch:" "${SETTINGS_FILE}") ]; then
              sed "s|arch:.*|arch:win64|g" -i "${SETTINGS_FILE}"
          else
              if [ -w "${SETTINGS_FILE}" ]; then
                  echo "arch:win64" >> "${SETTINGS_FILE}"
              else
                  echo "Cannot write to ${SETTINGS_FILE}"
              fi
          fi
          export WINEARCH="win64"
  fi
  
  # Update Wine arch in About.yml
  export WINE_TEMPLATE="${TEMPLATES_DIR}/WineZGUI-${WINEARCH}"
  SOURCE "winezgui-initialize-wineprefix"
  winezgui-initialize-wineprefix "${WINE_TEMPLATE}"
 
  sed "s|Wine Arch:.*|Wine Arch:${WINEARCH}|g" -i "${ABOUTFILE}"
  
  if [ "${CURRENT_ARCH}" != "${WINEARCH}" ]; then
          ${ZENITY_CMD} --question --title "${APP_WITH_VER} - Wine Arch Changed!"\
              --text "Change Prefix Template to ${WINEARCH}?"
          ANSWER=$?
  
          if [ -z "${ANSWER}" ] || [ ${ANSWER} -eq 1 ]; then
              unset TEXT
              TEXT+="<b>Warning: All newly created prefixes will not work!!</b>\n"
              TEXT+="Make sure to change template for ${WINEARCH} to work!"
              ${ZENITY_CMD} --warning --text "${TEXT}"
              echo "Cancelled!"
              unset TEXT
          fi
  
          if [ ${ANSWER} -eq 0 ]; then
              SOURCE "winezgui-template-change"
              winezgui-template-change
          fi
  
  fi

  return 0
}
