% -*- PostScript -*-
% Base of a2ps' prologues
%
% $Id: color.hdr,v 1.4 1998/01/15 15:02:26 demaille Exp $
%

%
% This file is part of a2ps.
% 
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2, or (at your option)
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; see the file COPYING.  If not, write to
% the Free Software Foundation, 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.

% Variables and Functions
%
% Variables from `outside'
%	v:		virtual page number in current page
%	sx:		number of chars in lines' prefix
%	tab:		tab size (in chars)
% Functions
%	title:		title
%	footer:		footer
%	border:		border around the body text
% Coordinates
%	x, y:		the virtual pages (arrays)
%	x0, y0:		the current line content (x0 does not include
% 			the line numbers)
%	snx, sny:	left footer
%	dx, dy:		the l-footer
%	lx, ly:		the r-header
%	fnx, fny:	the c-footer
%	scx, scy:	the sheet center
% Font sizes
%	fnfs:		center title
%	bfs:		body
% Fonts
%	df:		footer/header
%	sf:		symbol
%	fnf:		center title
% Widths and heigths
%	cw:		a Courier char
%	pw, ph:		page
%	sw, sh:		sheet
%	th:		v.p. title
% Margins
%	hm:		header
%	ury:		top
%	urx:		right
%	llx:		left

% -- code follows this line --
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
%%DocumentProcessColors: Black
% Function title: prints page header.
% <ct> <rt> <lt> are passed as argument
/title { 
  % 1. Draw the background
  x v get y v get moveto
  0 setgray
  gsave
    0 th 2 div neg rmoveto 
    th setlinewidth
    0.5 0.5 1 setrgbcolor
    pw 0 rlineto stroke
  grestore
  % 2. Border it
  gsave
    0.7 setlinewidth
    pw 0 rlineto
    0 th neg rlineto
    pw neg 0 rlineto
    closepath stroke
  grestore
  % stk: ct rt lt
  x v get y v get th sub 1 add moveto
%Font: Helvetica fnfs 0.8 mul
  % 3. The left title
  gsave
    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
    fnfs 0.8 mul hm rmoveto
    show			% left title
  grestore
  exch
  % stk: ct ltw rt
  % 4. the right title
  gsave
    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
    dup
    pw exch stringwidth pop fnfs 0.8 mul add sub
    hm
    rmoveto
    show			% right title
  grestore
  % stk: ct ltw rtw
  % 5. the center title
  gsave
    pw 3 1 roll
    % stk: ct pw ltw rtw
    3 copy 
    % Move to the center of the left room
    sub add 2 div hm rmoveto
    % What is the available space in here?
    add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
    % stk: ct space_left
%Font: Helvetica-Bold fnfs
    1 setgray
    cfshow
  grestore
} bind def

% Function border: prints virtual page border
/border { %def
  gsave				% print four sides
    0 setgray
    x v get y v get moveto
    0.7 setlinewidth		% of the square
    pw 0 rlineto
    0 ph neg rlineto
    pw neg 0 rlineto
    closepath stroke
  grestore
} bind def

% Function water: prints a water mark in background
/water { %def
  gsave
    scx scy moveto rotate
%Font: Times-Bold 100
    .97 setgray
    dup stringwidth pop 2 div neg -50 rmoveto
    show
  grestore
} bind def

% Function rhead: prints the right header
/rhead {  %def
  lx ly moveto
%Font: Helvetica fnfs 0.8 mul
  l-show
} bind def

% Function footer (cf rf lf -> -)
/footer {
%Font: Helvetica fnfs 0.8 mul
  dx dy moveto
  show

  snx sny moveto
  l-show
  
  fnx fny moveto
  c-show
} bind def

% Function print line number (<string> # -)
/# {
  gsave
    sx cw mul neg 2 div 0 rmoveto
    f# setfont
    c-show
  grestore
} bind def
