
;+ ***********************************************************************
; NAME:
;	GET_WINDOW
;
; PURPOSE:
;	Cette fonction  renvoie la fenetre courante du module pour afficher
;
; CATEGORY:
;	NRH1 General
;
; CALLING SEQUENCE:
;	Indice = GET_WINDOW,ideb,ifin
;
; INPUTS:
;	IDEB	Indice de debut
;	IFIN	indice de fin
;	
; KEYWORD PARAMETERS:
;	TITLE	XSIZE	YSIZE
;
; OUTPUTS:
;	INDICE	indice de la fenetre a utiliser
;
; RESTRICTIONS:
;	La signification de IDEB et IFIN est a preciser
;
; MODIFICATION HISTORY: (bonmartin@obspm.fr)
;	17/11/98	Adapte du logiciel XHELIO (module window.pro) (JB)
;-*******************************************************************


FUNCTION get_window,ideb,ifin,TITLE=title,XSIZE=xsize,YSIZE=ysize
common NRH1_HELIO,mainstruct


IF NOT KEYWORD_SET(xsize) THEN xsize=mainstruct.winxsize
IF NOT KEYWORD_SET(ysize) THEN ysize=mainstruct.winysize


oldwin = where(mainstruct.window(ideb:ifin) EQ 1,count)
IF (count EQ 0) THEN oldwin = ideb ELSE oldwin = oldwin(0) + ideb

; oldwin =  fenetre a utiliser : la ou se trouve le jeton.

IF NOT KEYWORD_SET(title) THEN title='no name'$
ELSE title=title+' win='+string(oldwin)


IF ((!P.MULTI(1)+!P.MULTI(2)) NE 0) THEN BEGIN ; affichage multiple
  
  IF (!P.MULTI(0) EQ 0) THEN BEGIN    
                  ; plus de place dans la fenetre
                  ; on en ouvre une autre
      IF (mainstruct.laser EQ 0) THEN $
      WINDOW,oldwin,TITLE=title,XSIZE=xsize,YSIZE=ysize 
  ENDIF ELSE BEGIN
                  ; ecrit dans l'ancienne fenetre
                  ; il reste de la place pour des traces
      oldwin = oldwin - 1    
      IF oldwin LT ideb THEN oldwin = ifin

;      NEWWSET,oldwin,TITLE=title,XSIZE=xsize,YSIZE=ysize
		 DEVICE,window_state = openwin
		IF Openwin(oldwin) EQ 1 THEN WSET,oldwin ELSE BEGIN
		  IF (mainstruct.laser EQ 0) THEN $
		  WINDOW,oldwin,TITLE=title,XSIZE=xsize,YSIZE=ysize
		ENDELSE
  ENDELSE 
ENDIF ELSE BEGIN
      ; pas d'affichage multiple : on ouvre la fenetre
  IF (mainstruct.laser EQ 0) THEN $
  WINDOW,oldwin,TITLE=title,XSIZE=xsize,YSIZE=ysize
ENDELSE
 ; on indique que la fenetre a utiliser est la suivante
mainstruct.window(ideb:ifin) = 0      ; met l'intervalle a 0
IF (Oldwin+1 GT ifin) THEN inewwin = ideb
mainstruct.window(Oldwin+1) = 1        ; place le jeton 
return,oldwin
END

;************************************************************************
; Verifier si les routines suivantes sont utilisees
;************************************************************************
;* ------------------------------------------------------------- *
;*   met 'numero' comme fenetre courante. 
;*   Si numero est fermee on l'ouvre comme dans get_window       *
;* --------------------------------------------------------------*
  
;PRO NEWWSET,numero,TITLE=title,XSIZE=xsize,YSIZE=ysize
;common NRH1_HELIO,mainstruct

;IF NOT KEYWORD_SET(title) THEN title='no name'
;IF NOT KEYWORD_SET(xsize) THEN xsize=mainstruct.winxsize
;IF NOT KEYWORD_SET(ysize) THEN ysize=mainstruct.winysize

; si l'impression laser est demandee on ouvre pas de fenetre
; l'affichage se fait dans la fenetre 0

;  DEVICE,window_state = openwin
;IF Openwin(numero) EQ 1 THEN WSET,numero ELSE BEGIN
;  IF (mainstruct.laser EQ 0) THEN $
;  WINDOW,numero,TITLE=title,XSIZE=xsize,YSIZE=ysize
;ENDELSE
;END


;* ------------------------------------------------------------- *
;*  remets !p.multi a la bonne valeur apres un trace en noerase  *
;* --------------------------------------------------------------*
   
;PRO set_multi
;  IF !P.MULTI(0) NE 0 THEN BEGIN
;     !P.MULTI(0)=!P.MULTI(0)-1    ; on passe a la case d'affichage
;  ENDIF                           ; suivante
;END


;* ------------------------------------------------------------- *
;*      place le jeton indiquant la fenetre courante d'un 
;*      module a une valeur 'inewwin'                            *
;* --------------------------------------------------------------*
   
;PRO set_window,ideb,ifin,inewwin

;common NRH1_HELIO,mainstruct
;mainstruct.window(ideb:ifin) = 0      ; met l'intervalle a 0
;IF (inewwin GT ifin) THEN inewwin = ideb
;mainstruct.window(inewwin) = 1        ; place le jeton 
;END


