#!/bin/sh

GTKDIALOG=gtkdialog

funcRandom() {
	od -An -N2 -tu2 < /dev/urandom
}

funcRGBCreate() {
	local f

	for f in 0 1 2; do
		printf "%02x" $((`funcRandom` % 256))
	done
}

funcExampleCreate() {
	if [ $1 = 0 ]; then echo '
<window title="Expand and Fill - Original Method" resizable="true">'
	elif [ $1 = 1 ]; then echo '
<window title="Expand and Fill - --space-expand" resizable="true">'
	elif [ $1 = 2 ]; then echo '
<window title="Expand and Fill - --space-expand + --space-fill" resizable="true">'
	else echo '
<window title="Expand and Fill - --space-expand + --space-fill + tweaks" resizable="true">'
	fi
	echo '
	<vbox>
		<hbox>
			<tree stock-id="gtk-select-color"><item>tree widget</item></tree>
			<vseparator></vseparator>
			<vbox>
				<entry><default>entry widget</default></entry>
				<hseparator></hseparator>
				<text label="text widget"></text>
			</vbox>
		</hbox>
		<hseparator></hseparator>
		<hbox>
			<vbox>
				<spinbutton></spinbutton>
				<hseparator></hseparator>'
	if [ $1 -lt 3 ]; then echo '
				<colorbutton use-alpha="true">'
	else echo '
				<colorbutton space-expand="false" use-alpha="true">'
	fi
	echo '
					<default>#'`funcRGBCreate`'|43934"</default>
				</colorbutton>
			</vbox>
			<vseparator></vseparator>
			<edit><default>edit widget</default></edit>
		</hbox>
		<hseparator></hseparator>'
	if [ $1 -lt 3 ]; then echo '
		<hbox>'
	else echo '
		<hbox space-expand="false">'
	fi
	echo '
			<button image-position="1">
				<label>Next example</label>
				<input file stock="gtk-go-forward"></input>'
	if [ $1 = 0 ]; then echo '
				<action>'"$GTKDIALOG"' --space-expand=true --program=CLI_EXPAND_METHOD &</action>'
	elif [ $1 = 1 ]; then echo '
				<action>'"$GTKDIALOG"' --space-expand=true --space-fill=true --program=CLI_EXPAND_PLUS_FILL_METHOD &</action>'
	elif [ $1 = 2 ]; then echo '
				<action>'"$GTKDIALOG"' --space-expand=true --space-fill=true --program=CLI_EXPAND_PLUS_FILL_PLUS_TWEAKS_METHOD &</action>'
	else echo '
				<sensitive>false</sensitive>'
	fi
	echo '
			</button>
			<button use-stock="true" label="gtk-ok"></button>
		</hbox>
		<statusbar><label>statusbar widget</label></statusbar>
	</vbox>
</window>
'
}

ORIGINAL_METHOD="$(funcExampleCreate 0)"
export ORIGINAL_METHOD
CLI_EXPAND_METHOD="$(funcExampleCreate 1)"
export CLI_EXPAND_METHOD
CLI_EXPAND_PLUS_FILL_METHOD="$(funcExampleCreate 2)"
export CLI_EXPAND_PLUS_FILL_METHOD
CLI_EXPAND_PLUS_FILL_PLUS_TWEAKS_METHOD="$(funcExampleCreate 3)"
export CLI_EXPAND_PLUS_FILL_PLUS_TWEAKS_METHOD

case $1 in
	-d | --dump)
		echo "$ORIGINAL_METHOD"
		echo "$CLI_EXPAND_METHOD"
		echo "$CLI_EXPAND_PLUS_FILL_METHOD"
		echo "$CLI_EXPAND_PLUS_FILL_PLUS_TWEAKS_METHOD"
		;;
	*) $GTKDIALOG --program=ORIGINAL_METHOD ;;
esac
