Viewing contents of file '../idllib/contrib/tappin/graffer/gr_mk_plmenus.pro'
;+
; GR_MK_PLMENUS
; Make the panel for graffer's general plot settings
;
; Usage:
; gk_mk_plmenus, base, pdefs
;
; Arguments:
; base long input The ID of the parent widget.
; pdefs struct in/out The graffer control structure.
;
; Rationale:
; To make it easier to keep the compact and regular GRAFFER
; controls in step.
;
; History:
; Original (extracted from GRAFFER): 29/11/96; SJT
; Add CAPTURE key to entry boxes: 6/2/97; SJT
; Add "Comment" key: 1/7/97; SJT
;-
pro Gr_pl_event, event
widget_control, event.id, get_uvalue = object
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, ''
if (object eq 'AUTOSAVE') then $
graff_msg, pdefs.ids.message, ''
goto, miss_case
endif
endif
case object of
'TITLE': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Enter plot title (at top of plot)' $
else begin
pdefs.title = event.value
end
'SUBTITLE': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Enter plot subtitle (below plot)' $
else begin
pdefs.subtitle = event.value
end
'CHARSIZE': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Enter character size for ' + $
'annotations (floating point value)' $
else begin
pdefs.charsize = event.value
end
'AXTHICK': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Enter line thickness for axes ' + $
'(integer value 1-99)' $
else begin
pdefs.axthick = event.value
end
'POSITION': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Set positions of plot corners' $
else begin
ichange = gr_position(pdefs)
idraw_flag = ichange
endelse
'KEY': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Control drawing of a key on the plot' $
else begin
ichange = gr_key_def(pdefs)
idraw_flag = ichange
if (ichange) then nch = 10
endelse
'COMMENT': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Control addition of a general ' + $
'comment to the plot' $
else begin
ichange = gr_comment(pdefs)
idraw_flag = 0
if (ichange) then nch = 5
endelse
'UPDATE': if (track_flag) then $
graff_msg, pdefs.ids.hlptxt, 'Update plot now' $
else begin
gr_plot_object, pdefs
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_mk_plmenus, base, pdefs
tjb = widget_base(base, /column, /frame, xpad = 1, ypad = 1, space = $
1, event_pro = 'gr_pl_event')
junk = widget_label(tjb, value = 'General')
pdefs.ids.title = graff_enter(tjb, /all_events, value = '', xsize = $
25, uvalue = 'TITLE', label = 'Title:', $
/track, /capture, /graphics)
pdefs.ids.subtitle = graff_enter(tjb, /all_events, value = '', $
xsize = 25, uvalue = 'SUBTITLE', $
label = 'Subtitle:', /track, $
/capture, /graphics)
jb = widget_base(tjb, /row, xpad = 1, ypad = 1, space = 1)
pdefs.ids.charsize = graff_enter(jb, /all_events, value = 1.0, $
/float, xsize = 8, uvalue = $
'CHARSIZE', label = 'Charsize:', $
format = "(F6.1)", /track, /capture)
pdefs.ids.axthick = graff_enter(jb, /all_events, /int, value = 1, $
xsize = 3, uvalue = 'AXTHICK', label = $
'Line width:', format = "(I0)", $
/track, /capture)
jb = widget_base(tjb, /row, xpad = 1, ypad = 1, space = 1)
junk = widget_button(jb, value = 'Corners...', uvalue = $
'POSITION', /track)
junk = widget_button(jb, value = 'Key ...', uvalue = $
'KEY', /track)
junk = widget_button(jb, value = 'Comment...', uvalue = 'COMMENT', $
/track)
pdefs.ids.update = widget_base(tjb, /row)
junk = widget_button(pdefs.ids.update, value = 'Update plot now', $
uvalue = 'UPDATE', /track)
end