
;+ ***********************************************************************
; NAME:
;	NRHR
;
; PURPOSE:
;	Cette procedure contient les widgets pour l'utilistions des donnees
;	provenant des spectres de routines
;
; CATEGORY:
;	NRH routines	
;
; CALLING SEQUENCE:
;	NRHR
;
; INPUTS:
;
;	
; KEYWORD PARAMETERS:
;	GROUP	Identification du widget parent	
;
; OUTPUTS:
;	
;
; OPTIONAL OUTPUTS:
;	
; COMMON BLOCKS:
;	
;
; SIDE EFFECTS:
;
; RESTRICTIONS:
;
; PROCEDURE:
;
; EXAMPLE:
;
; MODIFICATION HISTORY:
;	Ecrit par:J Bonmartin (bonmartin@obspm.fr) le 10/10/00
;-*******************************************************************

PRO NRHR_EVENT, Event

COMMON COM_NRHR,Red, Green, Blue, Ro, Go, Bo

WIDGET_CONTROL,Event.top, GET_UVALUE = Str, /NO_COPY
WIDGET_CONTROL, Event.id, GET_UVALUE = Ev

CASE Ev OF
	'Rep':	BEGIN
		Str.Rep = Event.Value
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Hdeb': BEGIN
		Str.Hdeb = Event.value
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Hfin': BEGIN
		Str.Hfin = Event.value
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'File':	BEGIN
		File= DIALOG_PICKFILE(FILTER='nr*.fts',PATH=Str.rep)
		IF File NE '' THEN BEGIN
			STR.File = File
			Str.Freq = 0
			WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
			HD0 = HEADFITS(Str.File)
			LFREQ = NRHR_LFREQ(HD0)
			WIDGET_CONTROL, Str.Idfreq, SET_VALUE=Lfreq
			DATA = MRDFITS(Str.file, 1, HD1,/SILENT)
				TIME= Data.time
				Str.Hdeb = MSH(Time[0])
				Str.Hfin = MSH(TIME(N_ELEMENTS(time)-1))
			WIDGET_CONTROL, STR.Ideb, SET_VALUE=MSH(data(0).time)
			WIDGET_CONTROL, STR.Ifin, $ 
			   SET_VALUE=MSH(Data(N_ELEMENTS(Data.time)-1).time)
			ENDIF
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Freq':	BEGIN
		Str.Freq = Event.Index
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Color':BEGIN
		Str.Color = Event.index
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Plot': BEGIN
		Str.tri=0
		NRHR_PLOTF, Str.File, Str.Freq,INDICE=Str.Tri, PSYM=10, $
			YRANGE=[0,5], HR_BEG=Str.Hdeb, HR_END=Str.hfin, $
			RED=Red, GREEN=Green, BLUE=Blue, NOCOLOR=Str.Color
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Oplot':BEGIN
		Str.tri = Str.tri +1			
		NRHR_PLOTF, Str.File, Str.Freq, INDICE = Str.tri,/OPLOT, $
			PSYM=10, HR_BEG=Str.Hdeb, HR_END=Str.hfin, $
			RED=Red, GREEN=Green, BLUE=Blue, NOCOLOR=Str.Color
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END
	'Png':	BEGIN
		Sav= TVRD()
		R= DIALOG_MESSAGE('Save on "rout.png"',DIALOG_PARENT=Event.Top)
		WRITE_PNG,'rout.png',Sav, Red, Green, Blue
		WIDGET_CONTROL, EVENT.TOP, SET_UVALUE= Str
		END

	'Exit': BEGIN
		TVLCT, Bo,Go,Bo
		WIDGET_CONTROL,Event.top, /DESTROY
		END

ENDCASE


END 



PRO NRHR, GROUP = Group

COMMON COM_NRHR,Red, Green, Blue, Ro, Go, Bo
STR = {STR_WD_NRHR, Rep :'', File :'', Hdeb:'', Hfin:'', Freq:0, $
		Idfreq:0L, Ideb:0L, Ifin:0L, Tri:0, Yrg:[0,0], Color:0}

Sep = '/'
	IF !VERSION.OS_FAMILY EQ 'Windows' THEN Sep= '\' $
	ELSE DEVICE, DECOMPOSED=0, PSEUDO_COLOR=8
	CD, CURRENT= Rep
		Str.Rep = Rep+Sep

TVLCT, R,G,B,/GET
	Ro=R & Go=G & Bo=B
	Red=R & Green=G & Blue=B

If N_ELEMENTS(Group) EQ 0 THEN GROUP = 0

BASE = WIDGET_BASE(GROUP_LEADER=Group, TITLE='PLOT NRH ROUTINES', /COLUMN, $
		/FRAME)
	B= CW_FIELD( Base, VALUE= Str.rep, UVALUE='Rep', XSIZE=40, $
		TITLE='Directory:',/ALL_EVENTS)
	B=WIDGET_BUTTON( Base, VALUE='Select File', UVALUE = 'File')
	Str.Idfreq=WIDGET_DROPLIST( Base, VALUE= ' ', UVALUE= 'Freq' , $
		TITLE= 'Frequencies')
	Str.Ideb= CW_FIELD(Base, VALUE= Str.Hdeb, UVALUE= 'Hdeb', $
		/STRING, /ALL_EVENTS,TITLE='BEGIN Time',XSIZE=12)
	Str.Ifin= CW_FIELD(Base, VALUE= Str.Hfin, UVALUE= 'Hfin', $
		/STRING, /ALL_EVENTS, TITLE='END Time  ',XSIZE=12)

	List = ['Color', 'B / W']
	B=WIDGET_DROPLIST(Base, VALUE=List, UVALUE = 'Color', TITLE= 'Plot:')
	B=WIDGET_BUTTON( Base, VALUE='Plot', UVALUE = 'Plot')
	B=WIDGET_BUTTON( Base, VALUE='OPlot', UVALUE = 'Oplot')
	B=WIDGET_BUTTON( Base, VALUE='Save on PNG', UVALUE = 'Png')

       b=WIDGET_BUTTON(Base,Value='Return', Uvalue='Exit')

	WIDGET_CONTROL, Base, SET_UVALUE= STR

widget_control,base,/Realize
Xmanager,'NRHR',Base, /NO_BLOCK

END


