#!/bin/bash

# This example requires bash.

GTKDIALOG=gtkdialog

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

funcbtnType0Create() {
	echo '<button image-position="'$1'" use-stock="true" label="gtk-'$2'">
			<action>""</action>
		</button>'
}

funcbtnType1Create() {
	echo '<button image-position="'$1'">
			<label>'$1'</label>
			<input file stock="gtk-'$2'"></input>
			<action>""</action>
		</button>'
}

funcbtnType2Create() {
	echo '<button image-position="'$1'">
			<label>'$1'</label>
			<variable>btn'$2$1'</variable>
			<input file>'"$TMPDIR"'/image.svg</input>
			<action>echo Refreshing btn'$2$1'</action>
			<action>refresh:btn'$2$1'</action>
		</button>'
}

funcbtnType3Create() {
	echo '<button image-position="'$1'">
			<label>'$1'</label>
			<variable>btn'$2$1'</variable>
			<input file>'"$TMPDIR"'/image.svg</input>
			<width>64</width>
			<action>echo Refreshing btn'$2$1'</action>
			<action>refresh:btn'$2$1'</action>
		</button>'
}

funcimgCreate() {
	echo '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
			<rect x="0" y="0" height="32" width="32" fill="#000000"/>
			<rect x="2" y="2" height="28" width="28" fill="#ffffff"/>
			<rect x="16" y="16" height="12" width="12" fill="#d0d0d0"/>
			<rect x="4" y="16" height="12" width="12" fill="#a0a0a0"/>
			<rect x="4" y="4" height="12" width="12" fill="#707070"/>
			<rect x="16" y="4" height="12" width="12" fill="#404040"/>
			<rect x="18" y="18" height="4" width="4" fill="#ffffff"/>
			<rect x="22" y="18" height="4" width="4" fill="#a0a0a0"/>
			<rect x="22" y="22" height="4" width="4" fill="#707070"/>
			<rect x="18" y="22" height="4" width="4" fill="#404040"/>
		</svg>' > "$TMPDIR"/image.svg
}; export -f funcimgCreate

if [ ! -f "$TMPDIR"/image.svg ]; then funcimgCreate; fi

export MAIN_DIALOG='
<window title="Button Image Position" width-request="500" resizable="false">
	<vbox>
		<frame Stock images (and labels) using GTK properties>
			<hbox homogeneous="true">
				'"`funcbtnType0Create 0 about`"'
				'"`funcbtnType0Create 1 add`"'
				'"`funcbtnType0Create 2 apply`"'
				'"`funcbtnType0Create 3 bold`"'
			</hbox>
		</frame>
		<frame Stock images using Gtkdialog directives>
			<hbox homogeneous="true">
				'"`funcbtnType1Create Left about`"'
				'"`funcbtnType1Create Right add`"'
				'"`funcbtnType1Create Top apply`"'
				'"`funcbtnType1Create Bottom bold`"'
			</hbox>
		</frame>
		<frame Images from files using Gtkdialog directives>
			<hbox homogeneous="true">
				'"`funcbtnType2Create Left Woden`"'
				'"`funcbtnType2Create Right Woden`"'
				'"`funcbtnType2Create Top Woden`"'
				'"`funcbtnType2Create Bottom Woden`"'
			</hbox>
		</frame>
		<frame Scaled images from files using Gtkdialog directives>
			<hbox homogeneous="true">
				'"`funcbtnType3Create Left Frige`"'
				'"`funcbtnType3Create Right Frige`"'
				'"`funcbtnType3Create Top Frige`"'
				'"`funcbtnType3Create Bottom Frige`"'
			</hbox>
		</frame>
		<hbox homogeneous="true">
			<button>
				<label>Remove/Create Image</label>
				<variable>btnimgControl</variable>
				<input file>'"$TMPDIR"'/image.svg</input>
				<width>16</width>
				<action>if [ ! -f '"$TMPDIR"'/image.svg ]; then bash -c funcimgCreate; else rm '"$TMPDIR"'/image.svg; fi</action>
				<action>refresh:btnimgControl</action>
			</button>
			<button ok></button>
		</hbox>
	</vbox>
</window>
'

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