#!/bin/bash

# xmahjongg-launcher by JakeSFR'2020, GNU GPL v2 applies

export TEXTDOMAIN=xmahjongg-launcher
export OUTPUT_CHARSET=UTF-8

APPNAME="XMahjongg Launcher"
export CONFFILE="${XDG_CONFIG_HOME}/xmahjongg-launcher.conf"

DATA_DIR="/usr/share/xmahjongg"
BACKGROUNDS="${DATA_DIR}/backgrounds"
LAYOUTS="${DATA_DIR}/layouts"
TILESETS="${DATA_DIR}/tiles"
ICON="/usr/share/pixmaps/xmahjongg.png"

# Defaults
varBACKGROUND="default.gif"
varTILESET="real.gif"
varLAYOUT="default"
varRANDOM="true"
varBOARD=0

# Load settings
if [ -e "$CONFFILE" ]; then
. "$CONFFILE"
fi

save_settings() {
cat > "$CONFFILE" << EOF
varBACKGROUND="$varBACKGROUND"
varTILESET="$varTILESET"
varLAYOUT="$varLAYOUT"
varRANDOM="$varRANDOM"
varBOARD="$varBOARD"
EOF

}
export -f save_settings

# -----------------------------------------------------------------------------

echo '
<window title="'${APPNAME}'" image-name="'${ICON}'" resizable="false">
	<vbox>
		<vbox>
			<frame '$(gettext "Background")'>
				<hbox>
					<comboboxtext space-expand="true" space-fill="true">
						<variable>varBACKGROUND</variable>
						<default>'${varBACKGROUND}'</default>
						<input>find "'${BACKGROUNDS}'" -type f -printf "%P\n" | sort -V</input>
						<action>save_settings</action>
					</comboboxtext>
					<button tooltip-text="'$(gettext "Browse Backgrounds")'" space-fill="false" space-expand="false">
						<input file stock="gtk-directory"></input>
						<action>defaultrox "'${BACKGROUNDS}'"</action>
					</button>
				</hbox>
			</frame>
			<frame '$(gettext "Tileset")'>
				<hbox>
					<comboboxtext space-expand="true" space-fill="true">
						<variable>varTILESET</variable>
						<default>'${varTILESET}'</default>
						<input>find "'${TILESETS}'" -type f -printf "%P\n" | sort -V</input>
						<action>save_settings</action>
					</comboboxtext>
					<button tooltip-text="'$(gettext "Browse Tilesets")'" space-fill="false" space-expand="false">
						<input file stock="gtk-directory"></input>
						<action>defaultrox "'${TILESETS}'"</action>
					</button>
				</hbox>
			</frame>
		</vbox>
		<frame '$(gettext "Layout")'>
			<hbox>
				<comboboxtext space-expand="true" space-fill="true">
					<variable>varLAYOUT</variable>
					<default>'${varLAYOUT}'</default>
					<input>find "'${LAYOUTS}'" -type f -printf "%P\n" | sort | sort -V</input>
					<action>save_settings</action>
				</comboboxtext>
					<button tooltip-text="'$(gettext "Browse Layouts")'" space-fill="false" space-expand="false">
						<input file stock="gtk-directory"></input>
						<action>defaultrox "'${LAYOUTS}'"</action>
					</button>
			</hbox>
		</frame>
		
		<hbox>
			<text>
				<label>'$(gettext "Board number:")' </label>
			</text>
			<spinbutton range-min="0" range-max="2147483647" range-step="1">
				<variable>varBOARD</variable>
				<default>'${varBOARD}'</default>
				<action>save_settings</action>
			</spinbutton>
			<text space-fill="true" space-expand="true"><label>""</label></text>
			<checkbox>
				<variable>varRANDOM</variable>
				<default>'${varRANDOM}'</default>
				<label>'$(gettext "Random")'</label>
				<action>if true disable:varBOARD</action>
				<action>if false enable:varBOARD</action>
				<action>save_settings</action>
			</checkbox>
		</hbox>

		<hseparator></hseparator>

		<hbox homogeneous="true" space-fill="true" space-expand="true">
			<button image-position="2">
				<label>'$(gettext "Play")'</label>
				<input file stock="gtk-select-color"></input>
				<action>[ "$varRANDOM" != "true" ] && OPT="-n $varBOARD" || OPT=""; xmahjongg --bg "'${BACKGROUNDS}'/${varBACKGROUND}" -t "'${TILESETS}'/${varTILESET}" -l "'${LAYOUTS}'/${varLAYOUT}" ${OPT}</action>
			</button>
			<button image-position="2">
				<label>'$(gettext "Quit")'</label>
				<input file stock="gtk-quit"></input>
			</button>
		</hbox>

	</vbox>

	<action signal="show" condition="active_is_true(varRANDOM)">disable:varBOARD</action>
</window>
' | gtkdialog -s
