;+
; NAME:
;	qView_Diff
; PURPOSE:
; CATEGORY:
;	sat/idl/widget/qview
; CALLING SEQUENCE:
	FUNCTION qView_Diff, state
; INPUTS:
; OPTIONAL INPUT PARAMETERS:
; OUTPUTS:
; OPTIONAL OUTPUT PARAMETERS:
; INCLUDE:
	@compile_opt.pro		; On error, return to caller
; CALLS:
; PROCEDURE:
; MODIFICATION HISTORY:
;	OCT-2006, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
;-

widget_control, state.wid_diff, get_uvalue=diff_state, /no_copy	;, value=list

new = widget_info(state.wid_diff, /droplist_select)
old = diff_state.value
;lval = list[new]

sts = old NE new

IF sts THEN BEGIN

	diff_state.value = new

	widget_control, state.wid_view, get_uvalue=wid_qimage, /no_copy 			; qImage widget id

	IF widget_info(wid_qimage, /valid) THEN BEGIN

		widget_control, wid_qimage, get_uvalue=qimage_state, /no_copy			; qImage state
		wid_child = widget_info(qimage_state.wid_qimage_cw, /child)
		widget_control, wid_qimage, set_uvalue=qimage_state, /no_copy

		widget_control, wid_child, get_uvalue=qimage_cw_state, /no_copy 		; qImage_cw state
		widget_control, qimage_cw_state.wid_tool, get_uvalue=qtool_state, /no_copy; qTool state

		diff_state.zlog[old] = qtool_state.send.zlog
		diff_state.fixz[old] = qtool_state.send.fixz
		diff_state.zmin[old] = qtool_state.send.zmin
		diff_state.zmax[old] = qtool_state.send.zmax

		qtool_state.send.zlog = diff_state.zlog[new]
		qtool_state.send.fixz = diff_state.fixz[new]
		qtool_state.send.zmin = diff_state.zmin[new]
		qtool_state.send.zmax = diff_state.zmax[new]

		widget_control, qimage_cw_state.wid_tool, set_uvalue=qtool_state, /no_copy; qTool state
		widget_control, wid_child, set_uvalue=qimage_cw_state, /no_copy

	ENDIF

	widget_control, state.wid_view, set_uvalue=wid_qimage, /no_copy 	; qImage widget id

ENDIF

widget_control, state.wid_diff, set_uvalue=diff_state, /no_copy

RETURN, sts  &  END
