pro DIcal_GUI

;;-----------------------------------------------------------------------------
;; PURPOSE:
;;	Runs a GUI front end to the Deep Impact image calibration tool. 
;;
;; CALLING SEQUENCE:
;;	DIcal_GUI
;;
;; REQUIRED INPUTS:
;;
;; OUTPUTS:
;;
;; OPTIONAL INPUT KEYWORDS:
;;
;; EXAMPLE:
;;      IDL> DIcal_GUI
;;
;; PROCEDURES USED (i.e. called directly!):
;;
;; MODIFICATION HISTORY:
;;   2004-07-27  M. Desnoyer    Created
;;
;;-----------------------------------------------------------------------------

@version

;; Create the main container
main = widget_base(mbar=menu, title='Deep Impact Calibration Utility v'+string(version,format='(F4.2)'), row=2, $
	uname='main', uvalue={guiOptions})

;; Create the menu bar
file_menu = widget_button(menu, value='File', /MENU)
open_but = widget_button(file_menu, value='Open...', uname='openbut')
close_but = widget_button(file_menu, value='Close', uname='closebut')
cal_but = widget_button(file_menu, value='Calibrate', uname='calbut', $
	/separator)
reset_but = widget_button(file_menu, value='Reset', uname='resetbut')
exit_but = widget_button(file_menu, value='Exit', uname='exitbut', $
	/separator)
display_menu = widget_button(menu, value='Display', /MENU)
colchange_but = widget_button(display_menu, value='Change Colors...', $
	uname='colchangebut')
help_menu = widget_button(menu, value='Help', /HELP, /MENU)
modhelp_but = widget_button(help_menu, value='Module Help', uname='modhelp')
about_but = widget_button(help_menu, value='About...', uname='aboutbut')

;; Create the container for module manipulation
modCont = widget_base(main, column=2)

;; Create the list of modules
modList = widget_list(modCont, uname='modlist', ysize=17, $
	value='*Calibrate Temps & Voltages')

;; Create the section to choose options for each module
maingeom = widget_info( main, /geometry)
listgeom = widget_info( modList, /geometry)
optionPane = widget_base(modCont, xsize=(maingeom.xsize-listgeom.xsize)>300, $
	/base_align_center, /column, uname='optionpane', /align_center)
ena = cw_bgroup(optionPane, ['Module Enabled'], uname='ena', /nonexclusive)
widget_control, ena, map=0

gui_reset, main
 
widget_control, main, /realize

xmanager, 'optionPane', optionPane, /just_reg, event_handler='gui_optEvent'
xmanager, 'dical_gui', main, /no_block, event_handler='gui_event'

END