
;+ ***********************************************************************
; NAME:
;	CW_FILE_NAME
;
; PURPOSE:
;	Cette fonction demande un nom et controle le fichier correspondant 
;
; CATEGORY:
;	Compound widget
;
; CALLING SEQUENCE:
;	Chaine = CW_FILE_NAME()
;
; INPUTS:
;
; KEYWORD PARAMETERS:
;	GROUP	Identifieur du widget appelant
;
;	TITLE	Titre a donner au widget
;
;	OLD	Recherche de fichier existant
;
; OUTPUTS:
;	CHAINE	chaine de caracteres saisie
;
; RESTRICTIONS:
;	Describe any "restrictions" here.  Delete this section if there are
;	no important restrictions.
;
; PROCEDURE:
;	Cette procedure controle l'existance d'un fichier correspondant au
; nom demande
;	Si le Keyword OLD n'est pas positionne elle donne un message si un
; fichier existe. Le nom est retourne si on CONTINUE, si non le nom est ''.
; Une ouverture de fichier si le nom n'est pas EQ '' ouvre un nvouveau fichier
; ou efface un ancien
;	Si le Keyword ODL est positionne un mesage est envoye si le fichier
; n'existe pas. Si le fichier existe il peut etre ouvert pour un APPEND
;
; EXAMPLE:
;	Please provide a simple example here
;
; MODIFICATION HISTORY:
;	Ecrit par: J Bonmartin le 05/08/98
;-*******************************************************************

PRO CW_FILE_NAME_EVENT, event

COMMON CW_FILE_STR, Chaine

ON_ERROR, 2
Parent = event.handler
Stash = WIDGET_INFO(parent, /Child)

WIDGET_CONTROL, event.id, GET_UVALUE = ev

Case ev of
        'Chaine': BEGIN
                 Chaine = event.value
                 WIDGET_CONTROL, event.top, /Destroy
                 END

        'Cancel': WIDGET_CONTROL, event.top, /Destroy

ENDCase

END

FUNCTION CW_FILE_NAME, GROUP= group, Title=title, OLD=Old
COMMON CW_FILE_STR, Chaine

CHAINE = ''

IF N_ELEMENTS(Group) EQ 0 THEN Group = 0

Base = WIDGET_BASE(GROUP_LEADER = group, /Column, /Align_center,Title=title)

     CD,Current=Rep
     b= CW_FIELD(Base,Value=Rep+'/',Uvalue='Chaine',/String,TITLE='Name:', $
				         Xsize=50,/return_event)
     b= WIDGET_BUTTON(Base, Uvalue='Cancel',Value='Cancel')

WIDGET_CONTROL,Base,/Realize

XMANAGER, 'CW_FILE_NAME', Base

RET = ''
 IF Chaine NE '' THEN BEGIN
	Ret= chaine
	r= FINDFILE(Ret)
   IF KEYWORD_SET (OLD) THEN BEGIN
	If R(0) EQ '' THEN BEGIN
	    r=dialog_message('This file not exist')
            Return, ''
	End
   END ELSE BEGIN
	If R(0) NE '' THEN BEGIN
	    r=dialog_message('One old file exist, CONTINUE',/Question)
        	If r eq 'No' THEN Return, ''
	end
    END
  END

Return, Ret

End 