PRO GR_IMAGES_EVENT, event COMMON FICRH,str_fic COMMON INFO2D, Str_inf2d COMMON LIMIT, Str_lim COMMON IMAGES_GR,str_imgr COMMON base_imgr,id_imgr WIDGET_CONTROL, event.id, get_uvalue= ev case ev of 'LI': str_imgr.li = event.value 'COL': str_imgr.co = event.value 'DIM': str_imgr.dim = event.value 'CRLI': str_imgr.crli = event.value 'CRCOL': str_imgr.crco = event.value 'CRE_WIN': BEGIN Xsize = str_imgr.co * str_imgr.dim Ysize = str_imgr.li * str_imgr.dim WINDOW,/free, XSIZE=xsize, YSIZE=ysize str_imgr.crwin = !D.WINDOW end 'Time': Begin Str_imgr.Tsel= event.value end 'Stokes': str_imgr.stk = event.index 'File': Begin NRH_PICKFILE, Str_fic, Str_inf2d, Str_lim, Physpar, Lfreq id_imgr.inf = cw_infonrh(id_imgr.inf, Str_inf2d, /INFO) Str_imgr.Tsel = str_inf2d.hd Str_imgr.stk = 0 WIDGET_CONTROL, id_imgr.stk, SET_VALUE = Physpar WIDGET_CONTROL,id_imgr.indt, set_value=Str_imgr.Tsel end 'Regsel': BEGIN READ_NRHIM, Str_fic.file, Str_imgr.Tsel,Str_inf2d, $ DATA, Str_im, $ STOKES = Str_imgr.Stk cw_selfield,Data, str_im, str_lim, Size=300, GROUP=event.top END 'Display': Begin if str_imgr.crwin lt 0 THEN BEGIN ret=widget_message('First CREATE a WINDOW') Return end READ_NRHIM, Str_fic.file, Str_imgr.Tsel, Str_inf2d,$ DATA, Str_im, STOKES = Str_imgr.stk NRH_DISP_GRIMAGE, Data, Str_im , Str_lim, str_imgr WIDGET_CONTROL, id_imgr.crli, set_value=str_imgr.crli WIDGET_CONTROL, id_imgr.crco, set_value=str_imgr.crco end 'Increment': str_imgr.inc = event.value 'Plus': Begin if str_imgr.crwin lt 0 THEN BEGIN ret=widget_message('First CREATE a WINDOW') Return end i1= TIME_IND_NRH(Str_fic.file, Str_imgr.tsel) i= i1 + str_imgr.inc if I GT str_inf2d.nim THEN BEGIN r=widget_message('END of FILE') RETURN end READ_NRHIM, Str_fic.file,'',Str_inf2d, DATA, Str_im, $ STOKES = Str_imgr.Stk,INDIC=i Str_imgr.Tsel =Str_im.time WIDGET_CONTROL,id_imgr.indt,SET_VALUE=Str_im.Time NRH_DISP_GRIMAGE, Data, Str_im , Str_lim, str_imgr WIDGET_CONTROL, id_imgr.crli, set_value=str_imgr.crli WIDGET_CONTROL, id_imgr.crco, set_value=str_imgr.crco end 'Moins': Begin if str_imgr.crwin lt 0 THEN BEGIN ret=widget_message('First CREATE a WINDOW') Return end i= TIME_IND_NRH(Str_fic.file, Str_imgr.tsel) i = i - str_imgr.inc if I LT 0 THEN BEGIN r=widget_message('END of FILE') RETURN end READ_NRHIM, Str_fic.file,'',Str_inf2d, DATA, Str_im, $ STOKES = Str_imgr.Stk,INDIC=i Str_imgr.Tsel =Str_im.time WIDGET_CONTROL,id_imgr.indt,SET_VALUE=Str_im.Time NRH_DISP_GRIMAGE, Data, Str_im , Str_lim, str_imgr WIDGET_CONTROL, id_imgr.crli, set_value=str_imgr.crli WIDGET_CONTROL, id_imgr.crco, set_value=str_imgr.crco end 'Print': Begin wset,str_imgr.crwin ; device, get_visual_depth = thisdepth ; if thisdepth gt 8 then begin ; device, decomposed = 1 ; img = TVRD(True=1) ; device, decomposed = 0 ; end else begin img = TVRD() ; endelse mydevice = !d.name SET_PLOT, 'PS' DEVICE, FILENAME= 'imgr.ps',/COLOR TV,img r=dialog_message('OUTPUT on IMGR.PS',DIALOG_PARENT=Event.top) device,/close SET_PLOT, mydevice end 'Png': BEGIN WSET, Str_imgr.crwin Filename = CW_RD_STRING(GROUP=event.top,TITLE='PNG File') If Filename NE '' THEN BEGIN device, get_visual_depth = thisdepth if thisdepth gt 8 then begin device, decomposed = 1 image = TVRD(True=1) device, decomposed = 0 WRITE_PNG, Filename, image end else begin tvlct, rr, gg, bb, /get WRITE_PNG, Filename, TVRD(), rr, gg, bb endelse end end 'RESET': BEGIN str_imgr.crli=0 str_imgr.crco=0 WIDGET_CONTROL, id_imgr.crli, set_value=str_imgr.crli WIDGET_CONTROL, id_imgr.crco, set_value=str_imgr.crco end 'Color': Xloadct 'Return': WIDGET_CONTROL, event.top, /DESTROY endcase end PRO GR_IMAGES, GROUP= group COMMON FICRH,str_fic COMMON INFO2D, Str_inf2d COMMON LIMIT, Str_lim COMMON IMAGES_GR,str_imgr COMMON base_imgr,id_imgr STR_IMGR = {STR_IMGR, li:3, co:6, dim:128, crli:0, crco:0, crwin:-1, $ inc:1, tsel:' ', stk:0 } ID_imgr = {ID_IMGR,crli:0L, crco:0L, inf:0L, indt:0L, stk:0L} if N_ELEMENTS(Group) Eq 0 THEN GROUP=0 BASE = WIDGET_BASE( GROUP_LEADER= group, TITLE = ' 2 D IMAGES', $ COLUMN=1) PHYSPAR =['',''] & LFREQ ='' IF str_fic.file EQ ' ' OR strlen(str_fic.file) EQ '' THEN $ NRH_PICKFILE, Str_fic, Str_inf2d, Str_lim, Physpar, Lfreq $ ELSE $;IF Str_inf2d.Physpar NE 0 THEN $ NRH_FOPEN, Str_fic.File, Str_inf2d, Str_lim, Physpar, Lfreq Str_imgr.Tsel = Str_lim.Hd BASE1= WIDGET_BASE(Base,column=2,/frame,/align_center,TITLE='DEFINITION') l=widget_label(base1,value='WINDOW DEFINITION',/align_center) dim= cw_field(base1,Value= str_imgr.dim, Title='Image size:', $ /integer,/return_event,Xsize=5, Uvalue= 'DIM') b= WIDGET_BUTTON(base1, value='Create WINDOW', Uvalue= 'CRE_WIN') nbco= cw_field(base1,Value= str_imgr.co, Title='Nb columns:', $ /integer,/return_event,Xsize=5,Uvalue='COL') nbli= cw_field(base1,Value= str_imgr.li, Title='Nb rows :', $ /integer,/return_event,Xsize=5, Uvalue='LI') BASE5= WIDGET_BASE(Base,column=2,/frame,/align_center) l=widget_label(base5,value='IMAGE position',/align_center) id_imgr.crli= cw_field(base5, $ Value= str_imgr.crli, Title='Curent row :', $ /integer,/return_event,Xsize=5,Uvalue='CRLI') b= WIDGET_BUTTON(base5, value='RESET position', Uvalue= 'RESET') id_imgr.crco= cw_field(base5, $ Value= str_imgr.crco, Title='Curent column:', $ /integer,/return_event,Xsize=5,Uvalue='CRCOL') BASE2= WIDGET_BASE(Base,/column,/frame,/align_center) l=widget_label(base2,value='IMAGE Selection',/align_center) b= WIDGET_BUTTON(base2, value='Select FILE', Uvalue='File') b=WIDGET_BUTTON(Base2,Value='Select REGION', Uvalue='Regsel') id_imgr.indt = cw_field(base2, value= str_imgr.tsel, $ Uvalue= 'Time',/string, Title='Time: ',/return_event, $ Xsize=20) id_imgr.stk = WIDGET_DROPLIST(base2, value = Physpar, $ Uvalue = 'Stokes') id_imgr.inf= cw_infonrh(base2,Str_inf2d) base3= WIDGET_BASE(base,row=1,/frame) b=WIDGET_BUTTON(base3,Uvalue= 'Plus',Value='+') b=WIDGET_BUTTON(base3,Uvalue= 'Moins',Value= '-') b=Cw_field(base3,Uvalue='Increment',value= str_imgr.inc, $ /integer, TITLE='INCREMENT',/Return_event,Xsize=3) b= WIDGET_BUTTON(base, value='DISLAY', Uvalue= 'Display') b= WIDGET_BUTTON(base, value='PS File', Uvalue= 'Print') b= WIDGET_BUTTON(base, value='PNG File', Uvalue= 'Png') b= WIDGET_BUTTON(base, value='COLOR', Uvalue= 'Color') b= WIDGET_BUTTON(base, value='Return', Uvalue= 'Return') WIDGET_CONTROL, base,/Realize Xmanager, 'GR_IMAGES', base, /NO_BLOCK END