FUNCTION qImage_cw_Tool, state, event, update=update

;+
; NAME:
;	qImage_cw_Tool
; PURPOSE:
;	Handles zooming and rebinning in qImage_cw
; CATEGORY:
;	sat/idl/widget/qimage_cw
; CALLING SEQUENCE:
;	qImage_cw_Tool, state, event
; INPUTS:
; OPTIONAL INPUT PARAMETERS:
; OUTPUTS:
; OPTIONAL OUTPUT PARAMETERS:
; INCLUDE:
	@compile_opt.pro		; On error, return to caller
; CALLS:
;	IsType
; PROCEDURE:
; MODIFICATION HISTORY:
;	JUL-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
;-

InitVar, update, /key

set_image_value = 1

CASE update OF

0: BEGIN

	event_name = tag_names(event, /structure_name)

	CASE event_name EQ 'QTOOL_SEND' OF

	0: BEGIN						; Event from state.wid_tool button

		widget_control, state.wid_tool, get_uvalue=tool_state, /no_copy
		qTool, group=event.handler, state=tool_state, destroy=1-event.select
		widget_control, state.wid_tool, set_uvalue=tool_state, /no_copy

	END

	1: BEGIN

		widget_control, state.wid_tool, get_uvalue=tool_state, /no_copy

		event_old = tool_state.send
		tool_state.send   = event 	; Event from qTool widget
		;tool_state.update = 1

		widget_control, state.wid_tool, set_uvalue=tool_state, /no_copy

		set_image_value = 0

		CASE event.on OF
		0: widget_control, state.wid_tool, set_button=0
		1: BEGIN
			CASE event.update OF
			 1	: qImage_cw_Update, state, /no_zupdate
			 2	: qImage_cw_ctable, state
			 3	: 
			 4	: BEGIN
				qImage_cw_Box, state, /fullsize
				qImage_cw_Update, state
			END
			 5	: qImage_cw_Histogram, state, event
			 6	: set_image_value = ((1-event.fixz AND (event_old.fixz NE event.fixz))	$
									OR (event.fixz AND event.zmin LT event.zmax))
			 7	: set_image_value = 1
			 8	: set_image_value = 1
			 9	: set_image_value = event.fixz AND event.zmin LT event.zmax
			10	: set_image_value = event.fixz AND event.zmin LT event.zmax
			ELSE: set_image_value = 1
			ENDCASE
		END
		ENDCASE
	END

	ENDCASE 

END

1: BEGIN

	widget_control, state.wid_tool, get_uvalue=tool_state, /no_copy
	qTool, state=tool_state, /update
	widget_control, state.wid_tool, set_uvalue=tool_state, /no_copy

END

ENDCASE

RETURN, set_image_value  &  END
