pro ff_gui ;Author: Rick Pernak, NASA Goddard Space Flight Center ;create top level base device,get_screen_size=screen xpos = screen[0]/3. ;x and y positions on screen ypos = screen[1]/3. tlb = widget_base(title='Forward Fitting GUI',column=1,$ xoffset=xpos,yoffset=ypos,/base_align_center,tlb_frame_attr=1) ;create date and xy base dbase = widget_base(tlb,column=6) label = widget_label(dbase,value='Date: ') date = widget_text(dbase,value='2005-jan-20',/editable,xsize=11) label = widget_label(dbase,value='X offset:') xoff = widget_text(dbase,value='817',/editable,xsize=4) label = widget_label(dbase,value='Y offset:') yoff = widget_text(dbase,value='256',/editable,xsize=4) ;create time base tbase = widget_base(tlb,column=4) label = widget_label(tbase,value='Time Interval: ') time1 = widget_text(tbase,value='06:45:04',/editable,xsize=11) label = widget_label(tbase,value=' to ') time2 = widget_text(tbase,value='06:46:04',/editable,xsize=11) ;create energy base ebase = widget_base(tlb,column=4) label = widget_label(ebase,value='Energy (keV): ') elo = widget_text(ebase,value='30.0',/editable,xsize=6) label = widget_label(ebase,value='to') ehi = widget_text(ebase,value='40.0',/editable,xsize=6) ;create detector base detbase = widget_base(tlb,row=2) label = widget_label(detbase,$ value='Detectors to use in calculating visibilities: ') ;create button base bbase = widget_base(detbase,/nonexclusive,row=1) ;user selection of detectors d1 = widget_button(bbase,value='1',event_pro='detectors') d2 = widget_button(bbase,value='2',event_pro='detectors') d3 = widget_button(bbase,value='3',event_pro='detectors') d4 = widget_button(bbase,value='4',event_pro='detectors') d5 = widget_button(bbase,value='5',event_pro='detectors') d6 = widget_button(bbase,value='6',event_pro='detectors') d7 = widget_button(bbase,value='7',event_pro='detectors') d8 = widget_button(bbase,value='8',event_pro='detectors') d9 = widget_button(bbase,value='9',event_pro='detectors') widget_control,d3,/set_button widget_control,d4,/set_button widget_control,d5,/set_button widget_control,d6,/set_button widget_control,d7,/set_button widget_control,d8,/set_button ;initialize detector array, coincides with the default detectors udet = [0,0,1, 1,1,1, 1,1,0] ;create shape base sbase = widget_base(tlb,row=1) label = widget_label(sbase,value='Guassian Shape: ') shape_base = widget_base(sbase,/exclusive,row=1) shape1 = widget_button(shape_base,value='Circle',event_pro='shape') shape2 = widget_button(shape_base,value='Ellipse',event_pro='shape') shape3 = widget_button(shape_base,value='Loop',event_pro='shape') widget_control,shape1,/set_button ;initialize shape, coincides with default button set shape = 'Circle' ;create nsources base nsource = widget_base(tlb,row=1) label = widget_label(nsource,value='Number of Sources: ') sources = widget_text(nsource,value='2',/editable,xsize=10,$ event_pro='ff_initial') ;create filename box filebox = widget_base(tlb,row=1) label = widget_label(filebox,value='Visibility FITS File:') name = widget_text(filebox,value='',/editable) browse = widget_button(filebox,value='Browse...',event_pro='vis_restore') ;application state information (structure) dat = {date:date,time1:time1,time2:time2,xoff:xoff,yoff:yoff,elo:elo,ehi:ehi,$ d1:d1,d2:d2,d3:d3,d4:d4,d5:d5,d6:d6,d7:d7,d8:d8,d9:d9,udet:udet,shape:shape,$ shape1:shape1,shape2:shape2,shape3:shape3,vis_un:ptr_new(/allocate_heap),$ vis_edit:ptr_new(/allocate_heap),vis_con:ptr_new(/allocate_heap),n:sources,$ visfit:ptr_new(/allocate_heap),sigma:ptr_new(/allocate_heap),$ visin:ptr_new(/allocate_heap),savefile:name} datptr = ptr_new(dat) widget_control,tlb,set_uvalue=datptr ;execution buttons base exec = widget_base(tlb,row=1) butt1 = widget_button(exec,value='Make/Restore Visibilities',xsize=175,$ event_pro='make_visibilities') butt2 = widget_button(exec,value='Forward Fit',xsize=100,event_pro='ff_initial') butt3 = widget_button(exec,value='Done',xsize=75,event_pro='done_gui') butt4 = widget_button(exec,value='Cancel',xsize=75,event_pro='cancel') ;visualize gui widget_control,tlb,/realize ;default xmanager....make the visibilities xmanager,' ',tlb,event_handler='make_visibilities',/no_block end