#!/bin/sh

GTKDIALOG=gtkdialog

TMPDIR=/tmp/gtkdialog/examples/"`basename $0`"
mkdir -p "$TMPDIR"

funcbtnCreate() {
	echo '<button image-position="'$3'">
			<label>"'"$2"'"</label>
			<input file stock="'$4'"></input>
			<action>echo "'"$5"' '$1'"</action>
			<action function="'"$6"'">'$1'</action>
		</button>'
}

funcscaType0Create() {
	echo '<'$2'scale width-request="'$3'" height-request="'$4'" range-value="4">
			<variable>'$1'</variable>
			<action>echo "'$1' changed to $'$1'"</action>
		</'$2'scale>
		<'$2'separator></'$2'separator>'
}

funcscaType1Create() {
	echo '<'$2'scale width-request="'$3'" height-request="'$4'"
			range-min="0" range-max="1" range-step="0.1"
			value-pos="3" digits="2" inverted="true">
			<default>0.20</default>
			<variable>'$1'</variable>
			<action>echo "'$1' changed to $'$1'"</action>
			<item>"0.25 | '$5'"</item>
			<item>"0.5  | '$6'"</item>
			<item>"0.75 | '$7'"</item>
		</'$2'scale>
		<'$2'separator></'$2'separator>'
}

funcscaType2Create() {
	echo '<'$2'scale width-request="'$3'" height-request="'$4'"
			range-min="0" range-max="255" range-step="8" value-pos="1"
			block-function-signals="true">
			<variable>'$1'</variable>
			<input>echo 18</input>
			<action>echo "'$1' changed to $'$1'"</action>
			<item>"64 |'$5'|<span fgcolor='"'white'"' bgcolor='"'darkred'"'> 64 </span>"</item>
			<item>"128|'$6'|<span fgcolor='"'white'"' bgcolor='"'darkgreen'"'> 128 </span>"</item>
			<item>"192|'$7'|<span fgcolor='"'white'"' bgcolor='"'darkblue'"'> 192 </span>"</item>
			<output file>'"$TMPDIR"'/outputfile</output>
		</'$2'scale>
		<'$2'box homogeneous="true">
			'"`funcbtnCreate $1 Disable $8 gtk-no Disabling disable`"'
			'"`funcbtnCreate $1 Enable $8 gtk-yes Enabling enable`"'
			'"`funcbtnCreate $1 Refresh $8 gtk-refresh Reloading refresh`"'
			'"`funcbtnCreate $1 Save $8 gtk-save Saving save`"'
		</'$2'box>
		<'$2'separator></'$2'separator>'
}

funcscaType3Create() {
	echo '<'$2'scale width-request="'$3'" height-request="'$4'"
			range-min="0" range-max="123" range-step="1"
			draw-value="false" show-fill-level="true" fill-level="56"
			restrict-to-fill-level="true" update-policy="1">
			<variable>'$1'</variable>
			<input file>'"$TMPDIR"'/inputfile</input>
			<action signal="value_changed">echo "'$1' changed to $'$1'"</action>
			<output file>'"$TMPDIR"'/outputfile</output>
		</'$2'scale>
		<'$2'box homogeneous="true">
			'"`funcbtnCreate $1 Disable $5 gtk-no Disabling disable`"'
			'"`funcbtnCreate $1 Enable $5 gtk-yes Enabling enable`"'
			'"`funcbtnCreate $1 Refresh $5 gtk-refresh Reloading refresh`"'
			'"`funcbtnCreate $1 Save $5 gtk-save Saving save`"'
		</'$2'box>'
}

if [ ! -f "$TMPDIR"/inputfile ]; then
	echo "44" > "$TMPDIR"/inputfile
fi

MAIN_DIALOG='
<window title="VScale Advanced" resizable="false">
	<vbox>
		<hbox>
			<frame vscale widget>
				<hbox>
					'"`funcscaType0Create vscVScale0 v 50 410`"'
					'"`funcscaType1Create vscVScale1 v 50 410 1 1 1`"'
					'"`funcscaType2Create vscVScale2 v -1 410 0 1 0 2`"'
					'"`funcscaType3Create vscVScale3 v 50 410 2`"'
				</hbox>
			</frame>
		</hbox>
		<hbox homogeneous="true">
			<button ok></button>
		</hbox>
	</vbox>
</window>
'
export MAIN_DIALOG

case $1 in
	-d | --dump) echo "$MAIN_DIALOG" ;;
	*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac
