main(!IO) :-
	mtcltk.main(
		    pred(TkVersteher::in, I::di, O::uo) is det :-
	                 aufgabe(TkVersteher, I, O),
		    ["Tasten"],
		    !IO).

:-pred aufgabe(tcl_interp, io, io).
:-mode aufgabe(in, di, uo) is det.
aufgabe(TkVersteher, !IO) :-
	GesamtCockpit = mtk_core.root_window,
	configure(TkVersteher,
		  GesamtCockpit,
		  [height(40), width(400), background("green"), padx(50), pady(10)],
		  !IO),
	bildeTaste(":-0", "yellow", TkVersteher, GesamtCockpit, GelbeTaste, !IO),
	bildeTaste(":-o", "red", TkVersteher, GesamtCockpit, RoteTaste, !IO),
	bildeTaste(";-)", "blue", TkVersteher, GesamtCockpit, BlaueTaste, !IO),
	mtk.pack(TkVersteher,
		 [pack(GelbeTaste, []), pack(RoteTaste, []), pack(BlaueTaste, [])],
		 !IO).

:-pred bildeTaste(string, string, tcl_interp, widget, widget, io, io).
:-mode bildeTaste(in, in, in, in(toplevel), out, di, uo) is det.
bildeTaste(Beschriftung, Farbe, TkVersteher, GesamtCockpit, Taste, !IO) :-
	mtk.button(TkVersteher,
		   [text(Beschriftung), background(Farbe), active_background(Farbe), padx(50)],
		   GesamtCockpit,
		   Taste,
		   !IO),
	configure(TkVersteher, Taste, [command(meldeFarbe(Taste))], !IO).

:-pred meldeFarbe(widget, tcl_interp, io, io).
:-mode meldeFarbe(in(button), in, di, uo) is det.
meldeFarbe(Taste, TkVersteher, !IO) :-
	cget_string(TkVersteher, Taste, "background", HgFarbe, !IO),
	io.write_string("klicked: '-background "++HgFarbe++"'", !IO), nl(!IO).

