#!/bin/sh

GTKDIALOG=gtkdialog

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

## Create a custom style for specific widgets.
funcgtkrcCreate() {
	IMAGEFILE="`find /usr/share/pixmaps -maxdepth 1 -type f | head -1`"

	echo '
style "styleBgGreen" {
	bg[NORMAL] = "#00a000"
}
style "styleBgBlue" {
	bg[NORMAL] = "#0000a0"
}

pixmap_path "'"`dirname $IMAGEFILE`"'"

style "styleBgPixmap" {
	bg_pixmap[NORMAL] = "'"`basename $IMAGEFILE`"'"
}
widget "*BgGreen" style "styleBgGreen"
widget "*BgBlue" style "styleBgBlue"
widget "*BgPixmap" style "styleBgPixmap"
' > "$TMPDIR"/.gtkrc-2.0

	GTK2_RC_FILES="$TMPDIR"/.gtkrc-2.0:~/.gtkrc-2.0
	export GTK2_RC_FILES

}; funcgtkrcCreate

funcSignalsCreate() {
	echo '<action signal="button-press-event">echo "'$1' - button-press-event"</action>
		<action signal="button-release-event">echo "'$1' - button-release-event"</action>
		<action signal="configure-event">echo "'$1' - configure-event"</action>
		<action signal="enter-notify-event">echo "'$1' - enter-notify-event"</action>
		<action signal="leave-notify-event">echo "'$1' - leave-notify-event"</action>
		<action signal="focus-in-event">echo "'$1' - focus-in-event"</action>
		<action signal="focus-out-event">echo "'$1' - focus-out-event"</action>
		<action signal="hide">echo "'$1' - hide"</action>
		<action signal="key-press-event">echo "'$1' - key-press-event"</action>
		<action signal="key-release-event">echo "'$1' - key-release-event"</action>
		<action signal="map-event">echo "'$1' - map-event"</action>
		<action signal="unmap-event">echo "'$1' - unmap-event"</action>
		<action signal="show">echo "'$1' - show"</action>
		<action signal="realize">echo "'$1' - realize"</action>'
}

MAIN_DIALOG='
<window title="EventBox">
	<vbox>
		<hbox homogeneous="true">
			<eventbox name="BgGreen" above-child="false" visible-window="true">
				<button image-position="2" stock-icon-size="5"
					border-width="50" can-focus="false">
					<label>"Move the mouse,
click around and
watch events in
the terminal."</label>
					<input file stock="gtk-dialog-info"></input>
					<action>echo "Button0 - click"</action>
					'$(funcSignalsCreate Button0)'
				</button>
				'$(funcSignalsCreate EventBox0)'
			</eventbox>
			<eventbox name="BgBlue" above-child="true" visible-window="true">
				<button image-position="2" stock-icon-size="5"
					border-width="50" can-focus="false">
					<label>"above-child=true
causes all events
to be received
by the eventbox."</label>
					<input file stock="gtk-dialog-authentication"></input>
					<action>echo "Button1 - click"</action>
					'$(funcSignalsCreate Button1)'
				</button>
				'$(funcSignalsCreate EventBox1)'
			</eventbox>
		</hbox>
		<hbox>
			<eventbox name="BgPixmap" above-child="false" visible-window="true">
				<text xpad="50" ypad="50" use-markup="true">
					<label>"<span fgcolor='"'white'"' bgcolor='"'black'"'>The eventbox widget has its own window which
you can paint with colour or tile with pixmaps.</span>"</label>
				</text>
				'$(funcSignalsCreate EventBox2)'
			</eventbox>
		</hbox>
		<hbox homogeneous="true" space-expand="false" space-fill="false">
			<button use-stock="true" label="gtk-quit">
			</button>
		</hbox>
	</vbox>
</window>
'
export MAIN_DIALOG

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