pro xin_event,  event                         
common info,def_value,stat

on_error,1
widget_control, event.id, get_uvalue = uservalue
wtype=widget_info(event.id,/type)

if wtype eq  1 then begin
 bname=strtrim(uservalue,2)
 if bname eq 'CANCEL' then stat=0 else stat=1
 xkill,event.top
endif

if wtype eq 3 then begin
 widget_control,event.id,get_value=def_value
endif

return & end
;--------------------------------------------------------------------------- 

pro xin,text,instruct,group=group,status=status
common info,def_value,stat
on_error,1

bfont="-adobe-courier-bold-r-normal--25-180-100-100-m-150-iso8859-1"
bfont=(get_dfont(bfont))(0)
tfont='-*-courier-*-r-normal-*-18-*-*-*-*-*-*-*'
tfont=(get_dfont(tfont))(0)
if tfont eq '' then tfont = '9x15bold'

wbase=widget_base(title='LZ 3D INPUT',/column)

if n_elements(ysize) eq 0 then ysize=1
if datatype(text) eq 'STR' then def_value=text else def_value=''
def_value=strtrim(def_value,2) 
text=def_value
sz=size(def_value)
if sz(0) eq 1 then ysize=(sz(1) < 10)
xsize=max(strlen(text)) + 2

if datatype(instruct) eq 'STR' then begin
 comment=instruct
 comment=[' ',comment,' ']
 csize=n_elements(comment) < 25
 row1=widget_base(wbase,/column)
 wtext=widget_text(row1,xsize=max(strlen(instruct)) > xsize,ysize=csize,$
  value=comment,font=tfont,scroll=csize gt 24)
endif

row2=widget_base(wbase,/column)
wtext=widget_text(row2,xsize=xsize,ysize=ysize,/editable,/all,font=tfont,value=def_value)
row3=widget_base(wbase,/row)
temp1=widget_base(row3,/row)
quit=widget_button(temp1,value='CANCEL',uvalue='CANCEL',font=bfont)
temp2=widget_base(row3,/row)
ok=widget_button(temp2,value='ACCEPT',uvalue='ACCEPT',font=bfont)

if n_elements(def_value) eq 1 then text_sel= strlen(def_value)+1  else $
 text_sel=1

widget_control,/realize,wbase
xmanager,'xin',wbase,group=group,/modal

text=def_value & status=stat
return & end
