%% -*- TeX -*-
%% (top line is for WinEdt: TeX file)
%%
%% This is file `pdfwin.sty'. It provides three widely
%% customizable windows for screen output of TeX documents.
%%
%% Copyright (C) 2001,02,03   Matthias M\"{u}hlich
%%                            muehlich@iap.uni-frankfurt.de
%%
%% NOTES:
%%  * I prefer readability to achieving maximum effectivity, i.e. I
%%    tried to avoid macros like \hb@xt@, \z@, \p@ or \xixt@@n and
%%    wrote \hbox to, 0, 1pt and 16 instead.
%%  * The package "pdfscreen.sty" by C.V. Radhakrishnan provided a
%%    nice inspiration of what is possible with pdf output - at least
%%    if you use default configuration and are content with the
%%    package and its many bugs.
%%    The pdfwin package was completely coded from scratch and its
%%    features and flexibility extend pdfscreen considerably. Only a
%%    bug fix in "pdfscreen.sty" (provided by D. P. Story) and
%%    some foreign language names were copied.
%%
%% This program may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%%
%% History:
%%   JAN-FEB 2001  1.0  MM  first version
%%     JUL   2001  1.1  MM  I added some macros for a upcoming
%%                          presentation at a conference
%%   SEP-OCT 2001  1.2  MM  some cosmetics; adapted to a lecture script;
%%                          chapterpanel functionality
%%   MAR-APR 2003  1.3  MM  some functionality removed (temporarily);
%%                          first official release
%%
%% =====================================================================
%% This program package contains the following files:
%%  * pdfwin.sty             style file
%%                           (to be included with \UsePackage{pdfwin})
%%  * pdfwin.cfg             configuration file (empty)
%%  ------------------------------------------------------------------
%%  * truncate.sty           style file not included in all LaTeX
%%                           distributions; needed for panel TOC
%%  ------------------------------------------------------------------
%%  * Bucuresti2003.tex      sample document, main file
%%  * Buc*.pdf               graphics for sample document
%%  * marble.png             background graphics for sample document
%%  * JWGU-Logo.png          logo of my university
%%  * shortvec.tex           abbreviations for vectors and matrices
%% =====================================================================
%%
%% feel free to experiment with the code! But remember:
%% modification means change of filename (and be fair and give reference
%% to the original author :-). See LaTeX Project Public
%% License for details.
%%
%% please report bugs to: muehlich@iap.uni-frankfurt.de  Thanks!

\NeedsTeXFormat{LaTeX2e}

% ==============
% identification
% ==============
%
\ProvidesPackage{pdfwin}%
  [2003/04/04 v1.3   This is package pdfwin. It provides widely %
  customizable windows for screen output of TeX documents.]

% =================
% required packages
% =================
%
% NOTE: all packages listed here are standard packages.
% However, if paneltoc is activated you have to get
% truncate.sty from CTAN (e.g. ftp://ftp.dante.de/tex-archive)
\RequirePackage{amssymb}     % black triangles
\RequirePackage{keyval}      % user interface
\RequirePackage{graphicx}
\RequirePackage{color}

% ========================
% preliminary declarations
% ========================
%
\newif\if@nocfg            \@nocfgfalse
\newif\if@paneltoc         \@paneltocfalse
\newif\if@chapterpanel     \@chapterpanelfalse
\newif\if@coloremph        \@coloremphfalse
\newif\if@pdftexdriver     \@pdftexdriverfalse
%
\def\PDFWIN@Warning#1{\PackageWarning{pdfwin}{#1}}
\def\PDFWIN@Info#1{\PackageInfo{pdfwin}{#1}}
\def\PDFWIN@Error#1#2{\PackageError{pdfwin}{#1}{#2}}
\def\PDFWIN@langwarn#1{\PackageWarningNoLine{pdfwin}{%
    Sorry, language `#1' not supported\MessageBreak%
    in this version. English strings are used instead.\MessageBreak%
    However you can give all the strings in the pdfwin.cfg\MessageBreak%
    file which will be read by the package. \MessageBreak\MessageBreak%
    If you can suggest translations for this language,\MessageBreak%
    please mail them to the author of this package}}
%
\def\paneltitlepagename#1{\gdef\@Paneltitlepagename{#1}}
\def\panelabstractname#1{\gdef\@Panelabstractname{#1}}
\def\panelcontentsname#1{\gdef\@Panelcontentsname{#1}}
\def\panelindexname#1{\gdef\@Panelindexname{#1}}
\def\panelhomepagename#1{\gdef\@Panelhomepagename{#1}}
\def\panelfullscreenname#1{\gdef\@Panelfullscreenname{#1}}
\def\panelgobackname#1{\gdef\@Panelgobackname{#1}}
\def\panelgoforwardname#1{\gdef\@Panelgoforwardname{#1}}
\def\panelsearchname#1{\gdef\@Panelsearchname{#1}}
\def\panelquitname#1{\gdef\@Panelquitname{#1}}
\def\panelclosename#1{\gdef\@Panelclosename{#1}}
\def\panelpagename#1{\gdef\@Panelpagename{#1}}
\def\panelofname#1{\gdef\@Panelofname{#1}}
\let\@Paneltitlepagename\@empty
\let\@Panelabstractname\@empty
\let\@Panelcontentsname\@empty
\let\@Panelindexname\@empty
\let\@Panelhomepagename\@empty
\let\@Panelfullscreenname\@empty
\let\@Panelgobackname\@empty
\let\@Panelgoforwardname\@empty
\let\@Panelsearchname\@empty
\let\@Panelquitname\@empty
\let\@Panelclosename\@empty
\let\@Panelpagename\@empty
\let\@Panelofname\@empty

% =================================
% option declaration and processing
% =================================
%
\DeclareOption{nocfg}{\@nocfgtrue}
\DeclareOption{paneltoc}{\@paneltoctrue}
\DeclareOption{chapterpanel}{\@chapterpaneltrue}
\DeclareOption{coloremph}{\@coloremphtrue}
\DeclareOption{pdftex}{\@pdftexdrivertrue}
\DeclareOption{sectionbreak}{%
  \let\org@section\section\def\section{\clearpage\org@section}%
}
%
\DeclareOption{catalan}{%
  \paneltitlepagename{Inici}
  \panelabstractname{Resum}
  \panelcontentsname{Contingut}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Plana personal}
  \panelgobackname{Tornar}
  \panelgoforwardname{->}
  \panelclosename{Tancar}
  \panelsearchname{???}
  \panelquitname{Sortir}
  \panelpagename{P\`agina}
  \panelofname{de}
}
\DeclareOption{czech}{%
  \paneltitlepagename{Tituln\'{\i} strana}
  \panelabstractname{Abstrakt}
  \panelcontentsname{Obsah}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{\'Uvodn\'{\i} strana}
  \panelgobackname{Zp\v{e}t}
  \panelgoforwardname{->}
  \panelclosename{Zav\v{r}\'{\i}t}
  \panelsearchname{???}
  \panelquitname{Konec}
  \panelpagename{Strana}
  \panelofname{z}
}
\DeclareOption{danish}{%
  \paneltitlepagename{Forside}
  \panelabstractname{Resum\'e}
  \panelcontentsname{Indhold}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Hjemmeside}
  \panelgobackname{G\aa\ tilbage}
  \panelgoforwardname{->}
  \panelclosename{Luk}
  \panelsearchname{???}
  \panelquitname{Afslut}
  \panelpagename{Side}
  \panelofname{af}
}
\DeclareOption{dutch}{
  \paneltitlepagename{Titel Pagina}
  \panelabstractname{Samenvatting}
  \panelcontentsname{Inhoudsopgave}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Startpagina}
  \panelgobackname{Ga terug}
  \panelgoforwardname{->}
  \panelclosename{Sluiten}
  \panelsearchname{???}
  \panelquitname{Be\"eindigen}
  \panelpagename{Pagina}
  \panelofname{van}
}
\DeclareOption{english}{%
  \paneltitlepagename{Title Page}
  \panelabstractname{Abstract}
  \panelcontentsname{Contents}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Home Page}
  \panelgobackname{Go Back}
  \panelgoforwardname{Go Forward}
  \panelclosename{Close}
  \panelsearchname{Search}
  \panelquitname{Quit}
  \panelpagename{Page}
  \panelofname{of}
}
\DeclareOption{french}{%
  \paneltitlepagename{Page de Titre}
  \panelabstractname{R\'esum\'e}
  \panelcontentsname{Sommaire}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Page d\'accueil}
  \panelgobackname{Retour}
  \panelgoforwardname{->}
  \panelclosename{Fermer}
  \panelsearchname{???}
  \panelquitname{Quitter}
  \panelpagename{Page}
  \panelofname{de}
}
\DeclareOption{german}{%
  \paneltitlepagename{Titelseite}
  \panelabstractname{Zusammenfassung}
  \panelcontentsname{Inhalt}
  \panelindexname{Index}
  \panelfullscreenname{Vollbild}
  \panelhomepagename{WWW-Startseite}
  \panelgobackname{Zur\"uck}
  \panelgoforwardname{Vor}
  \panelclosename{Schlie\ss en}
  \panelsearchname{Suchen}
  \panelquitname{Beenden}
  \panelpagename{Seite}
  \panelofname{von}
}
\DeclareOption{norsk}{%
  \paneltitlepagename{Forside}
  \panelabstractname{Sammendrag}
  \panelcontentsname{Innhold}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Hjemmeside}
  \panelgobackname{G\aa\ tilbake}
  \panelgoforwardname{->}
  \panelclosename{Lukk}
  \panelsearchname{???}
  \panelquitname{Avslutt}
  \panelpagename{Side}
  \panelofname{av}
}
\DeclareOption{nynorsk}{%
  \paneltitlepagename{Forside}
  \panelabstractname{Samandrag}
  \panelcontentsname{Innhald}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Heimeside}
  \panelgobackname{G\aa\ tilbake}
  \panelgoforwardname{->}
  \panelclosename{Lat att}
  \panelsearchname{???}
  \panelquitname{Avslutt}
  \panelpagename{Side}
  \panelofname{av}
}
\DeclareOption{polish}{%
  \paneltitlepagename{Strona tytu\l owa}
  \panelabstractname{Streszczenie}
  \panelcontentsname{Spis tre\'sci}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Strona g\l \'owna}
  \panelgobackname{Powr\'ot}
  \panelgoforwardname{->}
  \panelclosename{Zamknij}
  \panelsearchname{???}
  \panelquitname{Koniec}
  \panelpagename{Strona}
  \panelofname{z}
}
\DeclareOption{portuges}{%
  \paneltitlepagename{P\'agina de Rosto}
  \panelabstractname{Sum\'ario}
  \panelcontentsname{\'Indice Geral}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Homepage}
  \panelgobackname{Voltar}
  \panelgoforwardname{->}
  \panelclosename{Fechar}
  \panelsearchname{???}
  \panelquitname{Desistir}
  \panelpagename{P\'agina}
  \panelofname{de}
}
\DeclareOption{russian}{%
  \paneltitlepagename{\cyr\CYRT\cyri\cyrt\cyru\cyrl\cyrsftsn\cyrn\cyra\cyrya{}
    \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}
  \panelabstractname{\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya}
  \panelcontentsname{\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Home Page}
  \panelgobackname{\cyr\CYRN\cyra\cyrz\cyra\cyrd}
  \panelgoforwardname{->}
  \panelclosename{\cyr\CYRZ\cyra\cyrk\cyrr\cyrery\cyrt\cyrsftsn}
  \panelsearchname{???}
  \panelquitname{\cyr\CYRV\cyrery\cyrh\cyro\cyrd}
  \panelpagename{\cyr\CYRS\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}
  \panelofname{\cyr\cyri\cyrz}
}
\DeclareOption{slovak}{%
  \paneltitlepagename{Tituln\'a strana}
  \panelabstractname{Abstrakt}
  \panelcontentsname{Obsah}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Domovsk\'a str\'anka}
  \panelgobackname{Sp\"a\v t}
  \panelgoforwardname{->}
  \panelclosename{Zatvori\v t}
  \panelsearchname{???}
  \panelquitname{Koniec}
  \panelpagename{Strana}
  \panelofname{z}
}
\DeclareOption{slovene}{%
  \paneltitlepagename{Naslovnica}
  \panelabstractname{Povzetek}
  \panelcontentsname{Kazalo}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Spletna stran}
  \panelgobackname{Nazaj}
  \panelgoforwardname{->}
  \panelclosename{Zapri}
  \panelsearchname{???}
  \panelquitname{Kon\v{c}aj}
  \panelpagename{Stran}
  \panelofname{od}
}
\DeclareOption{spanish}{%
  \paneltitlepagename{P\'agina de Abertura}
  \panelabstractname{Resumen}
  \panelcontentsname{Contenido}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{P\'agina www}
  \panelgobackname{Regresar}
  \panelgoforwardname{->}
  \panelclosename{Cerrar}
  \panelsearchname{???}
  \panelquitname{Abandonar}
  \panelpagename{P\'agina}
  \panelofname{de}
}
\DeclareOption{swedish}{%
  \paneltitlepagename{F\"ors\"attsblad}
  \panelabstractname{Sammanfattning}
  \panelcontentsname{Inneh\aa{}ll}
  \panelindexname{Index} % ???
  \panelfullscreenname{Full Screen}
  \panelhomepagename{Hemsida}
  \panelgobackname{Tillbaka}
  \panelgoforwardname{->}
  \panelclosename{St\"ang}
  \panelsearchname{???}
  \panelquitname{Avsluta}
  \panelpagename{Sida}
  \panelofname{av}
}
% define all other languages of babel package as non existent
\DeclareOption{bahasa}{\PDFSCR@langwarn{bahasa}\ExecuteOptions{english}}
\DeclareOption{breton}{\PDFSCR@langwarn{breton}\ExecuteOptions{english}}
\DeclareOption{croatian}{\PDFSCR@langwarn{croatian}\ExecuteOptions{english}}
\DeclareOption{esperanto}{\PDFSCR@langwarn{esperanto}\ExecuteOptions{english}}
\DeclareOption{finnish}{\PDFSCR@langwarn{finnish}\ExecuteOptions{english}}
\DeclareOption{galician}{\PDFSCR@langwarn{galician}\ExecuteOptions{english}}
\DeclareOption{greek}{\PDFSCR@langwarn{greek}\ExecuteOptions{english}}
\DeclareOption{hebrew}{\PDFSCR@langwarn{hebrew}\ExecuteOptions{english}}
\DeclareOption{hungarian}{\PDFSCR@langwarn{hungarian}\ExecuteOptions{english}}
\DeclareOption{magyar}{\PDFSCR@langwarn{magyar}\ExecuteOptions{english}}
\DeclareOption{irish}{\PDFSCR@langwarn{irish}\ExecuteOptions{english}}
\DeclareOption{italian}{\PDFSCR@langwarn{italian}\ExecuteOptions{english}}
\DeclareOption{lowersorbian}{\PDFSCR@langwarn{lowersorbian}\ExecuteOptions{english}}
\DeclareOption{uppersorbian}{\PDFSCR@langwarn{uppersorbian}\ExecuteOptions{english}}
\DeclareOption{romanian}{\PDFSCR@langwarn{romanian}\ExecuteOptions{english}}
\DeclareOption{scottish}{\PDFSCR@langwarn{scottish}\ExecuteOptions{english}}
\DeclareOption{turkish}{\PDFSCR@langwarn{turkish}\ExecuteOptions{english}}
\DeclareOption{ukrainian}{\PDFSCR@langwarn{ukrainian}\ExecuteOptions{english}}
\DeclareOption{welsh}{\PDFSCR@langwarn{welsh}\ExecuteOptions{english}}

% some replacements
\DeclareOption{american}{\ExecuteOptions{english}}
\DeclareOption{USenglish}{\ExecuteOptions{english}}
\DeclareOption{UKenglish}{\ExecuteOptions{english}}
\DeclareOption{british}{\ExecuteOptions{english}}
\DeclareOption{austrian}{\ExecuteOptions{german}}
\DeclareOption{germanb}{\ExecuteOptions{german}}
\DeclareOption{brazil}{\ExecuteOptions{portuges}}
\DeclareOption{portuguese}{\ExecuteOptions{portuges}}
\DeclareOption{brazilian}{\ExecuteOptions{portuges}}
\DeclareOption{francais}{\ExecuteOptions{french}}
\DeclareOption{ngerman}{\typeout{****** Igitt! Neue Beliebigkeits-Rechtschreibung!%
  Na, meinetwegen... ;-) ******}\ExecuteOptions{german}}
\DeclareOption{naustrian}{\typeout{****** Igitt! Neue Beliebigkeits-Rechtschreibung!%
  Na, meinetwegen... ;-) ******}\ExecuteOptions{german}}
\ExecuteOptions{english}
\ProcessOptions\relax



% =======================
% BEGIN OF IMPLEMENTATION
% =======================
%
% NOTE: all identifiers containing an '@' symbol are internal
% identifiers. Please do not write code that relies on these
% functions because they might change in future versions.

% --------------------------------------------------------------
% HYPERREF SETUP
%
\if@paneltoc\RequirePackage[breakall]{truncate}\fi
%
\@ifundefined{hyperref}{%
  \if@pdftexdriver%
    \RequirePackage[pdftex,backref,pagebackref,colorlinks,plainpages=false,%
      menucolor=menucolor,%
%      pdfpagemode=FullScreen,%
      pdfmenubar=false,pdftoolbar=false,%
      pdffitwindow=true,pdfcenterwindow=true,pdfwindowui=false,pdfview=Fit,%
      pdfstartview=Fit]{hyperref}%
  \else% (no pdftex => try to setup hyperref now)
    \hypersetup{%
      backref,pagebackref,colorlinks,plainpages=false,menucolor=menucolor,%
      pdfpagemode=none,pdfmenubar=false,pdftoolbar=false,pdffitwindow=true,%
      pdfcenterwindow=true,pdfwindowui=false,pdfview=Fit,pdfstartview=Fit%
    }
  \fi%
}{ % (else hyperref undefined)
  \PDFWIN@Error{Please load hyperref package first}{hyperref must be loaded before pdfwin}%
}


% --------------------------------------------------------------
% COUNTERS
%
% window types
%  0: disabled
%  1: transparent
%  2: colored background
%  3: graphics
%  4: colored background + graphics
\newcount\@Screen@Type      \@Screen@Type=2
\newcount\@Text@WinType     \@Text@WinType=2
\newcount\@Panel@WinType    \@Panel@WinType=2
\newcount\@User@WinType     \@User@WinType=0
%
% define chapter counter for small classes (!!!)
\ifx\c@chapter\@undefined\newcount\c@chapter\fi
%
% RealPage is necessary to allow different page numberings,
% e.g. roman for titlepage, abstract, contents and foreword
% and arabic numbering (starting with 1!) for the rest
\newcounter{RealPage}
\setcounter{RealPage}{1}
%
% Three windows are predefined - text, panel, user. Additional windows
% can be defined by the user if he/she needs them.
\newcounter{WindowCount}
\setcounter{WindowCount}{3}
%
% PanelTocLine is a counter for the lines in the panel TOC
\newcounter{PanelTocLine}[page]
\newcounter{TocChapterCount}[page]
\newcounter{ptocsection}\setcounter{ptocsection}{0}


% --------------------------------------------------------------
% BOOLEANS
%
\newif\if@PanelTocHighlight   \@PanelTocHighlightfalse
\newif\if@PTocNTransparent    \@PTocNTransparentfalse
\newif\if@PTocHTransparent    \@PTocHTransparentfalse
\newif\if@InPreamble          \@InPreambletrue
\AtBeginDocument{\@InPreamblefalse}


% --------------------------------------------------------------
% COLORS  ---  these colors can be modified (i.e. redefined) by the user
%
% screen and window colors
\definecolor{ScreenBackgroundColor}{rgb}{.0,.2,.8}
\definecolor{TextBackgroundColor}{rgb}{.8,.9,1.0}
\definecolor{PanelBackgroundColor}{rgb}{.7,.75,.8}
\definecolor{UserBackgroundColor}{rgb}{1.0,1.0,1.0}
\definecolor{TextBorderColor}{rgb}{.0,.0,.0}
\definecolor{PanelBorderColor}{rgb}{.0,.0,.0}
\definecolor{UserBorderColor}{rgb}{.0,.0,.0}
% button colors
\definecolor{ButtonTextColor}{rgb}{.0,.0,.3}
\definecolor{ButtonHighlightedTextColor}{rgb}{.8,.0,.2}
\definecolor{ButtonDisabledTextColor}{rgb}{.5,.55,.6}
\definecolor{ButtonBackgroundColor}{rgb}{.7,.75,.8}
\definecolor{ButtonUpperShadowColor}{rgb}{.85,.9,.95}
\definecolor{ButtonShadowColor}{rgb}{.5,.55,.6}
% logo colors
\definecolor{LogoShadowColor}{rgb}{.85,.9,.95}
\definecolor{LogoUpperShadowColor}{rgb}{.5,.55,.6}
% panel toc colors
\definecolor{PanelTocNormalTextColor}{rgb}{.0,.0,.3}
\definecolor{PanelTocNormalBackgroundColor}{rgb}{.7,.75,.8}
\definecolor{PanelTocHighlightedTextColor}{rgb}{.8,.8,.0}
\definecolor{PanelTocHighlightedBackgroundColor}{rgb}{.0,.0,.3}
% text colors
\definecolor{TextEmphColor}{rgb}{.0,.0,.8}%
\definecolor{TextGrayedOutColor}{rgb}{.5,.5,.5}%
\definecolor{TextHighlightedColor}{rgb}{.9,.0,.2}%
\definecolor{TextRevealedColor}{rgb}{.0,.0,.5}%
% section headings
\definecolor{Section0Color}{rgb}{.7,.7,.0}
\definecolor{Section1Color}{rgb}{.75,.6,.1}
\definecolor{Section2Color}{rgb}{.7,.4,.2}
\definecolor{Section3Color}{rgb}{.65,.2,.3}
\definecolor{Section4Color}{rgb}{.6,.1,.5}
\definecolor{Section5Color}{rgb}{.55,.0,.7}
% chapter panel colors: 0 - title, contents, index, ...
%                       1 - normal chapters
% a/b/c/d: background/text/upper shadow/lower shadow
\definecolor{ChapterPanelColor0a}{rgb}{.9,.9,.9}
\definecolor{ChapterPanelColor0b}{rgb}{0,0,0}
\definecolor{ChapterPanelColor0c}{rgb}{1,1,1}
\definecolor{ChapterPanelColor0d}{rgb}{.4,.4,.4}
\definecolor{ChapterPanelColor1a}{rgb}{.15,.2,.5}
\definecolor{ChapterPanelColor1b}{rgb}{.95,.95,.95}
\definecolor{ChapterPanelColor1c}{rgb}{.6,.7,.95}
\definecolor{ChapterPanelColor1d}{rgb}{.0,.05,.3}

% --------------------------------------------------------------
% LENGTHS
%
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\footskip}{0pt}
\hoffset=0pt
\voffset=0pt
\paperwidth=20cm
\paperheight=15cm
\pagestyle{empty}
%
% NOTE:
% We will use the \put command for displaying graphics. Therefore,%
% the origin is in the LOWER left corner at (0pt/0pt).
%
% - text window position (lower left corner) and size
\newlength{\@Text@LLX}          \setlength{\@Text@LLX}{.02\paperwidth}
\newlength{\@Text@LLY}          \setlength{\@Text@LLY}{.02\paperheight}
\newlength{\@Text@DimX}         \setlength{\@Text@DimX}{.79\paperwidth}
\newlength{\@Text@DimY}         \setlength{\@Text@DimY}{.96\paperheight}
% - panel position (lower left corner) and size
\newlength{\@Panel@LLX}         \setlength{\@Panel@LLX}{.83\paperwidth}
\newlength{\@Panel@LLY}         \setlength{\@Panel@LLY}{.02\paperheight}
\newlength{\@Panel@DimX}        \setlength{\@Panel@DimX}{.15\paperwidth}
\newlength{\@Panel@DimY}        \setlength{\@Panel@DimY}{.96\paperheight}
% - user window position (lower left corner) and size
\newlength{\@User@LLX}          \setlength{\@User@LLX}{.02\paperwidth}
\newlength{\@User@LLY}          \setlength{\@User@LLY}{.92\paperheight}
\newlength{\@User@DimX}         \setlength{\@User@DimX}{.79\paperwidth}
\newlength{\@User@DimY}         \setlength{\@User@DimY}{.06\paperheight}
% - window borders
\newlength{\@Text@BorderThickness}  \setlength{\@Text@BorderThickness}{2.0pt}
\newlength{\@Text@BorderArcRadius}  \setlength{\@Text@BorderArcRadius}{12pt}
\newlength{\@Panel@BorderThickness} \setlength{\@Panel@BorderThickness}{2.0pt}
\newlength{\@Panel@BorderArcRadius} \setlength{\@Panel@BorderArcRadius}{12pt}
\newlength{\@User@BorderThickness}  \setlength{\@User@BorderThickness}{2.0pt}
\newlength{\@User@BorderArcRadius}  \setlength{\@User@BorderArcRadius}{12pt}
% - margins (apply for text window)
\newlength{\@LeftMargin}       \setlength{\@LeftMargin}{1cm}
\newlength{\@RightMargin}      \setlength{\@RightMargin}{1cm}
\newlength{\@TopMargin}        \setlength{\@TopMargin}{1cm}
\newlength{\@BottomMargin}     \setlength{\@BottomMargin}{1cm}
% - button shape
\newlength{\@ButtonShadowDepth}\setlength{\@ButtonShadowDepth}{2pt}
\newlength{\@ButtonWidth}      \setlength{\@ButtonWidth}{.8\@Panel@DimX}
\newlength{\@SmallButtonWidth} \setlength{\@SmallButtonWidth}{.4\@Panel@DimX}
\addtolength{\@SmallButtonWidth}{-\@ButtonShadowDepth}
% - logo shape
\newlength{\@LogoWidth}        \setlength{\@LogoWidth}{.7\@Panel@DimX}
\newlength{\@LogoShadowDepth}  \setlength{\@LogoShadowDepth}{3.0pt}
% - panel toc height (usually automatic; fixed only if >0)
\newlength{\@PanelTOCHeight}   \setlength{\@PanelTOCHeight}{0cm}
%
% temporary help registers
\newdimen\Win@DimX
\newdimen\Win@DimY
\newdimen\Win@LLX
\newdimen\Win@LLY
\newdimen\Win@BT
\newdimen\Win@BR

% --------------------------------------------------------------
% LAYOUT
%
\newcommand{\InitLayout}{%
  % NOTE: both \oddsidemargin and \evensidemargin define
  %       LEFT margins (on odd/even pages). In one-sided
  %       documents only \oddsidemargin is used.
  \if@InPreamble%
  \else%
    \PDFWIN@Warning{***** Page Layout changed outside of %
     Preamble - this might not work as expected! *****}
  \fi%
  \global\setlength{\textwidth}{\@Text@DimX}%
  \global\addtolength{\textwidth}{-\@LeftMargin}%
  \global\addtolength{\textwidth}{-\@RightMargin}%
  \global\setlength{\textheight}{\@Text@DimY}%
  \global\addtolength{\textheight}{-\@TopMargin}%
  \global\addtolength{\textheight}{-\@BottomMargin}%
  \global\addtolength{\textheight}{-\headheight}%
  \global\addtolength{\textheight}{-\headsep}%
  \global\addtolength{\textheight}{-\footskip}%
  \global\setlength{\oddsidemargin}{\@LeftMargin}%
  \global\addtolength{\oddsidemargin}{\@Text@LLX}%
  \global\addtolength{\oddsidemargin}{-1in}%
  \global\setlength{\evensidemargin}{\@LeftMargin}%
  \global\addtolength{\evensidemargin}{\@Text@LLX}%
  \global\addtolength{\evensidemargin}{-1in}%
  \global\setlength{\topmargin}{\@TopMargin}%
  \global\addtolength{\topmargin}{\paperheight}%
  \global\addtolength{\topmargin}{-\@Text@DimY}%
  \global\addtolength{\topmargin}{-\@Text@LLY}%
  \global\addtolength{\topmargin}{-1in}%
}
\InitLayout  % initialize with default values

% --------------------------------------------------------------
% GENERAL DEFINITIONS
%
\renewcommand\floatpagefraction{1}
\renewcommand\textfraction{0}
%
% Overwrite page styles. Can be modified by user to make use of
% explicit or implicit (e.g. "empty" for title page or "plain" for
% first page of chapters) page style modifications
\def\ps@plain{}
\def\ps@empty{}
\def\ps@firstpage{}
\def\ps@headings{}
\def\ps@myheadings{}
\def\ps@title{}
%
\def\@linkcolor{red}
\def\@anchorcolor{blue}
\def\@citecolor{red}
\def\@filecolor{red}
\def\@urlcolor{magenta}
\def\@menucolor{red}
\def\@pagecolor{red}
%
\def\Top@Text@{\relax}
\def\@Text@{\relax}
\def\@Panel@{\relax}
\def\@User@{\relax}
%
\let\@Screen@Overlay\@empty
\let\@Text@Overlay\@empty
\let\@Panel@Overlay\@empty
\let\@User@Overlay\@empty
%
\def\emptystring{empty}
\edef\@paneltext{\emptystring}
\edef\@LogoFile{\emptystring}
\def\@LogoWidth{2cm}
\edef\@HomepageURL{\emptystring}
\edef\@LogoURL{\emptystring}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% USER INTERFACE
%
\long\def\SetUnderTextWin#1{\gdef\@Text@{#1}}
\long\def\SetOverTextWin#1{\gdef\Top@Text@{#1}}
\long\def\SetPanelContents#1{\gdef\@Panel@{#1}}
\long\def\SetUserContents#1{\gdef\@User@{#1}}
%
\newcommand{\SetMargins}[4]{%
  \global\setlength{\@LeftMargin}{#1}%
  \global\setlength{\@RightMargin}{#2}%
  \global\setlength{\@TopMargin}{#3}%
  \global\setlength{\@BottomMargin}{#4}%
  \InitLayout%
}
\newcommand{\SetPaneltext}[1]{\gdef\@paneltext{#1}}
%
\expandafter\def\csname WindowName1\endcsname{Text}
\expandafter\def\csname WindowName2\endcsname{Panel}
\expandafter\def\csname WindowName3\endcsname{User}
\expandafter\def\csname WindowRef1\endcsname{text}
\expandafter\def\csname WindowRef2\endcsname{panel}
\expandafter\def\csname WindowRef3\endcsname{user}
%
% MACROS USING KEYVAL PACKAGE
\def\SetScreen#1{\setkeys{pdfwinScreen}{#1}}
\def\SetLogo#1{\setkeys{pdfwinLogo}{#1}}
\def\SetButtons#1{\setkeys{pdfwinButtons}{#1}}
\def\SetPanelTOC#1{\setkeys{pdfwinPanelTOC}{#1}}
\def\SetWindow#1#2{%
  \def\@WinName{error}%
  \@tempcnta=\c@WindowCount%
  \loop%
  \ifnum\@tempcnta>0%
    \def\tempa{#1}%
    \edef\tempb{\csname WindowRef\number\@tempcnta\endcsname}%
    \ifx\tempa\tempb%
      \xdef\@WinName{\csname WindowName\number\@tempcnta\endcsname}%
    \fi%
    \advance\@tempcnta by -1%
  \repeat%
  \def\tempb{error}%
  \ifx\@WinName\tempb%
    \PDFWIN@Error{SetWindow called with wrong window name specifier '#1'}%
    {you can only use 'text', 'panel' or 'user' (or your user-created%
    additional specifiers) as window identifiers %
    (first argument of SetWindow command)}%
  \fi%
  \setkeys{pdfwin}{#2}%
}
%
% SCREEN KEYS
\define@key{pdfwinScreen}{width}{\global\paperwidth=#1}
\define@key{pdfwinScreen}{height}{\global\paperheight=#1\InitLayout}
\define@key{pdfwinScreen}{filename}{\xdef\@Screen@Overlay{#1}}
\define@key{pdfwinScreen}{backgroundcolor}%
  {\definecolor{ScreenBackgroundColor}{rgb}{#1}}
\define@key{pdfwinScreen}{type}{%
  \def\tempa{#1}%
  \def\tempb{disabled}%
  \ifx\tempa\tempb\PDFWIN@Error{Disabling screen?! NO!}{\PDFWIN@ScreenErr}%
  \else\def\tempb{transparent}%
  \ifx\tempa\tempb\PDFWIN@Error{transparent screen?! NO!}{\PDFWIN@ScreenErr}%
  \else\def\tempb{colored}%
  \ifx\tempa\tempb\global\@Screen@Type=2%
  \else\def\tempb{graphics}%
  \ifx\tempa\tempb\global\@Screen@Type=3%
  \else\def\tempb{extended}%
  \ifx\tempa\tempb\global\@Screen@Type=4%
  \else\def\tempb{wallpaper}%
  \ifx\tempa\tempb\global\@Screen@Type=5%
  \else\PDFWIN@Error{SetScreen called with wrong type specifier '#1'}{\PDFWIN@ScreenErr}%
  \fi\fi\fi\fi\fi\fi%
}
\def\PDFWin@ScreenErr{Only 'colored', 'graphics', 'extended' and 'wallpaper' are %
  allowed for the screen type. In contrast to windows, 'disabled' and %
  'transparent' are forbidden.}
%
% LOGO KEYS
\define@key{pdfwinLogo}{shadowcolor}%
  {\definecolor{LogoShadowColor}{rgb}{#1}}
\define@key{pdfwinLogo}{uppershadowcolor}%
  {\definecolor{LogoUpperShadowColor}{rgb}{#1}}
\define@key{pdfwinLogo}{filename}{\xdef\@LogoFile{#1}}
\define@key{pdfwinLogo}{width}{\xdef\@LogoWidth{#1}}
\define@key{pdfwinLogo}{shadowdepth}{\global\@LogoShadowDepth=#1}
\define@key{pdfwinLogo}{url}{\xdef\@LogoURL{#1}}
%
% BUTTONS KEYS
\def\Init@Buttons{%
  \global\setlength{\@SmallButtonWidth}{.5\@ButtonWidth}%
  \global\addtolength{\@SmallButtonWidth}{-\@ButtonShadowDepth}}
\define@key{pdfwinButtons}{width}{\global\@ButtonWidth=#1\Init@Buttons}
\define@key{pdfwinButtons}{shadowdepth}%
  {\global\@ButtonShadowDepth=#1\Init@Buttons}
\define@key{pdfwinButtons}{backgroundcolor}%
  {\definecolor{ButtonBackgroundColor}{rgb}{#1}}
\define@key{pdfwinButtons}{textcolor}%
  {\definecolor{ButtonTextColor}{rgb}{#1}}
\define@key{pdfwinButtons}{htextcolor}%
  {\definecolor{ButtonHighlightedTextColor}{rgb}{#1}}
\define@key{pdfwinButtons}{dtextcolor}%
 {\definecolor{ButtonDisabledTextColor}{rgb}{#1}}
\define@key{pdfwinButtons}{shadowcolor}%
  {\definecolor{ButtonShadowColor}{rgb}{#1}}
\define@key{pdfwinButtons}{uppershadowcolor}%
  {\definecolor{ButtonUpperShadowColor}{rgb}{#1}}
\define@key{pdfwinButtons}{url}{\xdef\@HomepageURL{#1}}
%
% PANELTOC KEYS
\define@key{pdfwinPanelTOC}{textcolor}%
  {\definecolor{PanelTocNormalTextColor}{rgb}{#1}}
\define@key{pdfwinPanelTOC}{backgroundcolor}%
  {\definecolor{PanelTocNormalBackgroundColor}{rgb}{#1}}
\define@key{pdfwinPanelTOC}{htextcolor}%
  {\definecolor{PanelTocHighlightedTextColor}{rgb}{#1}}
\define@key{pdfwinPanelTOC}{hbackgroundcolor}%
  {\definecolor{PanelTocHighlightedBackgroundColor}{rgb}{#1}}
\define@key{pdfwinPanelTOC}{height}%
  {\global\@PanelTOCHeight=#1}
\define@key{pdfwinPanelTOC}{transparency}{%
  \def\tempa{#1}%
  \def\tempb{none}%
  \ifx\tempa\tempb\@PTocNTransparentfalse\@PTocHTransparentfalse%
  \else\def\tempb{normal}%
  \ifx\tempa\tempb\@PTocNTransparenttrue\@PTocHTransparentfalse%
  \else\def\tempb{highlighted}%
  \ifx\tempa\tempb\@PTocNTransparentfalse\@PTocHTransparenttrue%
  \else\def\tempb{both}%
  \ifx\tempa\tempb\@PTocNTransparenttrue\@PTocHTransparenttrue%
  \else\PDFWIN@Error{wrong specifier '#1' for panel TOC transparency mode}%
    {Only the transparency modes 'none', 'normal', 'highlighted' and%
    'both' are possible}%
  \fi\fi\fi\fi%
}
%
% WINDOW KEYS
\def\Adjust@Text@Win{\InitLayout}
\def\Adjust@Panel@Win{}
\def\Adjust@User@Win{}
\define@key{pdfwin}{basex}{\global\csname @\@WinName @LLX\endcsname=#1%
  \csname Adjust@\@WinName @Win\endcsname}
\define@key{pdfwin}{basey}{\global\csname @\@WinName @LLY\endcsname=#1%
  \csname Adjust@\@WinName @Win\endcsname}
\define@key{pdfwin}{width}{\global\csname @\@WinName @DimX\endcsname=#1%
  \csname Adjust@\@WinName @Win\endcsname}
\define@key{pdfwin}{height}{\global\csname @\@WinName @DimY\endcsname=#1%
  \csname Adjust@\@WinName @Win\endcsname}
\define@key{pdfwin}{borderthickness}%
  {\global\csname @\@WinName @BorderThickness\endcsname=#1}
\define@key{pdfwin}{borderradius}%
  {\global\csname @\@WinName @BorderArcRadius\endcsname=#1}
\define@key{pdfwin}{filename}%
  {\expandafter\xdef\csname @\@WinName @Overlay\endcsname{#1}}
\define@key{pdfwin}{backgroundcolor}%
  {\definecolor{\@WinName BackgroundColor}{rgb}{#1}}
\define@key{pdfwin}{bordercolor}%
  {\definecolor{\@WinName BorderColor}{rgb}{#1}}
\define@key{pdfwin}{type}{%
  \def\tempa{#1}%
  \def\tempb{disabled}%
  \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=0%
  \else\def\tempb{transparent}%
  \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=1%
  \else\def\tempb{colored}%
  \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=2%
  \else\def\tempb{graphics}%
  \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=3%
  \else\def\tempb{extended}%
  \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=4%
  \else\PDFWIN@Error{SetWindow called with wrong window type specifier '#1'}%
   {Only the window types 'disabled', 'transparent', 'colored',%
   'graphics' and 'extended' are allowed.}%
  \fi\fi\fi\fi\fi%
}
%           --- user interface finished ---
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%==========================================================
%
%    --- internal realization part starts here ---
%
% NOTE: the following commands will be written to aux-file;
% the initial value defined here is overwritten when aux-file is read.
% NOTE: \LastPageString is not necessarily an arabic number
\newcommand*{\LastPageString}{?}      % for page <x> of <y>
\newcommand*{\ChapterNumber}{10}      % for chapter panel
\newcommand*{\LastPage}{999}          % for disabling this button
\newcommand*{\AbstractPage}{0}        % for disabling this button
\newcommand*{\ContentsPage}{0}        % for disabling this button
\newcommand*{\IndexPage}{0}           % for disabling this button
%
% chapter-specific version of \LastPageString:
\expandafter\def\csname LastPageC0String\endcsname{???}
\expandafter\def\csname LastPageC1String\endcsname{???}
\expandafter\def\csname LastPageC2String\endcsname{???}
\expandafter\def\csname LastPageC3String\endcsname{???}
\expandafter\def\csname LastPageC4String\endcsname{???}
\expandafter\def\csname LastPageC5String\endcsname{???}
\expandafter\def\csname LastPageC6String\endcsname{???}
\expandafter\def\csname LastPageC7String\endcsname{???}
\expandafter\def\csname LastPageC8String\endcsname{???}
\expandafter\def\csname LastPageC9String\endcsname{???}
\expandafter\def\csname LastPageC10String\endcsname{???}
\expandafter\def\csname LastPageC11String\endcsname{???}
\expandafter\def\csname LastPageC12String\endcsname{???}
\expandafter\def\csname LastPageC13String\endcsname{???}
\expandafter\def\csname LastPageC14String\endcsname{???}
\expandafter\def\csname LastPageC15String\endcsname{???}
%
% WARNING: AN EVIL HACK WILL FOLLOW NOW ... CONTINUE READING AT OWN RISK ;-)
% we have to fight a fierce battle against the babel package here:
% babel writes a \select@language command at the begin of the aux-file
% (and toc, lof, lot files, if they exist). This command overwrites
% \contentsname and \abstractname. Thus, a simple definition would
% not work.
% We have to change it \emph{at the beginning of the document}.
% And additionally, we have to modify \select@language (this is
% executed at the beginning of every toc, lof, lot or aux file!).
\newcommand*{\PDFWinFightsBabelSuccessfully}{%
  \renewcommand*{\contentsname}{%
    \protect\hypertarget{contents}{\@Panelcontentsname}%
    \immediate\write\@auxout{\string\gdef\string\ContentsPage{\number\c@RealPage}}%
  }%
  \renewcommand*{\abstractname}{%
    \protect\hypertarget{abstract}{\@Panelabstractname}%
    \immediate\write\@auxout{\string\gdef\string\AbstractPage{\number\c@RealPage}}%
  }%
  \renewcommand*{\indexname}{%
    \protect\hypertarget{index}{\@Panelindexname}%
    \immediate\write\@auxout{\string\gdef\string\IndexPage{\number\c@RealPage}}%
  }%
}
\AtBeginDocument{%
  \PDFWinFightsBabelSuccessfully%
  \let\org@select@language\select@language%
  \def\select@language#1{%
    \org@select@language{#1}\PDFWinFightsBabelSuccessfully}%
}


% --------------------------------------------------------------
% NEW WINDOWS
%
\def\NewWindow#1#2{%
  % increase window counter
  \global\advance\c@WindowCount by 1\relax%
  %
  % window name and reference
  \expandafter\gdef\csname WindowName\number\c@WindowCount\endcsname{#1}%
  \expandafter\gdef\csname WindowRef\number\c@WindowCount\endcsname{#2}%
  %
  % append to \Draw@PDFWinWindows
  \g@addto@macro\Draw@PDFWinWindows{\@ShowWindow{#1}}%
  %
  % new colors and variables
  \definecolor{#1BackgroundColor}{rgb}{1.0,1.0,1.0}%
  \definecolor{#1BorderColor}{rgb}{.0,.0,.0}%
  \expandafter\newcount\csname @#1@WinType\endcsname%
  \csname @#1@WinType\endcsname=0%
  \expandafter\newlength\csname @#1@LLX\endcsname%
  \csname @#1@LLX\endcsname=.02\paperwidth%
  \expandafter\newlength\csname @#1@LLY\endcsname%
  \csname @#1@LLY\endcsname=.92\paperheight%
  \expandafter\newlength\csname @#1@DimX\endcsname%
  \csname @#1@DimX\endcsname=.79\paperwidth%
  \expandafter\newlength\csname @#1@DimY\endcsname%
  \csname @#1@DimY\endcsname=.06\paperheight%
  \expandafter\newlength\csname @#1@BorderThickness\endcsname%
  \csname @#1@BorderThickness\endcsname=2.0pt%
  \expandafter\newlength\csname @#1@BorderArcRadius\endcsname%
  \csname @#1@BorderArcRadius\endcsname=12pt%
  %
  % misc
  \expandafter\def\csname Adjust@#1@Win\endcsname{}%
  \expandafter\def\csname @#1@\endcsname{\relax}%
  \long\expandafter\def\csname Set#1Contents\endcsname##1{%
    \expandafter\gdef\csname @#1@\endcsname{##1}%
  }%
}


% --------------------------------------------------------------
% INCREMENTAL PAGE NUMBERING (e.g. 10 - 11a - 11b - 11c - 12)
%
% mechanism: in order to avoid changes on internal functions as far
% as possible, two new counters are introduced. The first one
% memorizes the basic page number (i.e. 11 in the example given
% above) and the second one is computed as the difference between
% the normal page counter (not touched!) and the first counter,
% plus offset of one.
% NOTE: no \stepcounter or \addtocounter before/after page break
% necessary for new counters; normal page counter does the job!
%
% define new counters for incremental page counting
\newcount\c@incpagea
\newcount\c@incpageb
%
% redefine (i.e. patch) \pagenumbering:
% \pagenumbering{incremental} starts incremental numbering
% \pagenumbering{restore} restores old setting
% else: old \pagenumbering definition from latex.ltx
\def\pagenumbering#1{%
  \def\tempa{#1}%
  \def\tempb{incremental}%
  \ifx\tempa\tempb
    \global\c@incpagea=\c@page%
    \let\org@thepage\thepage%
    % NOTE: \thepage can be modified by user after \pagenumbering{incremental}
    \gdef\thepage{\arabic{incpagea}\alph{incpageb}}%
    \let\org@newpage\newpage%
    \def\newpage{\org@newpage\computeincpage}%
    \computeincpage
  \else
    \def\tempb{restore}%
    \ifx\tempa\tempb
      \let\newpage\org@newpage%
      \let\thepage\org@thepage%
      \global\c@page=\c@incpagea%
      \stepcounter{page}
    \else
      \global\c@page \@ne \gdef\thepage{\csname @#1\endcsname\c@page}
    \fi
  \fi
}
\def\computeincpage{%
  \c@incpageb=\c@page%
  \advance\c@incpageb\@ne%
  \advance\c@incpageb -\c@incpagea%
}


% --------------------------------------------------------------
% FONTS (can be redefined by user)
%
% setting button text font and style (button height)
%\newcommand{\SetButtonTextStyle}{\rule[-4pt]{0pt}{13pt}%
% \footnotesize\sffamily\itshape\mdseries}
\newcommand{\SetButtonTextStyle}{\rule[-3pt]{0pt}{11pt}%
 \scriptsize\sffamily\itshape\mdseries}
%
% setting page info ("page x of y") font and style
% (usually the same as button text)
%\newcommand{\SetPageInfoStyle}{\rule[-4pt]{0pt}{13pt}%
% \footnotesize\sffamily\itshape\mdseries}
\newcommand{\SetPageInfoStyle}{\rule[-3pt]{0pt}{11pt}%
 \scriptsize\sffamily\itshape\mdseries}
%
% setting panel toc text font and style (button height)
%\newcommand{\SetTocNTextStyle}{\rule[-3pt]{0pt}{11pt}%
% \scriptsize\sffamily\itshape\mdseries}
%\newcommand{\SetTocHTextStyle}{\rule[-3pt]{0pt}{11pt}%
% \scriptsize\sffamily\itshape\bfseries}
\newcommand{\SetTocNTextStyle}{\rule[-2pt]{0pt}{7pt}%
 \tiny\sffamily\itshape\mdseries}
\newcommand{\SetTocHTextStyle}{\rule[-2pt]{0pt}{7pt}%
 \tiny\sffamily\itshape\bfseries}
%
% setting font and style of the chapter panel
\newcommand{\SetChapterTextStyle}{\rule[-2pt]{0pt}{9pt}%
 \sffamily\bfseries\scriptsize}
\newcommand{\SetChapterTitelStyle}{\rule[-2pt]{0pt}{7pt}%
 \sffamily\bfseries\tiny}


% --------------------------------------------------------------
% SECTION AND \EMPH COLORING
%
\if@coloremph\renewcommand{\emph}[1]{\textcolor{TextEmphColor}{#1}}\fi
%
\let\org@startsection\@startsection
\renewcommand{\@startsection}[6]{%
 \org@startsection{#1}{#2}{#3}{#4}{#5}{#6\color{Section#2Color}}}
%
% normally redefining \@startsection should be sufficient.
% But unfortunately, it's not. Sometimes, the internal color stack
% gets mixed up and the beginning of a new page is written in a
% wrong color. The color is fixed once a differently colored text
% is printed. A work-around for section headings (which are likely to
% be affected by this bug) is printing the section number in the
% correct color.
\let\org@seccntformat\@seccntformat
\def\@seccntformat#1{\protect\textcolor{Section\thesection@level Color}%
   {\org@seccntformat{#1}}\quad}%


% --------------------------------------------------------------
% DYNAMIC PAGES
%
% NOTE: if you are looking at this section in order to define new
% dynamic environments and you don't really understand what's
% going on here, then I have to apologize, but some things I need
% are only possible in plain TeX and not in LaTeX, e.g. global
% (and not local) counter settings. Notice that the LaTeX counter
% abc is equivalent to the TeX counter \c@abc.
%
\newcounter{dynamicpage}      \setcounter{dynamicpage}{0}
\newcounter{maxdynamicpages}  \setcounter{maxdynamicpages}{5}
%
\newcommand*{\copycolor}[2]{\expandafter\let\csname\string\color @#2%
  \expandafter\endcsname\csname\string\color @#1\endcsname}
%
\newcommand{\store}[1]{\long\gdef\recall{#1}\global\c@dynamicpage=0}
%
\newcommand*{\revealnext}{%
  \newpage%
  \global\advance\c@dynamicpage by 1%
  \relax%   %% otherwise the FIRST color would not be changed. Mysterious...
  \copycolor{TextRevealedColor}{color\number\c@dynamicpage}%
  \recall%
}
\newcommand{\initreveal}[1]{%
  \@tempcnta=\c@maxdynamicpages%
  \loop \ifnum\@tempcnta>0%
    \copycolor{TextBackgroundColor}{color\number\@tempcnta}%
    \advance\@tempcnta by -1%
  \repeat%
  \store{#1}%
}
\newcommand*{\highlightnext}{%
  \newpage%
  \@tempcnta=\c@maxdynamicpages%
  \loop \ifnum\@tempcnta>0%
    \copycolor{TextGrayedOutColor}{color\number\@tempcnta}%
    \advance\@tempcnta by -1%
  \repeat%
  \global\advance\c@dynamicpage by 1%
  \relax%
  \copycolor{TextHighlightedColor}{color\number\c@dynamicpage}%
  \recall%
}
\newcommand{\inithighlight}[1]{\store{#1}}


% --------------------------------------------------------------
% BUTTON MACROS
%
% setting button color
\newcommand{\NormalButtonCol}{\color{ButtonTextColor}}
\newcommand{\FirstButtonCol}{\ifnum\number\c@RealPage=1%
  \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
\newcommand{\LastButtonCol}{\ifnum\number\c@RealPage=\number\LastPage%
  \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
\newcommand{\AbstractButtonCol}{\ifnum\number\c@RealPage=\number\AbstractPage%
  \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
\newcommand{\ContentsButtonCol}{\ifnum\number\c@RealPage=\number\ContentsPage%
  \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
\newcommand{\IndexButtonCol}{\ifnum\number\c@RealPage=\number\IndexPage%
  \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
%
% #1: box contents  #2,#3 : upper/lower border colors
% \fboxrule determines the thickness of the shadow
\newcommand*{\ThreeDimBox}[3]{\bgroup%
  \fboxsep0pt%
  \color{#2}%
  \setbox\@tempboxa\hbox{\fbox{#1}}%
  \copy\@tempboxa%
  \@tempcnta=10%
  \@tempdimc=\fboxrule%         %% increment
  \divide\@tempdimc by \@tempcnta%
  \color{#3}%
  \@tempdima=0pt%               %% width
  \@tempdimb=\ht\@tempboxa%     %% height
  \loop%
    \ifnum\@tempcnta>0%
    \advance\@tempcnta by -1%
    \advance\@tempdimb by -\@tempdimc%
    \advance\@tempdima by \@tempdimc%
    \hbox to 0pt{\hss\vrule \@width\@tempdima \@height\@tempdimb \@depth\dp\@tempboxa}%
  \repeat%
  \@tempcnta=10%
  \@tempdima=\wd\@tempboxa%     %% width
  \@tempdimb=-\dp\@tempboxa%    %% -depth -> height
  \loop%
    \ifnum\@tempcnta>0%
    \advance\@tempcnta by -1%
    \advance\@tempdimb by \@tempdimc%
    \advance\@tempdima by -\@tempdimc%
    \hbox to 0pt{\hss\vrule \@width\@tempdima \@height\@tempdimb \@depth\dp\@tempboxa}%
  \repeat%
\egroup}
%
% [#1]: width (optional; default: \@ButtonWidth)    #2:  button text
\newcommand{\AddButton}[2][\@ButtonWidth]{\bgroup%
  \fboxrule=\@ButtonShadowDepth%
  \ThreeDimBox{\colorbox{ButtonBackgroundColor}%
   {\hbox to #1{\hfil\NormalButtonCol\SetButtonTextStyle#2\hfil}}}%
   {ButtonUpperShadowColor}{ButtonShadowColor}%
\egroup}


% --------------------------------------------------------------
% PANEL MACROS
%
\newcommand*{\btl}{\ensuremath{\blacktriangleleft}}
\newcommand*{\btr}{\ensuremath{\blacktriangleright}}
%
% The default panel consists of four parts:
%   [graphical logo]
%   [panel TOC]
%   navigation buttons
%   [some text]
% parts in square brackets are optional.
%
% The panel contents are composed vertically to build a minipage
% NOTE: background color is set later
\SetPanelContents{%
  \begin{minipage}[t][\@Panel@DimY][c]{\@Panel@DimX}%
    \normalcolor%
    \normalfont%
    \PanelContents%
  \end{minipage}%
}
% \PanelContents can be modified by user. The user does not need
% to know anything about the internal realization of \@Panel@
% or \Draw<Something>. The \PanelContents level is encapsulated.
% NOTE: all \Draw<Something> commands should end with \vfill
\newcommand{\PanelContents}{%
  \centering%
  \vspace*{5pt}\vfill%
  \DrawLogo%
  \DrawPanelTOC%
  \DrawNavigationPanel%
  \DrawPanelText%
  \vspace*{5pt}%
}
%
\def\DrawLogo{\ifx\emptystring\@LogoFile\else%
  \setbox0=\hbox{\bgroup%
    \fboxrule=\@LogoShadowDepth%
    \ThreeDimBox{\includegraphics[width=\@LogoWidth]%
     {\@LogoFile}}{LogoUpperShadowColor}{LogoShadowColor}%
  \egroup}%
  \ifx\emptystring\@LogoURL\mbox{\box0}\else\href{\@LogoURL}{\box0}\fi%
  \par\vfill\fi%
}
%
\def\DrawPanelTOC{%
  \if@paneltoc%
    \ifdim\@PanelTOCHeight>0cm%  fixed size?
      \begin{minipage}[t][1.5cm][t]{\@Panel@DimX}%
        \@panel@toc%
      \end{minipage}%
    \else%
      \@panel@toc%
    \fi%
    \vfill%
  \else%
    \relax%
  \fi%
}
%
\def\DrawPanelText{\ifx\emptystring\@paneltext\else%
 \parbox{.98\@Panel@DimX}{\centering \@paneltext}\par\vfill\fi}
%
% You can change \DrawNavigationPanel with \renewcommand.
% Just copy this definition here and (un)comment and reorder
% the items in the way you like.
\newcommand{\DrawNavigationPanel}{
%  \ShowPageInfo\par\vfill
  \GoToPageButton\par\vfill
%  \HomePageButton\par\vfill
%  \TitlePageButton\par\vfill
%  \AbstractPageButton\par\vfill
%  \IndexPageButton\par\vfill
%  \ContentsPageButton\par\vfill
  \FirstLastButton\par\vfill
  \PrevNextButton\par\vfill
  \BackForwardButton\par\vfill
%  \BackButton\par\vfill
%  \ForwardButton\par\vfill
  \FullScreenButton\par\vfill
  \SearchButton\par\vfill
  \CloseButton\par\vfill
%  \QuitButton\par\vfill
}
%
% \ShowEmptyPageInfo needs exactly the same space as \ShowPageInfo. Use this
% if you want to turn off page info for certain pages without changing the
% positions of the other panel elements
\def\ShowEmptyPageInfo{%
  \bgroup%
    \SetPageInfoStyle%
  \egroup%
}
\def\ShowPageInfo{%
  \bgroup%
    \SetPageInfoStyle%
    \textcolor{ButtonTextColor}{\@Panelpagename}\space%
    \textcolor{ButtonHighlightedTextColor}{\thepage}%
    \space\textcolor{ButtonTextColor}{\@Panelofname}\space%
    \if@chapterpanel%
      \textcolor{ButtonHighlightedTextColor}%
       {\csname LastPageC\arabic{chapter}String\endcsname}%
    \else%
      \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
    \fi%
  \egroup%
}
\def\GoToPageButton{%
  \Acrobatmenu{GoToPage}{\AddButton%
    {\textcolor{ButtonTextColor}{\@Panelpagename}\space%
    \textcolor{ButtonHighlightedTextColor}{\thepage}\space%
    \textcolor{ButtonTextColor}{\@Panelofname}\space%
    \if@chapterpanel%
      \textcolor{ButtonHighlightedTextColor}%
       {\csname LastPageC\arabic{chapter}String\endcsname}%
    \else%
      \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
    \fi%
  }}%
}
\def\HomePageButton{%
  \href{\@HomepageURL}{\AddButton{\@Panelhomepagename}}
}
\def\TitlePageButton{%
  \Acrobatmenu{FirstPage}{\AddButton{\FirstButtonCol\@Paneltitlepagename}}%
}
\def\AbstractPageButton{%
  \ifnum\number\AbstractPage=0%
    \PDFWIN@Warning{no abstract! abstract page button not possible}%
  \else%
    \hyperlink{abstract}{\AddButton{\AbstractButtonCol\@Panelabstractname}}%
  \fi%
}
\def\ContentsPageButton{%
  \ifnum\number\ContentsPage=0%
    \PDFWIN@Warning{no TOC found! contents page button not possible}%
  \else%
    \hyperlink{contents}{\AddButton{\ContentsButtonCol\@Panelcontentsname}}%
  \fi%
}
\def\IndexPageButton{%
  \ifnum\number\IndexPage=0%
    \PDFWIN@Warning{no index found! index button not possible}%
  \else%
    \hyperlink{index}{\AddButton{\ContentsButtonCol\@Panelindexname}}%
  \fi%
}
\def\FirstLastButton{%
  \Acrobatmenu{FirstPage}{\AddButton[\@SmallButtonWidth]%
   {\FirstButtonCol\scalebox{.8}[1.4]{\btl\btl}}}%
  \Acrobatmenu{LastPage}{\AddButton[\@SmallButtonWidth]%
   {\LastButtonCol\scalebox{.8}[1.4]{\btr\btr}}}%
}
\def\PrevNextButton{%
  \Acrobatmenu{PrevPage}{\AddButton[\@SmallButtonWidth]%
   {\FirstButtonCol\scalebox{.8}[1.4]{\btl}}}%
  \Acrobatmenu{NextPage}{\AddButton[\@SmallButtonWidth]%
   {\LastButtonCol\scalebox{.8}[1.4]{\btr}}}%
}
\def\BackForwardButton{%
  \Acrobatmenu{GoBack}{\AddButton[\@SmallButtonWidth]%
   {\raisebox{-2pt}{\scalebox{2}{$\hookleftarrow$}}}}%
  \Acrobatmenu{GoForward}{\AddButton[\@SmallButtonWidth]%
   {\raisebox{-2pt}{\scalebox{2}{$\hookrightarrow$}}}}%
}
\def\BackButton{%
  \Acrobatmenu{GoBack}{\AddButton{\@Panelgobackname}}%
}
\def\ForwardButton{%
  \Acrobatmenu{GoForward}{\AddButton{\@Panelgoforwardname}}%
}
\def\FullScreenButton{%
  \Acrobatmenu{FullScreen}{\AddButton{\@Panelfullscreenname}}%
}
\def\SearchButton{%
  \Acrobatmenu{Find}{\AddButton{\@Panelsearchname}}%
}
\def\CloseButton{%
  \Acrobatmenu{Close}{\AddButton{\@Panelclosename}}%
}
\def\QuitButton{%
  \Acrobatmenu{Quit}{\AddButton{\@Panelquitname}}%
}


% --------------------------------------------------------------
% PANEL TOC SECTION COUNTING
%
\def\sectionstring{section}
\def\chapterstring{chapter}
%
\def\AddPanelTocEntry#1{%
  \stepcounter{ptocsection}%
  \hypertarget{ptoctarget\number\c@ptocsection}{}%
  \addtocontents{toc}{\protect\PTocEntry{#1}{ptoctarget\number\c@ptocsection}}%
}%
%
\let\PTocEntry\@gobbletwo


% --------------------------------------------------------------
% PANEL TOC MACROS
%
% for a panel TOC we have to modify:
%  * the input of the *.toc file
%  * the generation of the *.toc file
% the last thing is necessary because usually the \tableofcontents
% command does BOTH jobs: the display and the generation. And
% therefore, it must only be called once in a normal LaTeX
% document.
% But for a panel TOC (i.e. a TOC an EVERY page) we have to separate
% both tasks.
%
% The original \tableofcontents is (in article class):
%  \newcommand\tableofcontents{%
%    \section*{\contentsname\@mkboth{\MakeUppercase\contentsname}%
%    {\MakeUppercase\contentsname}}\@starttoc{toc}%
%  }
% and \@starttoc does (latex base):
%  \def\@starttoc#1{%
%    \begingroup
%      \makeatletter
%      \@input{\jobname.#1}%
%      \if@filesw
%        \expandafter\newwrite\csname tf@#1\endcsname
%        \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
%      \fi
%      \@nobreakfalse
%    \endgroup}
%
% We separate this in two parts: \tableofcontents is redefined to
% only SHOW the toc and the WRITE command is given at the end of
% the document.
% NOTE: \makeatletter is necessary if e.g. the babel package is used:
% this package writes a \select@language command via the *.aux file
% of the last LaTeX run. Without \makeatletter, a "undefined command"
% would result because '@' is no letter anymore.
\renewcommand{\tableofcontents}{%
  \section*{\contentsname\@mkboth{\MakeUppercase\contentsname}%
    {\MakeUppercase\contentsname}}%
  \begingroup%
    \makeatletter%
    \@input{\jobname.toc}%
  \endgroup%
}
%
\AtEndDocument{%
  \if@filesw%
    \clearpage% <-- otherwise the panel toc on the last page would be lost
    \newwrite\tf@toc%
    \immediate\openout\tf@toc\jobname.toc\relax%
  \fi
}
% On reading the *.toc file for the panel TOC, we must modify the
% display (locally, of course!):
%  - disable \numberline which would produce a dotted line with
%    the page number at the end.
%  - count the sections in order to switch between normal and
%    highlighted display
\def\@panel@toc{%
  \IfFileExists{\jobname.toc}{\vbox%
  \bgroup%
    \rightskip0pt plus 1fill%
    \hbadness=10000%
    \let\numberline\@gobble%
    \let\contentsline\PanelTOC@ContentsLine%
    \let\PTocEntry\PanelTOC@PTocEntry%
    \makeatletter%
    \@input{\jobname.toc}%
    \PDFWIN@Info{TOC file read}%
  \egroup}%
  % ELSE (file does not exist)
  {\PDFWIN@Warning{TOC file not available}}%
}
%
\long\def\PanelTOC@ContentsLine#1#2#3#4{%
  \edef\temp{#1}%
  \ifx\temp\chapterstring%
    \stepcounter{TocChapterCount}%
  \fi%
  \ifnum\c@TocChapterCount=\c@chapter%
    \ifx\temp\sectionstring%
      \stepcounter{PanelTocLine}%
      \@tempcnta=\c@section%
      \advance\@tempcnta by \c@ptocsection%
      \ifnum\@tempcnta=\c@PanelTocLine%
        \global\@PanelTocHighlighttrue%
      \else%
        \global\@PanelTocHighlightfalse%
      \fi%
      \hyperlink{#4}{\makebox[\@Panel@DimX]%
        {\TOC@Button{.97\@Panel@DimX}{\truncate{.96\@Panel@DimX}{#2}}}}%
      \par%
    \fi% section entry detected
  \fi% in actual chapter
}
%
\long\def\PanelTOC@PTocEntry#1#2{%
  \stepcounter{PanelTocLine}%
  \@tempcnta=\c@section%
  \advance\@tempcnta by \c@ptocsection%
  \ifnum\@tempcnta=\c@PanelTocLine%
    \global\@PanelTocHighlighttrue%
  \else%
    \global\@PanelTocHighlightfalse%
  \fi%
  \hyperlink{#2}{\makebox[\@Panel@DimX]%
    {\TOC@Button{.97\@Panel@DimX}{\truncate{.96\@Panel@DimX}{#1}}}}%
  \par%
}
%
% displaying the panel TOC buttons
\def\TOC@Button#1#2{\begingroup%
  \fboxsep0pt
  \fboxrule0pt%
  \if@PanelTocHighlight%
    \if@PTocHTransparent%
      {\hbox to #1{\color{PanelTocHighlightedTextColor}%
      \SetTocHTextStyle\hfill#2\hfill}}%
    \else%
      {\colorbox{PanelTocHighlightedBackgroundColor}{\hbox to #1%
      {\color{PanelTocHighlightedTextColor}\SetTocHTextStyle\hfill#2\hfill}}}%
    \fi%
  \else%
    \if@PTocNTransparent%
      {\hbox to #1{\color{PanelTocNormalTextColor}%
      \SetTocNTextStyle\hfill#2\hfill}}%
    \else%
      {\colorbox{PanelTocNormalBackgroundColor}{\hbox to #1%
      {\color{PanelTocNormalTextColor}\SetTocNTextStyle\hfill#2\hfill}}}%
    \fi%
  \fi%
\endgroup}


% --------------------------------------------------------------
% CHAPTER PANEL MACROS
%
% (!!!) einige Sachen noch fest verdrahtet!
%
\newcommand{\ChapterBox}{%
  \normalfont\normalsize%
  \bgroup%
  \fboxrule1pt%
  \@tempcnta=0%
  \@tempcntb=\number\ChapterNumber%
  \advance\@tempcntb by 1%
  \loop%
  \ifnum\@tempcnta<\@tempcntb%
    \ifnum\c@chapter=\@tempcnta%
      \ifnum\@tempcnta=0%
        \Acrobatmenu{FirstPage}{\Big@NoChapterButton{\@Paneltitlepagename}}
      \else \ifnum\@tempcnta=16%
        \hyperlink{index}{\Big@NoChapterButton{\@Panelindexname}}
      \else%
        \hyperlink{chapter.\number\@tempcnta}{\Big@ChapterButton{\chaptertitle}}
      \fi\fi%
    \else % chapter not selected
      \ifnum\@tempcnta=0%
        \Acrobatmenu{FirstPage}{\Small@NoChapterButton{T}}
      \else\ifnum\@tempcnta=16%
        \hyperlink{index}{\Small@NoChapterButton{I}}
      \else%
        \hyperlink{chapter.\number\@tempcnta}{\Small@ChapterButton}
      \fi\fi
    \fi % chapter selected?
    \advance\@tempcnta by 1%
  \repeat
  \egroup
}
%
\newcommand{\Big@NoChapterButton}[1]{%
  \ThreeDimBox{\colorbox{ChapterPanelColor0a}{%
    \begin{minipage}[c][5mm]{22mm}%
      \centering\SetChapterTextStyle\color{ChapterPanelColor0b}#1%
    \end{minipage}%
  }}{ChapterPanelColor0c}{ChapterPanelColor0d}%
}
\newcommand{\Big@ChapterButton}[1]{%
  \ThreeDimBox{\colorbox{ChapterPanelColor1a}{%
    \begin{minipage}[c][5mm]{22mm}%
      \offinterlineskip\centering\SetChapterTextStyle\color{ChapterPanelColor1b}%
      \@chapapp\space\@Roman\@tempcnta\\ \SetChapterTitelStyle #1\\ %
    \end{minipage}%
  }}{ChapterPanelColor1c}{ChapterPanelColor1d}%
}
\newcommand{\Small@NoChapterButton}[1]{%
  \ThreeDimBox{\colorbox{ChapterPanelColor0a}{%
    \begin{minipage}[c][3mm]{3mm}%
      \centering\SetChapterTextStyle\color{ChapterPanelColor0b}#1%
    \end{minipage}%
  }}{ChapterPanelColor0c}{ChapterPanelColor0d}%
}
\newcommand{\Small@ChapterButton}{%
  \ThreeDimBox{\colorbox{ChapterPanelColor1a}{%
    \begin{minipage}[c][3mm]{3mm}%
      \centering\SetChapterTextStyle\color{ChapterPanelColor1b}%
      \@Roman\@tempcnta%
    \end{minipage}%
  }}{ChapterPanelColor1c}{ChapterPanelColor1d}%
}
%
\if@chapterpanel\SetUserContents{\ChapterBox}\fi

% --------------------------------------------------------------
% OVERLAY MACROS
%
% TeX assembles a page and calls \shipout{...} then.
% Therefore, we have to interrupt \shipout
\AtBeginDocument{%
  \let\org@shipout\shipout
  \let\shipout\my@shipout
}
%
% now we have to steal shipout's argument in order
% to modify it as we like
\def\my@shipout{%
  \afterassignment\Test@OutBox%
  \global\setbox\@cclv= %
}
\newcommand{\Test@OutBox}{%
  \ifvoid\@cclv%
     \relax\aftergroup\My@Output%
  \else%
     \My@Output%
  \fi%
}

% --------------------------------------------------------------
% PAGE COMPOSITION
% (original page is in box 255 [or \box\@cclv])
%
\newcommand{\My@Output}{%
  \bgroup%
    \@tempdima=1in%
    \@tempcnta=\@tempdima%   % => unit: scaled points
    \@tempcntb=\paperheight%
    \advance\@tempcntb by -\@tempdima%
    \global\setbox\@cclv\vbox{%
      \offinterlineskip%
      \vbox{%
        \let\protect\relax%
        \unitlength=1sp%
        \pictur@(0,0)(\@tempcnta,\@tempcntb)%
          {\bgroup%
            \setlength{\unitlength}{1pt}%
            % draw background
            \Draw@ScreenBackground%
            % draw other windows
            \Draw@PDFWinWindows%
          \egroup}%
        \endpicture%
      }%
      \vbox to 0mm{\hbox to 0mm{\box\@cclv\hss}\vss}%
      \vbox{%
        \let\protect\relax%
        \unitlength=1sp%
        \pictur@(0,0)(\@tempcnta,\@tempcntb)%
          {\bgroup%
            \setlength{\unitlength}{1pt}
            \Draw@TopTextWindow%
          \egroup}%
        \endpicture%
      }%
    }%
  \egroup%
  \addtocounter{RealPage}{1}%
  \org@shipout\box\@cclv%
}


% --------------------------------------------------------------
% WINDOW DRAWING
%
\def\Draw@PDFWinWindows{%
  \normalcolor%
  \normalfont%
  \@ShowWindow{Text}%
  \@ShowWindow{Panel}%
  \@ShowWindow{User}%
}

\def\Draw@ScreenBackground{%
  \ifcase\@Screen@Type%
  \or%
  \or%
    % 2 = colored
    \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
      height\paperheight depth0pt width\paperwidth\egroup}%
  \or%
    % 3 = graphics
    \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
      {\@Screen@Overlay}}%
  \or%
    % 4 = extended
    \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
      height\paperheight depth0pt width\paperwidth\egroup}%
    \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
      {\@Screen@Overlay}}%
  \or%
    % 5 = wallpaper
    \bgroup%
      \setbox0=\hbox{\includegraphics{\@Screen@Overlay}}%
      \setlength{\unitlength}{1sp}%
      \@tempcnta=\paperwidth%
      \count255=\wd0%
      \divide\@tempcnta by \count255%
      \setbox2=\hbox{\count255=-1%
        \loop\ifnum\count255<\@tempcnta\advance\count255 by 1\copy0\repeat\hss}
      \@tempcntb=\paperheight%
      \count255=\ht0%
      \divide\@tempcntb by \count255%
      \advance\@tempcntb by 1%
      \multiput(0,0)(0,\count255){\@tempcntb}{\copy2}%
    \egroup%
  \fi%
}
%
% show window procedure
\def\@ShowWindow#1{%
  \expandafter\Win@DimX\csname @#1@DimX\endcsname%
  \expandafter\Win@DimY\csname @#1@DimY\endcsname%
  \expandafter\Win@LLX\csname @#1@LLX\endcsname%
  \expandafter\Win@LLY\csname @#1@LLY\endcsname%
  \expandafter\Win@BT\csname @#1@BorderThickness\endcsname%
  \expandafter\Win@BR\csname @#1@BorderArcRadius\endcsname%
  \ifcase\csname @#1@WinType\endcsname%
    % 0 = disabled
    \relax%
  \or%
    % 1 = transparent => frame+contents
    \ShowWindow@Frame{#1}%
    \ShowWindow@Contents{#1}%
  \or%
    % 2 = colored => frame+box+contents
    \ShowWindow@FrameBox{#1}%
    \ShowWindow@Contents{#1}%
  \or%
    % 3 = graphics => graphics+contents
    \ShowWindow@Frame{#1}%
    \ShowWindow@Graphics{#1}%
    \ShowWindow@Contents{#1}%
  \or%
    % 4 = extended => frame+box+graphics+contents
    \ShowWindow@FrameBox{#1}%
    \ShowWindow@Graphics{#1}%
    \ShowWindow@Contents{#1}%
  \fi%
}
%
\def\ShowWindow@Frame#1{%
  \bgroup
    \color{#1BorderColor}%
    \@tempdimb=\Win@DimY  \advance\@tempdimb by \Win@BT%
    \put(\strip@pt\Win@LLX,\strip@pt\Win@LLY)%
     {\vrule width\Win@DimX height\@tempdimb depth-\Win@DimY}%
    \put(\strip@pt\Win@LLX,\strip@pt\Win@LLY)%
     {\vrule width\Win@DimX height0pt depth\Win@BT}%
    \@tempdima=\Win@LLX  \advance\@tempdima by -\Win@BT%
    \@tempdimc=\Win@LLX  \advance\@tempdimc by \Win@DimX%
    \put(\strip@pt\@tempdima,\strip@pt\Win@LLY)%
     {\vrule width\Win@BT height\@tempdimb depth\Win@BT}%
    \put(\strip@pt\@tempdimc,\strip@pt\Win@LLY)%
     {\vrule width\Win@BT height\@tempdimb depth\Win@BT}%
  \egroup
}
\def\ShowWindow@FrameBox#1{%
  \ifdim\Win@BR=0pt%
    \ShowWindow@Frame{#1}%
    \put(\strip@pt\Win@LLX,\strip@pt\Win@LLY)%
     {\color{#1BackgroundColor}\vrule height\Win@DimY%
     depth0pt width\Win@DimX}%
  \else
    \@tempdima=\Win@LLX  \advance\@tempdima by -\Win@BT%
    \@tempdimb=\Win@LLY  \advance\@tempdimb by \Win@BR%
    \@tempdimc=\Win@DimX  \advance\@tempdimc by -2.0\Win@BR%
    % bottom line: corners and bottom border
    \dimen0\Win@BR  \advance\dimen0\Win@BT   % big radius
    \put(\strip@pt\@tempdima,\strip@pt\@tempdimb){%
      \color{#1BorderColor}%
      \Left@Corner{\@height}{\@depth}%
      \vrule width\@tempdimc height0pt depth\dimen0%
      \Right@Corner{\@height}{\@depth}%
    }%
    \dimen0\Win@BR  \advance\dimen0 by -0.3pt%
    \put(\strip@pt\Win@LLX,\strip@pt\@tempdimb){%
      \color{#1BackgroundColor}%
      \Left@Corner{\@height}{\@depth}%
      \vrule width\@tempdimc height0pt depth\dimen0%
      \Right@Corner{\@height}{\@depth}%
    }%
    % top line: corners and top border
    \@tempdimb=\Win@LLY  \advance\@tempdimb by -\Win@BR%
    \advance\@tempdimb by \Win@DimY%
    \dimen0\Win@BR  \advance\dimen0\Win@BT   % big radius
    \put(\strip@pt\@tempdima,\strip@pt\@tempdimb){%
      \color{#1BorderColor}%
      \Left@Corner{\@depth}{\@height}%
      \vrule width\@tempdimc height\dimen0 depth0pt%
      \Right@Corner{\@depth}{\@height}%
    }%
    \dimen0\Win@BR%
    \dimen0\Win@BR  \advance\dimen0 by -0.3pt%
    \put(\strip@pt\Win@LLX,\strip@pt\@tempdimb){%
      \color{#1BackgroundColor}%
      \Left@Corner{\@depth}{\@height}%
      \vrule width\@tempdimc height\dimen0 depth0pt%
      \Right@Corner{\@depth}{\@height}%
    }%
    % middle line: side borders and center
    \@tempdimb=\Win@LLY  \advance\@tempdimb by .93\Win@BR%
    \@tempdimc=\Win@DimY  \advance\@tempdimc by -1.86\Win@BR%
    \put(\strip@pt\@tempdima,\strip@pt\@tempdimb){%
      \color{#1BorderColor}%
      \vrule width\Win@BT height\@tempdimc depth0pt%
      \color{#1BackgroundColor}%
      \vrule width\Win@DimX height\@tempdimc depth0pt%
      \color{#1BorderColor}%
      \vrule width\Win@BT height\@tempdimc depth0pt%
    }%
  \fi%
}
\def\ShowWindow@Graphics#1{%
  \edef\tempFileName{\csname @#1@Overlay\endcsname}%
  \put(\strip@pt\Win@LLX,\strip@pt\Win@LLY)%
   {\includegraphics[width=\Win@DimX,height=\Win@DimY]{\tempFileName}}%
}
\def\ShowWindow@Contents#1{%
  \put(\strip@pt\Win@LLX,\strip@pt\Win@LLY)%
   {\makebox(\strip@pt\Win@DimX,\strip@pt\Win@DimY)%
   {\csname @#1@\endcsname}}%
}
%
\def\Draw@TopTextWindow{%
  \put(\strip@pt\@Text@LLX,\strip@pt\@Text@LLY)%
   {\makebox(\strip@pt\@Text@DimX,\strip@pt\@Text@DimY)%
   {\Top@Text@}}%
}


% --------------------------------------------------------------
% CORNER DRAWING: drawing a few black rectangles, because
% (La)TeX's graphical features are very limited...
%
% NOTE: overlap of bars is necessary to avoid white
% lines due to alialising effects.
% The straight forward method, namely putting together simple
% adjacent bars, does not work properly.
% NOTE: \p@ means 0pt. \@width, \@height, \@depth are macros for
% the strings width, height, depth. 120 calls save enough memory
% space to justify that in this section.
\def\Right@Corner#1#2{
  \vrule \@width.070\dimen0 #1 \p@ #2 1.0\dimen0  \kern-.070\dimen0%
  \vrule \@width.170\dimen0 #1 \p@ #2 .99\dimen0  \kern-.170\dimen0%
  \vrule \@width.221\dimen0 #1 \p@ #2 .98\dimen0  \kern-.221\dimen0%
  \vrule \@width.262\dimen0 #1 \p@ #2 .97\dimen0  \kern-.262\dimen0%
  \vrule \@width.296\dimen0 #1 \p@ #2 .96\dimen0  \kern-.296\dimen0%
  \vrule \@width.327\dimen0 #1 \p@ #2 .95\dimen0  \kern-.327\dimen0%
  \vrule \@width.354\dimen0 #1 \p@ #2 .94\dimen0  \kern-.354\dimen0%
  \vrule \@width.380\dimen0 #1 \p@ #2 .93\dimen0  \kern-.380\dimen0%
  \vrule \@width.403\dimen0 #1 \p@ #2 .92\dimen0  \kern-.403\dimen0%
  \vrule \@width.425\dimen0 #1 \p@ #2 .91\dimen0  \kern-.425\dimen0%
  \vrule \@width.446\dimen0 #1 \p@ #2 .90\dimen0  \kern-.446\dimen0%
  \vrule \@width.465\dimen0 #1 \p@ #2 .89\dimen0  \kern-.465\dimen0%
  \vrule \@width.484\dimen0 #1 \p@ #2 .88\dimen0  \kern-.484\dimen0%
  \vrule \@width.502\dimen0 #1 \p@ #2 .87\dimen0  \kern-.502\dimen0%
  \vrule \@width.519\dimen0 #1 \p@ #2 .86\dimen0  \kern-.519\dimen0%
  \vrule \@width.535\dimen0 #1 \p@ #2 .85\dimen0  \kern-.535\dimen0%
  \vrule \@width.550\dimen0 #1 \p@ #2 .84\dimen0  \kern-.550\dimen0%
  \vrule \@width.565\dimen0 #1 \p@ #2 .83\dimen0  \kern-.565\dimen0%
  \vrule \@width.579\dimen0 #1 \p@ #2 .82\dimen0  \kern-.579\dimen0%
  \vrule \@width.593\dimen0 #1 \p@ #2 .81\dimen0  \kern-.593\dimen0%
  \vrule \@width.606\dimen0 #1 \p@ #2 .80\dimen0  \kern-.606\dimen0%
  \vrule \@width.619\dimen0 #1 \p@ #2 .79\dimen0  \kern-.619\dimen0%
  \vrule \@width.632\dimen0 #1 \p@ #2 .78\dimen0  \kern-.632\dimen0%
  \vrule \@width.644\dimen0 #1 \p@ #2 .77\dimen0  \kern-.644\dimen0%
  \vrule \@width.656\dimen0 #1 \p@ #2 .76\dimen0  \kern-.656\dimen0%
  \vrule \@width.668\dimen0 #1 \p@ #2 .75\dimen0  \kern-.668\dimen0%
  \vrule \@width.679\dimen0 #1 \p@ #2 .74\dimen0  \kern-.679\dimen0%
  \vrule \@width.689\dimen0 #1 \p@ #2 .73\dimen0  \kern-.689\dimen0%
  \vrule \@width.699\dimen0 #1 \p@ #2 .72\dimen0  \kern-.699\dimen0%
  \vrule \@width.709\dimen0 #1 \p@ #2 .71\dimen0  \kern-.709\dimen0%
  %
  \vrule #2 .070\dimen0 #1 \p@ \@width1.0\dimen0  \kern-1.0\dimen0%
  \vrule #2 .170\dimen0 #1 \p@ \@width.99\dimen0  \kern-.99\dimen0%
  \vrule #2 .221\dimen0 #1 \p@ \@width.98\dimen0  \kern-.98\dimen0%
  \vrule #2 .262\dimen0 #1 \p@ \@width.97\dimen0  \kern-.97\dimen0%
  \vrule #2 .296\dimen0 #1 \p@ \@width.96\dimen0  \kern-.96\dimen0%
  \vrule #2 .327\dimen0 #1 \p@ \@width.95\dimen0  \kern-.95\dimen0%
  \vrule #2 .354\dimen0 #1 \p@ \@width.94\dimen0  \kern-.94\dimen0%
  \vrule #2 .380\dimen0 #1 \p@ \@width.93\dimen0  \kern-.93\dimen0%
  \vrule #2 .403\dimen0 #1 \p@ \@width.92\dimen0  \kern-.92\dimen0%
  \vrule #2 .425\dimen0 #1 \p@ \@width.91\dimen0  \kern-.91\dimen0%
  \vrule #2 .446\dimen0 #1 \p@ \@width.90\dimen0  \kern-.90\dimen0%
  \vrule #2 .465\dimen0 #1 \p@ \@width.89\dimen0  \kern-.89\dimen0%
  \vrule #2 .484\dimen0 #1 \p@ \@width.88\dimen0  \kern-.88\dimen0%
  \vrule #2 .502\dimen0 #1 \p@ \@width.87\dimen0  \kern-.87\dimen0%
  \vrule #2 .519\dimen0 #1 \p@ \@width.86\dimen0  \kern-.86\dimen0%
  \vrule #2 .535\dimen0 #1 \p@ \@width.85\dimen0  \kern-.85\dimen0%
  \vrule #2 .550\dimen0 #1 \p@ \@width.84\dimen0  \kern-.84\dimen0%
  \vrule #2 .565\dimen0 #1 \p@ \@width.83\dimen0  \kern-.83\dimen0%
  \vrule #2 .579\dimen0 #1 \p@ \@width.82\dimen0  \kern-.82\dimen0%
  \vrule #2 .593\dimen0 #1 \p@ \@width.81\dimen0  \kern-.81\dimen0%
  \vrule #2 .606\dimen0 #1 \p@ \@width.80\dimen0  \kern-.80\dimen0%
  \vrule #2 .619\dimen0 #1 \p@ \@width.79\dimen0  \kern-.79\dimen0%
  \vrule #2 .632\dimen0 #1 \p@ \@width.78\dimen0  \kern-.78\dimen0%
  \vrule #2 .644\dimen0 #1 \p@ \@width.77\dimen0  \kern-.77\dimen0%
  \vrule #2 .656\dimen0 #1 \p@ \@width.76\dimen0  \kern-.76\dimen0%
  \vrule #2 .668\dimen0 #1 \p@ \@width.75\dimen0  \kern-.75\dimen0%
  \vrule #2 .679\dimen0 #1 \p@ \@width.74\dimen0  \kern-.74\dimen0%
  \vrule #2 .689\dimen0 #1 \p@ \@width.73\dimen0  \kern-.73\dimen0%
  \vrule #2 .699\dimen0 #1 \p@ \@width.72\dimen0  \kern-.72\dimen0%
  \vrule #2 .709\dimen0 #1 \p@ \@width.71\dimen0  \kern-.71\dimen0%
}
\def\Left@Corner#1#2{
  \vrule #2 .070\dimen0 #1 \p@ \@width1.0\dimen0  \kern-.99\dimen0%
  \vrule #2 .170\dimen0 #1 \p@ \@width.99\dimen0  \kern-.98\dimen0%
  \vrule #2 .221\dimen0 #1 \p@ \@width.98\dimen0  \kern-.97\dimen0%
  \vrule #2 .262\dimen0 #1 \p@ \@width.97\dimen0  \kern-.96\dimen0%
  \vrule #2 .296\dimen0 #1 \p@ \@width.96\dimen0  \kern-.95\dimen0%
  \vrule #2 .327\dimen0 #1 \p@ \@width.95\dimen0  \kern-.94\dimen0%
  \vrule #2 .354\dimen0 #1 \p@ \@width.94\dimen0  \kern-.93\dimen0%
  \vrule #2 .380\dimen0 #1 \p@ \@width.93\dimen0  \kern-.92\dimen0%
  \vrule #2 .403\dimen0 #1 \p@ \@width.92\dimen0  \kern-.91\dimen0%
  \vrule #2 .425\dimen0 #1 \p@ \@width.91\dimen0  \kern-.90\dimen0%
  \vrule #2 .446\dimen0 #1 \p@ \@width.90\dimen0  \kern-.89\dimen0%
  \vrule #2 .465\dimen0 #1 \p@ \@width.89\dimen0  \kern-.88\dimen0%
  \vrule #2 .484\dimen0 #1 \p@ \@width.88\dimen0  \kern-.87\dimen0%
  \vrule #2 .502\dimen0 #1 \p@ \@width.87\dimen0  \kern-.86\dimen0%
  \vrule #2 .519\dimen0 #1 \p@ \@width.86\dimen0  \kern-.85\dimen0%
  \vrule #2 .535\dimen0 #1 \p@ \@width.85\dimen0  \kern-.84\dimen0%
  \vrule #2 .550\dimen0 #1 \p@ \@width.84\dimen0  \kern-.83\dimen0%
  \vrule #2 .565\dimen0 #1 \p@ \@width.83\dimen0  \kern-.82\dimen0%
  \vrule #2 .579\dimen0 #1 \p@ \@width.82\dimen0  \kern-.81\dimen0%
  \vrule #2 .593\dimen0 #1 \p@ \@width.81\dimen0  \kern-.80\dimen0%
  \vrule #2 .606\dimen0 #1 \p@ \@width.80\dimen0  \kern-.79\dimen0%
  \vrule #2 .619\dimen0 #1 \p@ \@width.79\dimen0  \kern-.78\dimen0%
  \vrule #2 .632\dimen0 #1 \p@ \@width.78\dimen0  \kern-.77\dimen0%
  \vrule #2 .644\dimen0 #1 \p@ \@width.77\dimen0  \kern-.76\dimen0%
  \vrule #2 .656\dimen0 #1 \p@ \@width.76\dimen0  \kern-.75\dimen0%
  \vrule #2 .668\dimen0 #1 \p@ \@width.75\dimen0  \kern-.74\dimen0%
  \vrule #2 .679\dimen0 #1 \p@ \@width.74\dimen0  \kern-.73\dimen0%
  \vrule #2 .689\dimen0 #1 \p@ \@width.73\dimen0  \kern-.72\dimen0%
  \vrule #2 .699\dimen0 #1 \p@ \@width.72\dimen0  \kern-.71\dimen0%
  \vrule #2 .709\dimen0 #1 \p@ \@width.71\dimen0  \kern-.709\dimen0%
  %
  \vrule \@width.709\dimen0 #1 \p@ #2 .71\dimen0  \kern-.699\dimen0%
  \vrule \@width.699\dimen0 #1 \p@ #2 .72\dimen0  \kern-.689\dimen0%
  \vrule \@width.689\dimen0 #1 \p@ #2 .73\dimen0  \kern-.679\dimen0%
  \vrule \@width.679\dimen0 #1 \p@ #2 .74\dimen0  \kern-.668\dimen0%
  \vrule \@width.668\dimen0 #1 \p@ #2 .75\dimen0  \kern-.656\dimen0%
  \vrule \@width.656\dimen0 #1 \p@ #2 .76\dimen0  \kern-.644\dimen0%
  \vrule \@width.644\dimen0 #1 \p@ #2 .77\dimen0  \kern-.632\dimen0%
  \vrule \@width.632\dimen0 #1 \p@ #2 .78\dimen0  \kern-.619\dimen0%
  \vrule \@width.619\dimen0 #1 \p@ #2 .79\dimen0  \kern-.606\dimen0%
  \vrule \@width.606\dimen0 #1 \p@ #2 .80\dimen0  \kern-.593\dimen0%
  \vrule \@width.593\dimen0 #1 \p@ #2 .81\dimen0  \kern-.579\dimen0%
  \vrule \@width.579\dimen0 #1 \p@ #2 .82\dimen0  \kern-.565\dimen0%
  \vrule \@width.565\dimen0 #1 \p@ #2 .83\dimen0  \kern-.550\dimen0%
  \vrule \@width.550\dimen0 #1 \p@ #2 .84\dimen0  \kern-.535\dimen0%
  \vrule \@width.535\dimen0 #1 \p@ #2 .85\dimen0  \kern-.519\dimen0%
  \vrule \@width.519\dimen0 #1 \p@ #2 .86\dimen0  \kern-.502\dimen0%
  \vrule \@width.502\dimen0 #1 \p@ #2 .87\dimen0  \kern-.484\dimen0%
  \vrule \@width.484\dimen0 #1 \p@ #2 .88\dimen0  \kern-.465\dimen0%
  \vrule \@width.465\dimen0 #1 \p@ #2 .89\dimen0  \kern-.446\dimen0%
  \vrule \@width.446\dimen0 #1 \p@ #2 .90\dimen0  \kern-.425\dimen0%
  \vrule \@width.425\dimen0 #1 \p@ #2 .91\dimen0  \kern-.403\dimen0%
  \vrule \@width.403\dimen0 #1 \p@ #2 .92\dimen0  \kern-.380\dimen0%
  \vrule \@width.380\dimen0 #1 \p@ #2 .93\dimen0  \kern-.354\dimen0%
  \vrule \@width.354\dimen0 #1 \p@ #2 .94\dimen0  \kern-.327\dimen0%
  \vrule \@width.327\dimen0 #1 \p@ #2 .95\dimen0  \kern-.296\dimen0%
  \vrule \@width.296\dimen0 #1 \p@ #2 .96\dimen0  \kern-.262\dimen0%
  \vrule \@width.262\dimen0 #1 \p@ #2 .97\dimen0  \kern-.221\dimen0%
  \vrule \@width.221\dimen0 #1 \p@ #2 .98\dimen0  \kern-.170\dimen0%
  \vrule \@width.170\dimen0 #1 \p@ #2 .99\dimen0  \kern-.070\dimen0%
  \vrule \@width.070\dimen0 #1 \p@ #2 1.0\dimen0%
}


%-------------- Verbatim fix -------------
% This code is provided by DP Story
\newdimen\@PDFspaceleft
\def\@PDFpagespace{%
  \ifdim\pagetotal=0pt
     \@PDFspaceleft=\vsize
   \else
     \@PDFspaceleft=\pagegoal
     \advance\@PDFspaceleft by-\pagetotal
 \fi}
\let\@PDFverbatim\verbatim
\let\@PDFendverbatim\endverbatim
\AtBeginDocument{%
   \def\verbatim{\begingroup\setbox0=\vbox\bgroup
         \hsize=\linewidth%
         \@PDFverbatim\verbatim@font}
   \def\endverbatim{\@PDFendverbatim\egroup
    \@PDFpagespace\ifdim\@PDFspaceleft>\ht0
       \else
        \setbox1=\vsplit0 to\@PDFspaceleft
        \verbatim@font\unvbox1 \penalty\@M
       \fi
    \ifvoid0\relax\else\verbatim@font\unvbox0\fi
    \endgroup}
  \def\@verb{\@vobeyspaces \frenchspacing\@sverb}
}
% end of DPS' code
%-------------- end of Verbatim fix -------------


% --------------------------------------------------------------
% FINAL STUFF: \AtEndDocument settings and config file input
%
\AtEndDocument{%
  \clearpage%
  \addtocounter{page}{-1}%
  \addtocounter{RealPage}{-1}%
  \immediate\write\@auxout{\string\gdef\string\LastPageString{\thepage}}%
  \immediate\write\@auxout{\string\expandafter\string\gdef%
   \string\csname\space LastPageC\arabic{chapter}String\string\endcsname{\thepage}}%
  \immediate\write\@auxout{\string\gdef\string\LastPage{\arabic{RealPage}}}%
  \immediate\write\@auxout{\string\gdef\string\ChapterNumber{\arabic{chapter}}}%
  \addtocounter{page}{1}%
}

\if@nocfg%
  \relax%
\else%
  \IfFileExists{pdfwin.cfg}{\input pdfwin.cfg}%
  {\PDFWIN@Warning{pdfwin.cfg does not exist!}}%
\fi

\endinput

%%%%%%%%%%%%%%%%%%% EOF
