#!/usr/bin/wish

set mamecmd "/usr/games/mame/bin/xmame.x11"
set rom "galaga"
set sl "-sl"
set scl "2"
set sound "-dp esound"
set options "$sound $sl -s $scl"

button .run -text "mame $rom $options" -justify center -width 60 \
				-command {runMame}

proc refreshOptions args {
	global sound options rom sl scl
	set options "$sound $sl -s $scl"
	.run configure -text "mame $rom $options" -command {runMame}
	return 1
}

proc runMame args {
	global mamecmd rom options sound
	eval "exec $mamecmd $rom $options &"
}	

proc searchRom args {
	global mamecmd rom
	.s.searchResults delete 1.0 end
	catch {eval "exec $mamecmd -lf 2>/dev/null | grep -i \"$rom\""} results
	.s.searchResults insert end $results
}	

canvas .r
label .r.romL -text "Rom :"
entry .r.rom -textvariable rom -validate all -validatecommand {eval refreshOptions}
button .r.search  -text "Rechercher" -justify center -command {searchRom}
canvas .s
scrollbar .s.scroll -command ".s.searchResults yview"
text .s.searchResults -wrap word -width 60 -height 5 \
			-yscrollcommand ".s.scroll set"
# options video
canvas .v
checkbutton .v.sl -text "Scan lines" -command {refreshOptions} \
				-variable sl -onvalue "-sl" -offvalue ""
label .v.sclL -text "Echelle :"
entry .v.scl -textvariable scl -width 3
# options de son
canvas .sd
radiobutton .sd.nosnd -text "Muet" -variable sound -value "-nosnd" \
				-justify left -command {refreshOptions}
radiobutton .sd.esound -text "Esound" -variable sound -value "-dp esound" \
				-justify left -command {refreshOptions}
radiobutton .sd.oss -text "OSS" -variable sound -value "-dp oss" \
				-justify left -command {refreshOptions}

pack .r -side top
pack .r.romL .r.rom .r.search -side left
pack .s -side top
pack .s.searchResults .s.scroll -side left -fill y
pack .v -side top
pack .v.sl .v.sclL .v.scl -side left
pack .sd -side top
pack .sd.nosnd .sd.esound .sd.oss -side left
pack .run -side top
 				
	

