%% $Id: pst-ovl.tex 859 2013-12-21 16:51:58Z herbert $
%%
%%
%% This is file `pst-ovl.tex',
%%
%% IMPORTANT NOTICE:
%%
%% Package `pst-ovl.tex'
%% 
%% 2014 --  Timothy Van Zandt
%%          Herbert Voss <hvoss@tug.org>
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
%% DESCRIPTION:
%%   `pst-ovl' is a PSTricks related package for  
%%    overlay support
%%
\csname PSTovlloaded\endcsname
\let\PSTovlloaded\endinput
%
% Requires main PSTricks
\ifx\PSTricksLoaded\endinput\else\input pstricks \fi
%
\def\fileversion{0.04}
\def\filedate{2013/12/28}
\message{`pst-ovl' v\fileversion, \filedate\space (tvz,hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
%
\pstheader{pst-ovl.pro}
%
\def\tx@BeginOL{ tx@ovlDict begin BeginOL }
\def\tx@InitOL{ tx@ovlDict begin InitOL }
\def\tx@BOL{ tx@ovlDict begin BOL end }
%
\def\pst@initoverlay#1{\pst@Verb{ \tx@InitOL /TheOL (#1) def end }}
\def\AltOverlayMode{%
  \def\pst@initoverlay##1{%
    \pst@Verb{
      \tx@InitOL
      /Visible { initclip } def
      /Invisible {
        CP newpath OLUnit itransform moveto clip newpath moveto
      } def
      /TheOL (##1) def end }}}
%
\def\pst@overlay#1{%
  \edef\curr@overlay{#1}%
  \pst@Verb{ tx@ovlDict begin (#1) BOL end }%
  \aftergroup\pst@endoverlay}
%
\def\pst@endoverlay{\pst@Verb{ tx@ovlDict begin (\curr@overlay) BOL end }}
\def\curr@overlay{all}
%
\newbox\theoverlaybox
%
\def\overlaybox{%
  \global\setbox\theoverlaybox=\hbox\bgroup
  \begingroup
  \let\psoverlay\pst@overlay
  \def\overlaybox{%
    \@pstrickserr{Overlays cannot be nested}\@eha}%
  \def\putoverlaybox{%
    \@pstrickserr{You must end the overlay box
         before using \string\putoverlaybox}}%
  \psoverlay{main}%
  \ignorespaces}
%
\def\endoverlaybox{\endgroup\egroup}
\def\putoverlaybox#1{%
  \hbox{\pst@initoverlay{#1}\copy\theoverlaybox}}
%
\def\psoverlay{\@pstrickserr{\string\psoverlay\space
  can only be used after \string\overlaybox}}
%
\catcode`\@=\PstAtCode\relax
%
%% END: pst-ovl.tex
\endinput
