Pro thm_ui_npar0_event, event
common thm_ui_npar0_private, value_sav
If(TAG_NAMES(event, /STRUCTURE_NAME) EQ 'WIDGET_KILL_REQUEST') Then Begin
value_sav = 'Cancelled'
widget_control, event.top, /destroy
Return
Endif
widget_control, event.id, get_uval = uval
If(uval Eq 'YES') Then Begin
widget_control, event.top, /destroy
Endif Else If(uval Eq 'NO') Then Begin
value_sav = 'Cancelled'
widget_control, event.top, /destroy
Endif Else Begin
j = fix(strmid(uval, 4))
widget_control, event.id, get_val = temp_string
value_sav[j] = temp_string
Endelse
Return
End
Pro thm_ui_rad_event, event
common thm_ui_npar0_private, value_sav
widget_control, event.id, get_value = value
value_sz = size(value_sav, /dimensions)
value_sav(value_sz-1) = value
Return
End
Pro thm_ui_npar0, name, init_value, radio_array=radio_array, radio_value=radio_value,$
title=title
if strlen(title) gt 1 then $
master = widget_base(/col, title = title, /tlb_kill_request_events)$
else master = widget_base(/col, title = 'Input Values', /tlb_kill_request_events)
n = n_elements(name)
listw = intarr(n)
For j = 0, n-1 Do Begin
uvalj = 'LIST'+strcompress(/remove_all, j)
listid = widget_base(master, /row, /align_center)
if name[j] ne '' then flabel = widget_label(listid, value = name[j])
if init_value[j] ne '' then listw[j] = widget_text(listid, $
value = init_value[j], $
xsiz = max(strlen(init_value[j]))+20, $
ysiz = 1, uval = uvalj, $
/editable, /all_events)
Endfor
if keyword_set(radio_array) then Begin
units_base = widget_base(master, /exclusive, /row, /align_center)
radio_button = indgen(n_elements(radio_array))
for i=0, n_elements(radio_array)-1 do Begin
radio_button[i] = widget_button(units_base, val = radio_array[i], $
event_pro='thm_ui_rad_event')
endfor
loc = where(radio_array Eq radio_value)
widget_control, radio_button(loc), /set_button
endif
no_button = widget_button(master, val = 'Cancel', $
uval = 'NO', /align_center)
yes_button = widget_button(master, val = 'Accept and Close', $
uval = 'YES', /align_center)
CenterTlb, master
widget_control, master, /no_copy
widget_control, master, /realize
xmanager, 'thm_ui_npar0', master
Return
End
Function thm_ui_npar, name, init_value, radio_array=radio_array, radio_value=radio_value, $
title=title
common thm_ui_npar0_private, value_sav
n = n_elements(name)
If(n_elements(init_value) Ne n) Then Begin
dprint, 'Mismatched input'
Return, ''
Endif
value_sav = init_value
if not keyword_set(title) then title=' '
If keyword_set(radio_array) Then Begin
value_sav = [[init_value], radio_value]
thm_ui_npar0, name, init_value, radio_array=radio_array, radio_value=radio_value, $
title=title
endif Else Begin
thm_ui_npar0, name, init_value, title=title
endelse
Return, value_sav
End