
;+ ***********************************************************************
; NAME:
;	CW_XTD_NRHF 
;
; PURPOSE:
;	Cette fonction permet de choisir l'extension dans un fichier de
;	flux ou de position de centres actifs
;
; CATEGORY:
;	COMPOUND WIDGET
;
; CALLING SEQUENCE:
;	EXTEND = CW_XTD_NRHF (File)
;
; INPUTS:
;	FILE	Nom du fichier
;
; COMMON:
;	Non
;	
; KEYWORD PARAMETERS:
;	GROUP	Inditifieur du widget appelant
;
; OUTPUTS:
;	EXTEND	Numero de l'extension correspondant au choix
;
; PROCEDURE:
;	Un fichier de flux peut contenir le resultat de calculs effectues
;	sur plusieurs regions. Le resultat de chaque calcul est mis dans
;	extension (voir WRITE_FLUXNRH)
;	Cette fonction affiche les coordonnees de chaque region et retourne
;	le numero de l'extension correspondant a la region choisie
;
; EXAMPLE:
;	Please provide a simple example here
;
; MODIFICATION HISTORY:
;	Ecrit par: J Bonmartin le 30/04/98 (bonmartin@obspm.fr)
;		le 08/03/99 Fermeture de UNIT en sortie (JB)
;-*******************************************************************

PRO CW_XTD_NRHF_EVENT, event

COMMON Com_xtd_nrhf, base,indice

ON_ERROR, 2

	INDICE = event.value
	WIDGET_CONTROL, base, /DESTROY

END

FUNCTION CW_XTD_NRHF ,File, Group = group

;COMMON INFO2D, Str_inf2d
COMMON Com_xtd_nrhf, Base, indice

ON_ERROR, 2

IF N_ELEMENTS( GROUP) EQ 0 THEN Group = 0

INDICE = 1

	Header = HEADFITS( File)

	NBEXT = FXPAR (Header, 'N_EXTEND')
	IF NBEXT LE 0 THEN BEGIN
		NBEXT = FXPAR (Header, 'N_XTEND')
		IF NBEXT LE 0 THEN BEGIN
		r = WIDGET_MESSAGE( 'Incorect File for operation')
		Return, 0 &END
	END

	TEXT = STRARR( Nbext +1)

		TEXT(0)='1\File include '+$
		     STRCOMPRESS(STRING(Nbext),/REMOVE_ALL)+ ' regions'

	For I=1, Nbext DO BEGIN
		FXBOPEN, UNIT, File, I, HD

			Pcx = FXPAR(Hd, 'CRPIX1')
			Pcy = FXPAR(Hd, 'CRPIX2')
			Ray = FXPAR(Hd, 'SOLAR_R')
			Array= FXPAR(Hd, 'NRH_ARR')
			Para= FXPAR(Hd, 'PHYSPARA')
	   IF STRCOMPRESS(FXPAR(Header, 'NRH_DATA'),/REMOVE_ALL) EQ $
							'2DF' THEN BEGIN
		Xc= IND_RS(FXPAR( Hd, 'XLIML'), Pcx,Ray)
		XC= STRCOMPRESS(STRING(Xc,format='(f12.2)'),/REMOVE_ALL)
		Xw= IND_RS(FXPAR( Hd, 'XLIMH'), Pcx,Ray )
		XW= STRCOMPRESS(STRING( Xw,format='(f12.2)'),/REMOVE_ALL)
		Yc= IND_RS(FXPAR( Hd, 'YLIML'),Pcy,Ray )
		YC= STRCOMPRESS(STRING( Yc,format='(f12.2)'),/REMOVE_ALL)
		Yw= IND_RS(FXPAR( Hd, 'YLIMH'),Pcy,Ray )
		YW= STRCOMPRESS(STRING( Yw,format='(f12.2)'),/REMOVE_ALL)

		Str= STRCOMPRESS(Array,/REMOVE_ALL)+','$
			+STRCOMPRESS(Para,/REMOVE_ALL)+','+ $
			'Region ' $
			+':X='+Xc+' , '+XW+', Y='+Yc+' , '+YW

	   END

	   IF STRCOMPRESS(FXPAR(Header, 'NRH_DATA'),/REMOVE_ALL) EQ $
							'2DS' THEN BEGIN
		Xc= IND_RS(FXPAR( Hd, 'EWSTART'), Pcx,Ray)
		XC= STRCOMPRESS(STRING(Xc,format='(f12.2)'),/REMOVE_ALL)
		Yc= IND_RS(FXPAR( Hd, 'NSSTART'),Pcy,Ray )
		YC= STRCOMPRESS(STRING( Yc,format='(f12.2)'),/REMOVE_ALL)

			FXBREAD, Unit, TAB, 'Time'

			SZ= SIZE (Tab)
		NP= STRCOMPRESS(STRING(Sz(1), Format='(I5)'),/REMOVE_ALL)

		Str= 'Position E-W='+Xc+' N-S='+Yc+' ,'+Np+ ' values'
	   END
		FXBCLOSE, Unit
	   TEXT(I) = '0\'+str
	END

base = widget_base(group_leader =group, /row)
	b=WIDGET_LABEL(Base,Value='SELECTION',/align_center)

	ID = CW_PDMENU(BASE, Text, /RETURN_INDEX)

WIDGET_CONTROL, Base, /Realize
XMANAGER,'CW_XTD_NRHF',base

Return, Indice

End
