PRO Histo_Selection, y, length

  IF N_Params() EQ 0 THEN BEGIN
    GetPSSizes, xPos, yPos, xSize, ySize, landscape, colorOn
    nbSel = N_Selected()
    IF nbSel EQ 0 THEN BEGIN
      Print,'No plots selected'
      Print,''
      RETURN
    ENDIF
    LoadSelection, names, length, x, y
  ENDIF ELSE BEGIN
    xPos = 1.
    yPos = 5.
    xSize = 15.
    ySize = 10.
    IF N_Params() EQ 1 THEN BEGIN
      length = N_Elements( y(0,*) )
      nbSel = length
    ENDIF
  ENDELSE


  vector = y(0:length(0)-1, 0)
  IF nbSel GT 1 THEN $
    FOR i = 2, nbSel-1 DO vector = [ vector, y(0:length(i)-1, i) ]

  maximum = Max( vector, MIN = minimum )
  binSize = 1

  winNr = !d.window + 1
  Window, winNr, TITLE = 'Histogram of y-values'

  menuLen = 6
  hMenu = StrArr( menuLen )

  hMenu(0) = 'Maximum = ' + StrTrim( maximum, 2 ) 
  hMenu(1) = 'Minimum = ' + StrTrim( minimum, 2 ) 
  hMenu(2) = 'Binsize = ' + StrTrim( binSize, 2 ) 
  hMenu(3) = 'Make Postscript File / Print ... '
  hMenu(4) = 'Exit Histogram Facility'
  hMenu(5) = 'Redisplay this Menu '

  choice = 0

  REPEAT BEGIN

    IF choice NE menuLen THEN BEGIN
      histo = Histogram(vector, MAX = maximum, MIN = minimum, $
	BINSIZE = binSize )
      Plot, histo, XTITLE = !y.title, $
	YTITLE = 'Number of values, bin size = '+ $
	StrTrim( binSize, 2 ), XSTYLE = 2, YSTYLE = 2, $
	XRANGE = [0,0], YRANGE = [0,0], PSYM = 10
    ENDIF

    choice = General_Menu( hMenu, 'Histogram Facility: Select Option')

    CASE choice OF
      1: BEGIN
            Read_Test, 'Please enter the new maximum: ', maximum, tmp
            maximum = tmp
            hMenu(0) = 'Maximum = ' + StrTrim( maximum, 2 ) 
         END
      2: BEGIN
            Read_Test, 'Please enter the new minimum: ', minimum, tmp
            minimum = tmp
            hMenu(1) = 'Minimum = ' + StrTrim( minimum, 2 ) 
         END
      3: BEGIN
            Read_Test, 'Please enter the new bin size: ', binSize, tmp
            binSize = tmp
            hMenu(2) = 'Binsize = ' + StrTrim( binSize, 2 ) 
         END
      4: BEGIN
            oldDev = !d.name
            Set_Plot,'PS'
            Device,FILENAME = 'mdisp.ps', $
	ENCAPSULATED = encapsulated,$
	LANDSCAPE  = landscape

            Plot, histo, XTITLE = !y.title, YTITLE = 'Number of values'

            Device, /CLOSE_FILE
            Set_Plot, oldDev
            yn = General_Menu( ['yes', 'no'], $
	'Do you want to print it right now ?' )
            IF yn EQ 1 THEN Spawn, 'psprint mdisp.ps'
          END
      ELSE:
    ENDCASE

  END UNTIL choice EQ menuLen-1

  WDelete, winNr

END
  