;+ ; NAME: ; qvox ; PURPOSE: ; Widget wrapper for vu_vox_sequence ; CATEGORY: ; Widgets ; CALLING SEQUENCE: ; qvox, group=group ; INPUTS: ; OPTIONAL INPUT PARAMETERS: ; group=group scalar; type: long integer ; group leader passed to XMANAGER ; OUTPUTS: ; (to widget) ; CALLS: ; PROCEDURE: ;- pro qvox_event, event @compile_opt.pro ; On error, return to caller ; event.top should be ID of the qImage top level widget ; qImage_cw should make sure to set the proper ID before passing an event on. ; Get the state structure from the top level widget widget_control, event.top, get_uvalue=state, /no_copy case event.id of ; ID of widget that generated the message ; Intercepts WIDGET_KILL_REQUEST from top level widget event.top : widget_control, event.top, /destroy state.wid_exit : widget_control, event.top, /destroy ;state.wid_info : qvox_Info, state state.wid_speed : widget_control, state.wid_speed , set_uvalue=event.select state.wid_density : widget_control, state.wid_density , set_uvalue=event.select state.wid_bradial : widget_control, state.wid_bradial , set_uvalue=event.select state.wid_btang : widget_control, state.wid_btang , set_uvalue=event.select state.wid_fix_none : widget_control, state.wid_fix_none , set_uvalue=event.select state.wid_fix_stars : widget_control, state.wid_fix_stars , set_uvalue=event.select state.wid_fix_earth : widget_control, state.wid_fix_earth , set_uvalue=event.select state.wid_fix_sun : widget_control, state.wid_fix_sun , set_uvalue=event.select state.wid_show_sun : widget_control, state.wid_show_sun , set_uvalue=event.select state.wid_show_earth: widget_control, state.wid_show_earth, set_uvalue=event.select state.wid_show_orbit: widget_control, state.wid_show_orbit, set_uvalue=event.select state.wid_show_hcs : widget_control, state.wid_show_hcs , set_uvalue=event.select state.wid_256 : widget_control, state.wid_256 , set_uvalue=event.select state.wid_512 : widget_control, state.wid_512 , set_uvalue=event.select state.wid_go: begin widget_control, state.wid_minf , get_value=minf widget_control, state.wid_maxf , get_value=maxf widget_control, state.wid_speed , get_uvalue=speed widget_control, state.wid_density , get_uvalue=density widget_control, state.wid_bradial , get_uvalue=bradial widget_control, state.wid_btang , get_uvalue=btang widget_control, state.wid_fix_stars , get_uvalue=fix_stars widget_control, state.wid_fix_earth , get_uvalue=fix_earth widget_control, state.wid_fix_sun , get_uvalue=fix_sun widget_control, state.wid_show_sun , get_uvalue=show_sun widget_control, state.wid_show_earth, get_uvalue=show_earth widget_control, state.wid_show_orbit, get_uvalue=show_orbit widget_control, state.wid_show_hcs , get_uvalue=show_hcs widget_control, state.wid_256 , get_uvalue=dim_256 widget_control, state.wid_512 , get_uvalue=dim_512 ndim = 256*dim_256+512*dim_512 vu_vox_sequence, hdr, ff, $ minf=minf, maxf=maxf, $ speed=speed, density=density, bradial=bradial, btang=btang, $ fix_stars=fix_stars, fix_earth=fix_earth, fix_sun=fix_sun, $ show_sun=show_sun, show_earth=show_earth, show_orbit=show_orbit, show_hcs=show_hcs, $ ndim=ndim end else: unexpected_event, event endcase ; Put the state structure back where it belongs ; (the widget may have been destroyed already, so we check for event.top for validity.) if widget_info(event.top,/valid_id) then $ widget_control, event.top, set_uvalue=state, /no_copy return & end pro qvox, filter, group=group, wid_base=wid_base @compile_opt.pro ; On error, return to caller if n_elements(filter) eq 0 then filter = 'nv3d*.*' state = {STATE_QVOX, $ wid_exit : 0L, $ wid_info : 0L, $ wid_filter : 0L, $ wid_go : 0L, $ wid_minf : 0L, $ wid_maxf : 0L, $ wid_speed : 0L, $ wid_density : 0L, $ wid_bradial : 0L, $ wid_btang : 0L, $ wid_fix_none : 0L, $ wid_fix_stars : 0L, $ wid_fix_earth : 0L, $ wid_fix_sun : 0L, $ wid_show_sun : 0L, $ wid_show_earth : 0L, $ wid_show_orbit : 0L, $ wid_show_hcs : 0L, $ wid_256 : 0L, $ wid_512 : 0L $ } wid_base = widget_base(title='qvox', /column, /tlb_kill_request_events) wid_row = widget_base(wid_base,/row) sys = filepath(root=getenv('SSW_SMEI_UCSD'),'image') state.wid_exit = widget_button(wid_row, value=filepath(root=sys,'done.ico'), /bitmap) state.wid_info = widget_button(wid_row, value=filepath(root=sys,'info.ico'), /bitmap) state.wid_filter= cw_field(wid_row, value=filter, /string, title='Filter', xsize=40) state.wid_go = widget_button(wid_row, value='Go') wid_row = widget_base(wid_base,/row) state.wid_minf = cw_field(wid_row, value=0 , /float, title='Min') state.wid_maxf = cw_field(wid_row, value=100, /float, title='max') wid = widget_base(wid_base, /row) wid_row = widget_base(wid, /exclusive, frame=1) state.wid_speed = widget_button(wid_row, value='Speed' , uvalue=0B) state.wid_density = widget_button(wid_row, value='Density' , uvalue=0B) state.wid_bradial = widget_button(wid_row, value='B radial' , uvalue=0B) state.wid_btang = widget_button(wid_row, value='B tangential' , uvalue=0B) widget_control, state.wid_density, /set_button, /set_uvalue wid_row = widget_base(wid, /exclusive, frame=1) state.wid_fix_none = widget_button(wid_row, value='Fix none' , uvalue=0B) state.wid_fix_stars = widget_button(wid_row, value='Fix stars', uvalue=0B) state.wid_fix_earth = widget_button(wid_row, value='Fix Earth', uvalue=0B) state.wid_fix_sun = widget_button(wid_row, value='Fix Sun' , uvalue=0B) widget_control, state.wid_fix_stars, /set_button, set_uvalue=1B wid_row = widget_base(wid, /nonexclusive, frame=1) state.wid_show_sun = widget_button(wid_row, value='Show Sun' , uvalue=0B) state.wid_show_earth = widget_button(wid_row, value='Show Earth', uvalue=0B) state.wid_show_orbit = widget_button(wid_row, value='Show orbit', uvalue=0B) state.wid_show_hcs = widget_button(wid_row, value='Show HCS' , uvalue=0B) widget_control, state.wid_show_sun , /set_button, set_uvalue=1B widget_control, state.wid_show_earth, /set_button, set_uvalue=1B widget_control, state.wid_show_orbit, /set_button, set_uvalue=1B widget_control, state.wid_show_hcs , /set_button, set_uvalue=1B wid_row = widget_base(wid, /exclusive, frame=1) state.wid_256 = widget_button(wid_row, value='256', uvalue=0B) state.wid_512 = widget_button(wid_row, value='512', uvalue=0B) widget_control, state.wid_256, /set_button, set_uvalue=1B widget_control, wid_base, set_uvalue=state, /no_copy widget_control, wid_base, /realize xmanager, 'qvox', wid_base, event_handler='qvox_event', group=Group, /no_block return & end