#!/bin/sh

# Copyright (c) 2015-2016, 2018-2019, 2021-2023 Samuel Thibault <samuel.thibault@ens-lyon.org>
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 
# THIS SOFTWARE IS PROVIDED BY Samuel Thibault ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
# EVENT SHALL Samuel Thibault BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
# OF SUCH DAMAGE.

TOOLKIT="$1"
if [ -z "$TOOLKIT" ]
then
  echo "usage: $0 [ gtk2 | gtk3 | gtk4 | pygtk2 | pygtk3 | gtksharp2 | gtksharp3 | winforms | qt4 | qt5 | pyqt4 | pyqt4msg | pyqt5 | pyqt5msg | java | java7 | java8 | java9 | java10 | java11 | java12 | java13 ]"
  exit 1
fi
# Note: could use -Djavax.accessibility.assistive_technologies=org.GNOME.Accessibility.AtkWrapper to force enabling loading jaw
# That can be set via the JAVA_TOOL_OPTIONS environment variable too
case "$TOOLKIT" in
  java) java show_$TOOLKIT & ;;
  java7) /usr/lib/jvm/java-7-openjdk-amd64/bin/java show_java & ;;
  java8) /usr/lib/jvm/java-8-openjdk-amd64/bin/java show_java & ;;
  java9) /usr/lib/jvm/java-9-openjdk-amd64/bin/java show_java & ;;
  java10) /usr/lib/jvm/java-10-openjdk-amd64/bin/java show_java & ;;
  java11) /usr/lib/jvm/java-11-openjdk-amd64/bin/java show_java & ;;
  java12) /usr/lib/jvm/java-12-openjdk-amd64/bin/java show_java & ;;
  java13) /usr/lib/jvm/java-13-openjdk-amd64/bin/java show_java & ;;
  java14) /usr/lib/jvm/java-14-openjdk-amd64/bin/java show_java & ;;
  java15) /usr/lib/jvm/java-15-openjdk-amd64/bin/java show_java & ;;
  java16) /usr/lib/jvm/java-16-openjdk-amd64/bin/java show_java & ;;
  java17) /usr/lib/jvm/java-17-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  java18) /usr/lib/jvm/java-18-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  java19) /usr/lib/jvm/java-19-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  java20) /usr/lib/jvm/java-20-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  java21) /usr/lib/jvm/java-21-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  java22) /usr/lib/jvm/java-22-openjdk-amd64/bin/java -Dassistive_technologies=org.GNOME.Accessibility.AtkWrapper show_java & ;;
  *) ./show_$TOOLKIT & ;;
esac
PID=$!
./look
RES=$?
kill $PID
if [ "$RES" != 0 ]
then
  echo $TOOLKIT failed
fi
exit $RES
