summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/beamer/base/themes/theme/beamerthemeboxes.sty
blob: 22978f7265893fb802365588d34ca9c71d42de62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
% Copyright 2007 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.

\DeclareOptionBeamer{headheight}{\beamer@boxheadheight=#1}
\DeclareOptionBeamer{footheight}{\beamer@boxfootheight=#1}

\newdimen\beamer@boxheadheight
\newdimen\beamer@boxfootheight
\beamer@boxheadheight=10pt
\beamer@boxfootheight=10pt

\ProcessOptionsBeamer

% For example:
%\addheadboxtemplate{\color{black}}{\hfill\color{white}\insertshorttitle\hskip0.3cm}
%\addheadboxtemplate{\color{structure}}{\hskip0.3cm\color{white}\insertshortauthor}

%\addfootboxtemplate{\color{black}}{\hfill\color{white}\insertshortinstitute\hskip0.3cm}
%\addfootboxtemplate{\color{structure}}{}
%\addfootboxtemplate{\color{black}}{\hfill\color{white}\insertframenumber\hskip0.3cm}


\mode<presentation>


                                % Head
\newcount\beamer@headboxes
\newdimen\beamer@headboxsizes
\newcount\beamer@currentbox
\def\addheadboxtemplate#1#2{
  \expandafter\def\csname beamer@headbox\the\beamer@headboxes\endcsname{#2}
  \expandafter\def\csname beamer@headbg\the\beamer@headboxes\endcsname{#1}
  \advance\beamer@headboxes by 1\relax
  \beamer@headboxsizes=\paperwidth
  \divide\beamer@headboxsizes by\beamer@headboxes
}

\def\addheadbox#1#2{\addheadboxtemplate{\usebeamercolor[bg]{#1}}{\usebeamercolor[fg]{#1}\usebeamerfont{#1}#2}}


\defbeamertemplate*{headline}{boxes theme}
{%
  \leavevmode
  \beamer@currentbox=0\relax%
  \loop%
  \ifnum\beamer@currentbox<\beamer@headboxes%
  \hbox to\beamer@headboxsizes{%
   % Background
    {%
      \csname beamer@headbg\the\beamer@currentbox\endcsname%
      \vrule width\beamer@headboxsizes height\beamer@boxheadheight%
      \hskip-\beamer@headboxsizes%
    }%
    % Box
    {%
      \setbox\beamer@tempbox=\hbox to\beamer@headboxsizes{%
        \csname beamer@headbox\the\beamer@currentbox\endcsname\hfil}%
      \dp\beamer@tempbox=0pt%
      \setbox\beamer@tempbox=\hbox{\vbox{\box\beamer@tempbox\vskip3pt}}%
      \ht\beamer@tempbox=\beamer@boxheadheight%
      \dp\beamer@tempbox=0pt%
      \box\beamer@tempbox%
    }}%
  \advance\beamer@currentbox by 1%
  \repeat%
}%


                                % Foot
\newcount\beamer@footboxes
\newdimen\beamer@footboxsizes
\def\addfootboxtemplate#1#2{
  \expandafter\def\csname beamer@footbox\the\beamer@footboxes\endcsname{#2}
  \expandafter\def\csname beamer@footbg\the\beamer@footboxes\endcsname{#1}
  \advance\beamer@footboxes by 1\relax
  \beamer@footboxsizes=\paperwidth
  \divide\beamer@footboxsizes by\beamer@footboxes
}

\def\addfootbox#1#2{\addfootboxtemplate{\usebeamercolor[bg]{#1}}{\usebeamercolor[fg]{#1}\usebeamerfont{#1}#2}}

\defbeamertemplate*{footline}{boxes theme}
{%
  \leavevmode
  \beamer@currentbox=0\relax%
  \loop%
  \ifnum\beamer@currentbox<\beamer@footboxes%
  \hbox to\beamer@footboxsizes{%
                                % Background
    {%
      \csname beamer@footbg\the\beamer@currentbox\endcsname%
      \vrule width\beamer@footboxsizes height\beamer@boxfootheight%
      \hskip-\beamer@footboxsizes%
    }%
                                % Box
    {%
      \setbox\beamer@tempbox=\hbox to\beamer@footboxsizes{%
        \csname beamer@footbox\the\beamer@currentbox\endcsname\hfil}%
      \dp\beamer@tempbox=0pt%
      \setbox\beamer@tempbox=\hbox{\vbox{\box\beamer@tempbox\vskip3pt}}%
      \ht\beamer@tempbox=\beamer@boxfootheight%
      \dp\beamer@tempbox=0pt%
      \box\beamer@tempbox%
    }%
  }%
  \advance\beamer@currentbox by 1%
  \repeat%
}%


\mode
<all>