Viewing contents of file '../idllib/contrib/tappin/graffer/gr_control_menu.pro'
;+
; GR_CONTROL_MENU
; Make the main control menu for graffer.
;
; Usage:
; gr_control_menu, base
;
; Argument:
; base long input The widget ID of the parent base.
;
; History:
; Extracted from GRAFFER (& Help button added for X): 18/12/96;
; SJT
;-
pro Gr_ctl_event, event
base = widget_info(/child, event.top)
widget_control, base, get_uvalue = pdefs, /no_copy
idraw_flag = 1
ichange = 1b
track_flag = strpos(tag_names(event, /struct), 'TRACK') ne -1
nch = 1
if (track_flag) then begin
idraw_flag = 0
ichange = 0b
if (event.enter eq 0) then begin
graff_msg, pdefs.ids.hlptxt, ''
goto, miss_case
endif
endif
case event.value of
'Exit': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'EXIT from GRAFFER' $
else begin
if (pdefs.chflag) then ido = graff_s_prompt(pdefs) $
else ido = 1b
if (ido) then begin
if (not pdefs.chflag) then gr_auto_delete, pdefs
graff_clear, pdefs
widget_control, event.top, /destroy
return
endif
idraw_flag = 0
ichange = 0b
end
'Hard Copy': graff_msg, pdefs.ids.hlptxt, 'Make PostScript version ' + $
'of plot'
'Hard Copy.Set up ...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Define hardcopy parameters and ' + $
'make copy' $
else begin
ichange = graff_hard(pdefs)
if (ichange) then nch = 10
endelse
'Hard Copy.Quick': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Make hardcopy using current settings' $
else ichange = graff_hard(pdefs, /no_set)
'File': graff_msg, pdefs.ids.hlptxt, 'Saving and opening files'
'File.Save': graff_msg, pdefs.ids.hlptxt, 'Save plot in internal format ' + $
'for future use, or do screen dump'
'File.Save.Save binary to current': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Save plot to currently selected ' + $
'filename in binary form' $
else begin
gr_bin_save, pdefs
ichange = 0b
idraw_flag = 0
end
'File.Save.Save ascii to current': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Save plot to currently selected ' + $
'filename in ascii form' $
else begin
gr_asc_save, pdefs
ichange = 0b
idraw_flag = 0
end
'File.Save.Save binary to ...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Save plot to new file name in ' + $
'binary form' $
else begin
dir = pdefs.dir
fc = graff_fname(pdefs.ids.graffer, pdefs.name, dir, pdefs.popflag)
pdefs.name = fc
pdefs.dir = dir
gr_bin_save, pdefs
ichange = 0b
graff_set_vals, pdefs
end
'File.Save.Save ascii to ...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Save plot to new file name in ' + $
'ascii form' $
else begin
dir = pdefs.dir
fc = graff_fname(pdefs.ids.graffer, pdefs.name, dir, pdefs.popflag)
pdefs.name = fc
pdefs.dir = dir
gr_asc_save, pdefs
ichange = 0b
graff_set_vals, pdefs
end
'File.Save.Dump screen': graff_msg, pdefs.ids.hlptxt, 'Make a screen ' + $
'dump to an image file'
'File.Save.Dump screen.Gif': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Dump to GIF (Graphical Interchange ' + $
'Format) file' $
else begin
graff_dump, pdefs, /gif
ichange = 0b
idraw_flag = 0
end
'File.Save.Dump screen.Tiff': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Dump to TIFF (Tagged Image File ' + $
'Format) file' $
else begin
graff_dump, pdefs, /tiff
ichange = 0b
idraw_flag = 0
end
'File.Save.Dump screen.Nrif': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Dump to NRIF (NCAR Raster Image ' + $
'File) ' $
else begin
graff_dump, pdefs, /nrif
ichange = 0b
idraw_flag = 0
end
'File.Open': graff_msg, pdefs.ids.hlptxt, 'Open a GRAFFER file'
'File.Open.Restore ...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Select and open an existing file' $
else begin
if (pdefs.chflag) then ido = graff_s_prompt(pdefs) $
else ido = 1b
if (ido) then begin
if (not pdefs.chflag) then gr_auto_delete, pdefs
s_pdefs = pdefs
graff_init, pdefs
igot = graff_get(pdefs, previous_name = s_pdefs.name)
if (igot eq 0) then pdefs = s_pdefs
endif
ichange = 0b
end
'File.Open.New ...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Create a new file' $
else begin
if (pdefs.chflag) then ido = graff_s_prompt(pdefs) $
else ido = 1b
if (ido) then begin
if (not pdefs.chflag) then gr_auto_delete, pdefs
dir = pdefs.dir
fc = graff_fname(pdefs.ids.graffer, '', dir, pdefs.popflag)
if (fc eq '') then begin
graff_msg, pdefs.ids.message, 'New file not given'
endif else begin
graff_init, pdefs, dir+fc
graff_set_vals, pdefs
endelse
end
ichange = 0b
end
'Options...': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Set special options' $
else begin
gr_opt_set, pdefs
idraw_flag = 0
ichange = 0b
end
'Help': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Display help topics' $
else begin
gr_disp_man, pdefs.ids.graffer
idraw_flag = 0
ichange = 0b
end
endcase
if (idraw_flag and (pdefs.opts.update eq 0)) then gr_plot_object, pdefs
if (ichange) then begin
pdefs.chflag = 1b
pdefs.transient.changes = pdefs.transient.changes+nch
if (pdefs.transient.changes gt 20) then begin
gr_bin_save, pdefs, /auto
if (pdefs.opts.update eq 1) then gr_plot_object, pdefs
endif
endif
widget_control, pdefs.ids.chtick, map = pdefs.chflag
Miss_case:
widget_control, base, set_uvalue = pdefs, /no_copy
end
pro Gr_control_menu, base
ctlmenu = [{CW_PDMENU_S, flags:0, name:'Exit'}, $
{cw_pdmenu_s, 1, 'File'}, $
{cw_pdmenu_s, 1, 'Save'}, $
{cw_pdmenu_s, 0, 'Save binary to current'}, $
{cw_pdmenu_s, 0, 'Save ascii to current'}, $
{cw_pdmenu_s, 0, 'Save binary to ...'}, $
{cw_pdmenu_s, 0, 'Save ascii to ...'}, $
{cw_pdmenu_s, 3, 'Dump screen'}, $
{cw_pdmenu_s, 0, 'Gif'}, $
{cw_pdmenu_s, 0, 'Tiff'}, $
{cw_pdmenu_s, 2, 'Nrif'}, $
{cw_pdmenu_s, 3, 'Open'}, $
{cw_pdmenu_s, 0, 'Restore ...'}, $
{cw_pdmenu_s, 2, 'New ...'}, $
{cw_pdmenu_s, 1, 'Hard Copy'}, $
{cw_pdmenu_s, 0, 'Quick'}, $
{cw_pdmenu_s, 2, 'Set up ...'}, $
{cw_pdmenu_s, 0, 'Options...'}, $
{cw_pdmenu_s, 2, 'Help'}]
jb = widget_base(base, /row, space = 1, xpad = 1, ypad = 1, event_pro $
= 'gr_ctl_event')
junk = cw_pdtmenu(jb, ctlmenu, /return_full_name, uvalue = $
'CONTROL', /track)
end