------------------------------------------
-- Menu Oct 20
-- Demonstrates Menus & FileChooserDialog
------------------------------------------
include GtkEngine.e
include GtkRoutines.e
include GtkEnums.e
include dll.e

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

------------------------------------------
function ShowAbout()
------------------------------------------
	junk = Info(win,"About","About this program...")
return 1
end function
constant show_about = call_back(routine_id("ShowAbout"))

-----------------------------------------------------------
function OpenFile()
-----------------------------------------------------------
object filename
object dlg = create(GtkFileChooserDialog,GTK_FILE_CHOOSER_ACTION_OPEN)
	set(dlg,"add button","gtk-cancel",GTK_BUTTONS_CANCEL)
	set(dlg,"add button","gtk-ok",GTK_BUTTONS_OK)
	if run(dlg) = GTK_BUTTONS_OK then
		filename = get(dlg,"get_filename")
		junk = Info(win,"Info","You chose: " & filename)
	end if
return 1
end function
constant open_file = call_back(routine_id("OpenFile"))

---------------------------------------------------------
function QuitCheck()
---------------------------------------------------------
if Question(win,"Question","Do you really want to quit?") = YES then
	call(quit)
end if
return 1
end function
constant quit_check = call_back(routine_id("QuitCheck"))

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

constant menu = create(GtkMenuBar)
	pack(panel,menu)

constant menuitem1 = create(GtkMenuItem,"_File"),
 filemenu = create(GtkMenu),
	fileopen = create(GtkImageMenuItem,"gtk-open"),
	fileclose = create(GtkImageMenuItem,"gtk-close"),
	filesep = create(GtkSeparatorMenuItem),
	fileexit = create(GtkImageMenuItem,"gtk-quit")
	
	connect(fileopen,"activate",open_file)
	connect(fileexit,"activate",quit_check)
	
	set(filemenu,"append",fileopen)
	set(filemenu,"append",fileclose)
	set(filemenu,"append",filesep)
	set(filemenu,"append",fileexit)
	set(menuitem1,"submenu",filemenu)
	set(menu,"append",menuitem1)

constant menuitem2 = create(GtkMenuItem,"_Edit"),
	editmenu = create(GtkMenu),
		editstuff = create(GtkTearoffMenuItem),
		editcopy = create(GtkImageMenuItem,"gtk-copy"),
		editpaste = create(GtkImageMenuItem,"gtk-paste")
	set(editmenu,"append",editstuff)
	set(editmenu,"append",editcopy)
	set(editmenu,"append",editpaste)
	set(menuitem2,"submenu",editmenu)
	set(menu,"append",menuitem2)

constant menuitem3 = create(GtkImageMenuItem,"gtk-help"),
	helpmenu = create(GtkMenu),
		helpabout = create(GtkImageMenuItem,"gtk-about")
		connect(helpabout,"activate",show_about)
	set(helpmenu,"append",helpabout)
	set(menuitem3,"submenu",helpmenu)
	set(menu,"append",menuitem3)

show_all(win)
main()

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