FUNCTION xvalid, name, noshow=noshow, id=id

   if datatype(name) ne 'STR' then return,0

;-- check XMANAGER common 

   xmanager_com,ids,names,nummanaged

   answer = 0
   id = -1L

   IF KEYWORD_SET(nummanaged) THEN BEGIN
      validids = WHERE(ids NE 0, answer)
      IF (answer EQ 0) THEN RETURN, answer
      registered = WHERE(names(validids) EQ name, answer)
      IF (answer EQ 0) THEN RETURN, answer
      registered = validids(registered)
   ENDIF ELSE RETURN, answer

   id = ids(registered(0))
   validids = WIDGET_INFO(ids(registered), /valid)
   IF ((validids(0) EQ 1) AND (NOT KEYWORD_SET(noshow))) THEN $
      WIDGET_CONTROL, id, /show

   RETURN, answer

END

;---------------------------------------------------------------------------
; End of 'xvalid.pro'.
;---------------------------------------------------------------------------