DEFINITION MODULE Histograms;
  (*******************************************************************
    Module  Histograms     (Version 0.5)
      Copyright (c) 1987-2006 by Andreas Fischlin and ETH Zurich.
    Purpose   Draws histograms.
    Remarks   --
    Programming
      o Design
        Andreas Fischlin          20/12/1987
      o Implementation
        Andreas Fischlin          20/12/1987
    ETH Zurich
    Systems Ecology
    CHN E 35.1
    Universitaetstrasse 16
    8092 Zurich
    SWITZERLAND
    URLs:
        <mailto:RAMSES@env.ethz.ch>
        <http://www.sysecol.ethz.ch>
        <http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
    Last revision of definition:  23/04/1996  AF & DG
  *******************************************************************)
  FROM DMWindows IMPORT Window, RectArea;
  FROM DMWindIO IMPORT Color, Pattern;
  TYPE
    Histogram;
    HistoAct = PROCEDURE (Histogram);
  PROCEDURE DefineHistogram(w: Window; VAR h: Histogram;
  						    r: RectArea; fromClass,toClass: INTEGER;
  						    xLabel: ARRAY OF CHAR;
                            maxFreqency: CARDINAL; freqNumbs: BOOLEAN;
                            barCol: Color; barPat: Pattern);
  PROCEDURE SetYTickInterval( h: Histogram; interval: INTEGER );
  PROCEDURE ClearHistogram(h: Histogram);
  PROCEDURE DrawHistogram(h: Histogram);
  PROCEDURE MidTopPoint(h: Histogram; class: INTEGER; f: CARDINAL;
  						VAR x,y: INTEGER); (* coordinates in middle of
  										   top of bar for class and
  										   frequency f *)
  PROCEDURE PlotBar(h: Histogram; class: INTEGER; f: CARDINAL);
  PROCEDURE SetPlotBarMode( h: Histogram; wipeOut : BOOLEAN );
  PROCEDURE GetPlotBarMode( h: Histogram; VAR wipeOut, done : BOOLEAN );
  PROCEDURE RemoveHistogram(VAR h: Histogram);
  PROCEDURE DoForAllHistograms(p: HistoAct);
END Histograms.