PRO select_tool_event,event ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This procedure manages events generated by the selectTool GUI ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; common selectblock,selected_items widget_control,event.top,get_uvalue=state widget_control,event.id,GET_UVALUE=uvalue case uvalue of 'help' : begin nl = string(10B) msg = "Select items from the list" + nl if (!d.name eq 'X') then begin msg = msg + nl + 'Holding down the Shift key and clicking an item selects the range ' msg = msg + nl + 'from the previously selected item to the current item.' msg = msg + nl + nl + 'Holding down the mouse button when selecting items' msg = msg + nl + 'also selects a range.' msg = msg +nl + nl + 'Holding down the Control key and clicking an item' msg = msg + nl + 'toggles that item between the selected and unselected state' msg = msg + nl + 'the selected and unselected state.' endif else if (!d.name eq 'WIN') or (!d.name eq 'MAC') then begin msg = msg + nl + 'Holding down the Shift key and clicking an item selects the range ' msg = msg + nl + 'from the previously selected item to the current item. ' msg = msg + nl + nl + 'Holding down the Control key and clicking an item' msg = msg + nl + 'toggles that item between the selected and unselected state.' endif response = DIALOG_MESSAGE(msg,title="Help",/INFO) end 'list' : 'selectall' : begin num_items = WIDGET_INFO(state.listID,/LIST_NUMBER) widget_control,state.listID,set_list_select=lindgen(num_items) end 'complete' : begin selected_items = WIDGET_INFO(state.listID,/LIST_SELECT) sz = size(selected_items) if (sz[0] eq 0) then begin; if scalar if (selected_items eq -1) then begin response = DIALOG_MESSAGE("No items were selected. Exit from program?",/QUESTION) if (strupcase(response) eq "YES") then begin WIDGET_CONTROL,event.top,/DESTROY retall endif endif else WIDGET_CONTROL,event.top,/DESTROY endif else WIDGET_CONTROL,event.top,/DESTROY end else: endcase return end