#!/usr/bin/env exu
-----------------------------------------------------------
-- Entry.exu Aug.4, 2008
-- Demonstrates:
--	GtkEntry widget, GtkCheckButton, GtkButtonBox, Password
-----------------------------------------------------------

include GtkEngine.e

include dll.e -- for eu function call-backs

constant win = create(GtkWindow)
	connect(win,"destroy",quit)
	set(win,"default size",200,100)
	set(win,"position",GTK_WIN_POS_CENTER)

-----------------------------------------
-- Display the contents of the entry box
-----------------------------------------
function Foo(atom ctl, atom input)
	return Info(win,"Results",sprintf("You entered: %s",{get(input,"Text")}))
end function
constant foo = call_back(routine_id("Foo"))

-----------------------------------------------------------
-- Toggle display-as-password (GTK calls it 'visibility')
-----------------------------------------------------------
function TogglePW(atom ctl, atom input)
 set(input,"visibility",not get(input,"visibility"))
	return 1
end function
constant togglepw = call_back(routine_id("TogglePW"))

constant panel = create(GtkVBox)
	add(win,panel)

constant input = create(GtkEntry)
	set(input,"text","Type here")
	pack(panel,input)

constant ckbox = create(GtkCheckButton,"as _Password")
	connect(ckbox,"clicked",togglepw,input)
	pack(panel,ckbox)

constant btnbox = create(GtkHButtonBox)
	pack(panel,-btnbox)

constant btn1 = create(GtkButton,"gtk-quit")
	connect(btn1,"clicked",quit)

constant btn2 = create(GtkButton,"gtk-ok")
	connect(btn2,"clicked",foo,input)

add(btnbox,{btn1,btn2})

show_all(win)
main()

--------------------------------------------------------------
-- copyright 2008 by Irv Mullins, code released under the LGPL
--------------------------------------------------------------