PRO wvaredit_event,ev
   WIDGET_CONTROL,ev.id,GET_UVALUE=bv
   WIDGET_CONTROL,ev.top,GET_UVALUE=info
   
   CASE bv OF
'CANCEL': BEGIN
          ;WIDGET_CONTROL, info.tw, GET_VALUE=filename
          ;filename = filename(0)
          
          filename='Cancel'
          Handle_Value, info.ptr, filename, /Set, /No_Copy

          Widget_Control,ev.top,/Destroy
        END
  'OK': BEGIN
          WIDGET_CONTROL, info.tw, GET_VALUE=filename
          filename = filename(0)
          Handle_Value, info.ptr, filename, /Set, /No_Copy
          Widget_Control,ev.top,/Destroy
        END
 'TEXT':BEGIN
          WIDGET_CONTROL, info.tw, GET_VALUE=filename
          filename = filename(0)
          Handle_Value, info.ptr, filename, /Set, /No_Copy
          ;Widget_Control,ev.top,/Destroy
        END
   ENDCASE                                                                                                                                                                                                                  

END

FUNCTION wvaredit,filename=filename,label=label,title=title,GROUP=GROUP
    
IF N_ELEMENTS(label) EQ 0 THEN label='Enter File Name:'    
IF N_ELEMENTS(filename) EQ 0 THEN filename='dummy.lst'    
IF N_ELEMENTS(title) EQ 0 THEN title='WVarEdit'
    
base = WIDGET_BASE(title=title,COLUMN=1)    
    
lb = WIDGET_LABEL(base, VALUE=label)    
tw = WIDGET_TEXT(base,VALUE=filename,Xsize=30,UVALUE='TEXT',/EDIT)
bb = WIDGET_BASE(base,/ROW)    
b1 = WIDGET_BUTTON(bb,VALUE='   OK   ',UVALUE='OK')    
b2 = WIDGET_BUTTON(bb,VALUE=' Cancel ',UVALUE='CANCEL')  
    
WIDGET_CONTROL,base,/REALIZE    

ptr = Handle_Create()

info = { tw:tw, ptr:ptr }    
    
WIDGET_CONTROL,base,SET_UVALUE=info, /NO_COPY    

XManager,'wvaredit',base,EVENT_HANDLER='wvaredit_event',/MODAL    

Handle_Value, ptr, filename, /No_Copy
Handle_Free, ptr

filename=STRCOMPRESS(filename,/REMOVE_ALL)
RETURN,filename   
END    
