Viewing contents of file '../idllib/contrib/tappin/graffer/gr_comment.pro'
;+
; GR_COMMENT
;	Add a "general" comment to the plot file. This comment is not
;	displayed anywhere, it's just an arbitrary piece of text for
;	you to use as you wish.
;
; Usage:
;	ichange=gr_comment(pdefs)
;
; Argument:
;	pdefs	struct	in/out	The Graffer control structure.
;
; History:
;	Original: 1/7/97; SJT
;-

function Gr_comm_event, event

widget_control, event.id, get_uvalue = but
widget_control, event.handler, get_uvalue = txtid

iexit = 0

txt = ''

case but of
    'DO': begin
        widget_control, txtid, get_value = txt
        iexit = 1
    end
    'DONT': iexit = -1
    'POP': begin
        widget_control, event.top, /show
        widget_control, event.id, timer = 2.
    end
endcase

return, {id:event.id, top:event.top, handler:event.handler, $
         Exited:iexit, value:txt}
end

function Gr_comment, pdefs

handle_value, pdefs.remarks, remarks, /no_copy

base = widget_base(title = 'Graffer comment', resource = 'Graffer', $
                   /column)

txtid = graff_enter(base, /text, /array, /column, /capture,  $
                    xsize = 40, ysize = 20, label = "File description",  $
                    /box, /no_event, uvalue = "POP")
if (n_elements(remarks) ne 0) then widget_control, txtid, set_value = $
  remarks

jb = widget_base(base, /row)
junk = widget_button(jb, value = '   Cancel   ', uvalue = 'DONT')
junk = widget_button(jb, value = '    Do it    ', uvalue = 'DO')

widget_control, base, /real, event_func = 'gr_comm_event', set_uvalue = $
  txtid

if (pdefs.popflag) then widget_control, txtid, timer = 2

repeat begin
    ev = widget_event(base)
endrep until (ev.exited ne 0)

widget_control, base, /destroy

if (ev.exited eq 1) then $      ; The DO button
  handle_value, pdefs.remarks, ev.value, /set $
else if (n_elements(remarks) ne 0) then $ ; Cancel & remarks present
  handle_value, pdefs.remarks, remarks, /set, /no_copy

return, (ev.exited eq 1)

end