Viewing contents of file '../idllib/contrib/tappin/graffer/graff_set_vals.pro'
pro Graff_set_vals, pdefs, set_only=set_only

;+
; GRAFF_SET_VALS
;	Setup the values of the graffer widgets
;
; Usage:
;	graff_set_vals, pdefs
;
; Argument:
;	pdefs	struct	input	The graffer control structure
;
; Keyword:
;	set_only	input	If set, then only do those values
;				which change with the current data set
;
; History:
;	Original: 18.8.95; SJT
;	Add Mode: 12/8/96; SJT
;	Add settings of the styles: 17/1/97; SJT
;	Modify for extended symbol definitions: 20/1/97; SJT
;-

common Gr_psym_maps, psym_bm

if (not keyword_set(set_only)) then begin
    widget_control, pdefs.ids.graffer, tlb_set_title =  $
      string(pdefs.version, pdefs.dir, pdefs.name,  $
             format = "('Graffer V',I0,'.',I2.2,': ',2A)")
    if (widget_info(pdefs.ids.graffer2, /valid)) then $
      widget_control, pdefs.ids.graffer2, tlb_set_title = $
      string(pdefs.version, pdefs.dir, pdefs.name, $
             format = "('Graffer V',I0,'.',I2.2,': ',2A)")
      
    
    widget_control, pdefs.ids.name, set_value = pdefs.name
    widget_control, pdefs.ids.dir, set_value = pdefs.dir

    widget_control, pdefs.ids.title, set_value = pdefs.title
    widget_control, pdefs.ids.subtitle, set_value = pdefs.subtitle
    widget_control, pdefs.ids.charsize, set_value = pdefs.charsize
    widget_control, pdefs.ids.axthick, set_value = pdefs.axthick
        
    widget_control, pdefs.ids.xtitle, set_value = pdefs.xtitle
    widget_control, pdefs.ids.xmin, set_value = pdefs.xrange(0)
    widget_control, pdefs.ids.xmax, set_value = pdefs.xrange(1)
    widget_control, pdefs.ids.xlog, set_value = pdefs.xtype
    
    cw_pdtsmenu_set, pdefs.ids.xsty(0), pdefs.xsty.idl and 1
    cw_pdtsmenu_set, pdefs.ids.xsty(1), (pdefs.xsty.idl and 2) ne 0
    cw_pdtsmenu_set, pdefs.ids.xsty(2), (pdefs.xsty.idl and 4) eq 0
    cw_pdtsmenu_set, pdefs.ids.xsty(3), (pdefs.xsty.idl and 8) eq 0
    
    cw_pdtsmenu_set, pdefs.ids.xsty(4), (pdefs.xsty.extra and 1) eq 0
    cw_pdtsmenu_set, pdefs.ids.xsty(6), (pdefs.xsty.extra and 2) ne 0
    
    cw_pdtsmenu_set, pdefs.ids.xsty(5), (pdefs.xsty.time and 1) ne 0
    cw_pdtsmenu_set, pdefs.ids.xsty(7), pdefs.xsty.grid
    
    widget_control, pdefs.ids.ytitle, set_value = pdefs.ytitle
    widget_control, pdefs.ids.ymin, set_value = pdefs.yrange(0)
    widget_control, pdefs.ids.ymax, set_value = pdefs.yrange(1)
    widget_control, pdefs.ids.ylog, set_value = pdefs.ytype

    cw_pdtsmenu_set, pdefs.ids.ysty(0), pdefs.ysty.idl and 1
    cw_pdtsmenu_set, pdefs.ids.ysty(1), (pdefs.ysty.idl and 2) ne 0
    cw_pdtsmenu_set, pdefs.ids.ysty(2), (pdefs.ysty.idl and 4) eq 0
    cw_pdtsmenu_set, pdefs.ids.ysty(3), (pdefs.ysty.idl and 8) eq 0
    
    cw_pdtsmenu_set, pdefs.ids.ysty(4), (pdefs.ysty.extra and 1) eq 0
    cw_pdtsmenu_set, pdefs.ids.ysty(6), (pdefs.ysty.extra and 2) ne 0
    
    cw_pdtsmenu_set, pdefs.ids.ysty(5), (pdefs.ysty.time and 1) ne 0
    cw_pdtsmenu_set, pdefs.ids.ysty(7), pdefs.ysty.grid
    
    widget_control, pdefs.ids.update, map = pdefs.opts.update ne 0
endif

;	The remainder depend on pdefs.cset and handles must be extracted

handle_value, pdefs.data, data, /no_copy

widget_control, pdefs.ids.psym, set_value = data(pdefs.cset).psym
widget_control, pdefs.ids.pline, set_value = data(pdefs.cset).pline
widget_control, pdefs.ids.symsize, set_value = data(pdefs.cset).symsize
widget_control, pdefs.ids.line, set_value = data(pdefs.cset).line
widget_control, pdefs.ids.colour, set_value = data(pdefs.cset).colour+1
widget_control, pdefs.ids.thick, set_value = data(pdefs.cset).thick
cw_pdtsmenu_set, pdefs.ids.dsxtra(0), data(pdefs.cset).sort
cw_pdtsmenu_set, pdefs.ids.dsxtra(1), data(pdefs.cset).noclip
cw_pdtsmenu_set, pdefs.ids.dsxtra(2), data(pdefs.cset).medit
widget_control, pdefs.ids.draw, get_uvalue = state
if (state eq 'DRAW') then widget_control, pdefs.ids.draw, $
  draw_button_events = data(pdefs.cset).medit, track = $
  data(pdefs.cset).medit

widget_control, pdefs.ids.mode, set_value = data(pdefs.cset).mode
widget_control, pdefs.ids.descr, set_value = data(pdefs.cset).descript
widget_control, pdefs.ids.cset, set_value = pdefs.cset+1
widget_control, pdefs.ids.zmode, set_value = $
  data(pdefs.cset).zopts.format

if (data(pdefs.cset).type eq 9 or $
    data(pdefs.cset).type eq -4) then begin
    widget_control, pdefs.ids.plopts(0), map = 0
    widget_control, pdefs.ids.plopts(1), map = 1
endif else begin
    widget_control, pdefs.ids.plopts(1), map = 0     
    widget_control, pdefs.ids.plopts(0), map = 1     
endelse

handle_value, pdefs.data, data, /no_copy, /set

;	Clear the message box

widget_control, pdefs.ids.message, set_value = ''

gr_plot_object, pdefs

end