function xdate, base, group_leader=group_leader, wid=wid, register=register, $ starttime=starttime, stoptime=stoptime ; if not keyword_set(base) then $ b0=widget_base(/column,title='TIME WIDGET',/frame) else b0=base bl=widget_label(b0,value='Select Time',/frame) bb0=widget_base(b0,/row) xmenu,['-DAY','-MONTH','-YEAR'],bb0,/row, buttons=main1 bb0l=widget_label(bb0,value='<< Delta-Date>>',/frame) xmenu,['+DAY','+MONTH','+YEAR'],bb0,/row, buttons=main2 mainbuts=[main1,main2] bt=widget_text(b0,value=string(replicate(32b,120)),ysize=1, $ font=get_xfont(/fixed,closest=20,/only_one)) b1=widget_base(b0,/column,event_pro='slider_event') if not keyword_set(starttime) then starttime=get_yo_dates(/launch) if not keyword_set(stoptime) then stoptime =ut_time() startday=gt_day(starttime) stopday=gt_day(stoptime) help,startday,stopday b1s=widget_slider(b1,title='Date',min=startday, max=stopday,/suppress,/drag) b11s=widget_slider(b1,min=-15,title='Date (Fine Tune)', max=15,value=0, $ /drag, /suppress) ; time to nearest 30 minutes b2=widget_base(b0,/column,event_pro='slider_event') b2s=widget_slider(b2,title='Time',min=0,max=1440./30,/suppress,/drag) b3=widget_base(b0,/column,event_pro='timebut_events') hour4=strmid(timegrid('00:00 1-jan','23:30 1-jan',/string,hour=4),11,5) xmenu,['-30 MIN',hour4,'+30 MIN'],b3,/row,buttons=timebuts if n_elements(wid) eq 0 then wid=0 topstr={top:b0, $ label:bl, $ text:bt, $ mainbuts:mainbuts, $ base1:b1, $ dates:b1s, $ datefines:b11s, $ base2:b2, $ times:b2s, $ timebuts:timebuts, $ day:0, $ ; days since 79 time:0l, $ ; msod date_range:[startday,stopday], $ ; min/max for dates labelstr:'', $ ; change lable wid:wid $ ; text wid for output } uvals={topid:bl, type:'', value:0l} ; for passing info ; event types uvals.type='DATE' widget_control,set_uval=uvals,topstr.dates uvals.type='DATE FINE' widget_control,set_uval=uvals,topstr.datefines uvals.type='TIME' widget_control,set_uval=uvals,topstr.times widget_control, set_uvalue=topstr, b0 widget_control,b0,/realize widget_control, set_uvalue=topstr, bl widget_control, set_uvalue=topstr,b0 if keyword_set(register) then xmanager,'xdate',b0 return,b0 end