% \iffalse
%<*color>
% \fi\file{theme/bs/beamercolorthemefibeamer-bs.sty}
% This is the base color theme for presentations written at the
% Masaryk University in Brno.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fibeamer/theme/bs/%
 beamercolorthemefibeamer-bs}[2016/05/06]
%    \end{macrocode}
% \begin{macro}{\darkframes}
% The |darkframes| environment switches the color definitions to
% render the enclosed frames in dark colors. This is a dummy
% definition, which will be overridden by the subsequently loaded
% color theme in the presentation mode.
%    \begin{macrocode}
\newenvironment{darkframes}{}{}
%    \end{macrocode}
% \end{macro}
% The rest of the theme will be ignored outside the presentation
% mode.
%    \begin{macrocode}
\mode<presentation>
%    \end{macrocode}
% The theme loads the following packages, which will be used by the
% subsequently loaded color theme specific to a faculty:
% \begin{itemize}
%   \item\textsf{listings} -- This package is used for code
%     listings. The subsequently loaded color theme will specify
%     source code coloring for the package.
%   \item\textsf{ifthen} -- This package is used to construct
%     compound conditionals.
%   \item\textsf{tikz} -- This package is used to create gradient
%     background for dark slides.
% \end{itemize}
%    \begin{macrocode}
 \RequirePackage{listings}
 \RequirePackage{ifthen}
 \RequirePackage{tikz}
%    \end{macrocode}
% \begin{macro}{\iffibeamer@dark}
% The |\iffibeamer@dark| conditional will be switched on and off by
% the subsequently loaded color theme based on whether or not the
% given frame is being typeset in light or dark colors. This
% information will be used by outer themes to insert the correct
% logo into each frame.
%    \begin{macrocode}
 \newif\iffibeamer@dark\fibeamer@darkfalse
%    \end{macrocode}
% \end{macro}
% A frame that is either title or dark, as specified by the value
% of the |\iffibeamer@dark| conditional, will have a gradient
% background as specified by the |fibeamer@dark@backgroundInner|
% and |fibeamer@light@backgroundOuter| colors that shall be defined
% by the subsequently loaded color theme.
%
% A frame that is neither title nor dark, as specified by the value
% of the |\iffibeamer@dark| conditional, will have a gradient
% background as specified by the |fibeamer@light@backgroundInner|
% and |fibeamer@light@backgroundOuter| colors that shall be defined
% by the subsequently loaded color theme.
%    \begin{macrocode}
 \defbeamertemplate*{background canvas}{fibeamer}{%
   \ifthenelse{%
     \boolean{fibeamer@dark} \OR \c@framenumber=0
   }{%
     \begin{tikzpicture}
       \clip (0,\fibeamer@lengths@clipbottom) rectangle
         (\paperwidth,\fibeamer@lengths@cliptop);
       \path [inner color = fibeamer@dark@backgroundInner,
              outer color = fibeamer@dark@backgroundOuter]
         (0,0) rectangle (\paperwidth,\paperwidth);
     \end{tikzpicture}
   }{%
     \begin{tikzpicture}
       \clip (0,\fibeamer@lengths@clipbottom) rectangle
         (\paperwidth,\fibeamer@lengths@cliptop);
       \path [inner color = fibeamer@light@backgroundInner,
              outer color = fibeamer@light@backgroundOuter]
         (0,0) rectangle (\paperwidth,\paperwidth);
     \end{tikzpicture}
   }}
%    \end{macrocode}
% The |\qed| symbol inserted at the end of proofs will have the
% same color as the rest of the proof.
%    \begin{macrocode}
 \setbeamercolor{qed symbol}{%
   use=block body,
   fg=block body.fg,
   bg=block body.bg}
%    \end{macrocode}
% The links can be colored by the subsequently loaded color themes.
%    \begin{macrocode}
 \hypersetup{colorlinks,linkcolor=}
\mode
<all>
%    \end{macrocode}
% \iffalse
%</color>
%<*font>
% \fi\file{theme/bs/beamerfontthemefibeamer-bs.sty}
% This is the base font theme for presentations written at the
% Masaryk University in Brno. The theme has no effect outside the
% presentation mode.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fibeamer/theme/bs/%
 beamerfontthemefibeamer-bs}[2016/01/12]
\mode<presentation>
 \setbeamerfont{normal text}{size=\normalsize}
 \setbeamerfont{title}{size=\LARGE, series=\bfseries}
 \setbeamerfont{subtitle}{parent=normal text, size=\Large}
 \setbeamerfont{frametitle}{size=\Large}
 \setbeamerfont{framesubtitle}{size=\large, shape=\itshape}
 \setbeamerfont{description item}{series=\bfseries}
 \setbeamerfont{author}{size=\large}
\mode
<all>
%    \end{macrocode}
% \iffalse
%</font>
%<*inner>
% \fi\file{theme/bs/beamerinnerthemefibeamer-bs.sty}
% This is the base inner theme for presentations written at the
% Masaryk University in Brno. The theme has no effect outside the
% presentation mode.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fibeamer/theme/bs/%
 beamerinnerthemefibeamer-bs}[2016/01/14]
\mode<presentation>
%    \end{macrocode}
% This part of the inner theme defines the design of lists.
%    \begin{macrocode}
\defbeamertemplate*{itemize item}{fibeamer}{$\bullet$}
\defbeamertemplate*{itemize subitem}{fibeamer}{\---}
\defbeamertemplate*{itemize subsubitem}{fibeamer}{\guillemotright}
%    \end{macrocode}
% This part of the inner theme defines the design of bibliography
% items and citations.^^A
%    \begin{macrocode}
\defbeamertemplate*{bibliography item}{fibeamer}{\insertbiblabel}
\AtBeginDocument{%
 \let\fibeamer@oldcite\cite
 \def\cite#1{{%
   \usebeamercolor[fg]{item}%
   \fibeamer@oldcite{#1}}}}
%    \end{macrocode}
% This part of the inner theme defines the design of the table of
% contents.
%    \begin{macrocode}
\defbeamertemplate*{section in toc}{fibeamer}{%
 \usebeamercolor[fg]{item}%
   \inserttocsectionnumber.%
 \usebeamercolor[fg]{structure}%
 \kern1.25ex\inserttocsection\par}
\defbeamertemplate*{subsection in toc}{fibeamer}{%
 \hspace\leftmargini
 \usebeamercolor[fg]{item}%
   \inserttocsectionnumber.\inserttocsubsectionnumber%
 \usebeamercolor[fg]{structure}%
 \kern1.25ex\inserttocsubsection\par}
\defbeamertemplate*{subsubsection in toc}{fibeamer}{%
 \hspace\leftmargini
 \hspace\leftmarginii
 \usebeamercolor[fg]{item}%
   \inserttocsectionnumber.\inserttocsubsectionnumber.%
   \inserttocsubsubsectionnumber%
 \usebeamercolor[fg]{structure}%
 \kern1.25ex\inserttocsubsubsection\par}
\mode
<all>
%    \end{macrocode}
% \iffalse
%</inner>
%<*outer>
% \fi\file{theme/bs/beamerouterthemefibeamer-bs.sty}
% This is the base outer theme for presentations written at the
% Masaryk University in Brno. The theme has no effect outside the
% presentation mode.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fibeamer/theme/bs/%
 beamerouterthemefibeamer-bs}[2016/01/12]
\mode<presentation>
%    \end{macrocode}
% The theme uses the following packages:
% \begin{itemize}
%   \item\textsf{ifthen} -- This package is used to construct
%     compound conditionals.
%   \item\textsf{ifpdf} -- This package is used to check, whether
%     the document is being typeset in DVI mode. If it is, then
%     the |\pdfpagewidth| and |\pdfpageheight| dimensions are
%     defined, so that positioning in TikZ works correctly.
%     \changes{v1.0.1}{2015/10/03}{Added DVI output support. [VN]}
%     ^^A <http://tex.stackexchange.com/a/246631/70941>
%   \item\textsf{tikz} -- This package is used to position the
%     logo and the frame number on a frame.
%   \item\textsf{pgfcore} -- This package is used to draw the
%     dashed line at the title frame.
% \end{itemize}
%    \begin{macrocode}
 \RequirePackage{ifthen}
 \RequirePackage{ifpdf}
 \ifpdf\else
   \@ifundefined{pdfpagewidth}{\newdimen\pdfpagewidth}{}
   \@ifundefined{pdfpageheight}{\newdimen\pdfpageheight}{}
   \pdfpagewidth=\paperwidth
   \pdfpageheight=\paperheight
 \fi
 \RequirePackage{tikz}
 \RequirePackage{pgfcore}
%    \end{macrocode}
% This part of the outer theme defines the geometry of the frames
% along with other dimensions.
%    \begin{macrocode}
 \newlength\fibeamer@lengths@baseunit
 \fibeamer@lengths@baseunit=3.75mm
 % The footer padding
 \newlength\fibeamer@lengths@footerpad
 \setlength\fibeamer@lengths@footerpad{%
   \fibeamer@lengths@baseunit}
 % The side margins
 \newlength\fibeamer@lengths@margin
 \setlength\fibeamer@lengths@margin{%
   3\fibeamer@lengths@baseunit}
 \setbeamersize{
   text margin left=\fibeamer@lengths@margin,
   text margin right=\fibeamer@lengths@margin}
 % The upper margin
 \newlength\fibeamer@lengths@titleline
 \setlength\fibeamer@lengths@titleline{%
   3\fibeamer@lengths@baseunit}
 % The background clipping
 \newlength\fibeamer@lengths@clipbottom
 \setlength\fibeamer@lengths@clipbottom\paperwidth
 \addtolength\fibeamer@lengths@clipbottom{-\paperheight}
 \setlength\fibeamer@lengths@clipbottom{%
   0.5\fibeamer@lengths@clipbottom}
 \newlength\fibeamer@lengths@cliptop
 \setlength\fibeamer@lengths@cliptop\paperwidth
 \addtolength\fibeamer@lengths@cliptop{%
   -\fibeamer@lengths@clipbottom}

 % The logo size
 \newlength\fibeamer@lengths@logowidth
 \setlength\fibeamer@lengths@logowidth{%
   10.5\fibeamer@lengths@baseunit}
 \newlength\fibeamer@lengths@logoheight
 \setlength\fibeamer@lengths@logoheight{%
   4,37\fibeamer@lengths@baseunit}
%    \end{macrocode}
% The outer theme completely culls the bottom navigation.
%    \begin{macrocode}
 \defbeamertemplate*{navigation symbols}{fibeamer}{}
%    \end{macrocode}
% The outer theme also culls the headline.
%    \begin{macrocode}
 \defbeamertemplate*{headline}{fibeamer}{}
%    \end{macrocode}
% The frame title.
%    \begin{macrocode}
 \defbeamertemplate*{frametitle}{fibeamer}{%
   \vskip-1em % Align the text with the top border
   \vskip\fibeamer@lengths@titleline
   \usebeamercolor[fg]{frametitle}%
   \usebeamerfont{frametitle}%
     \insertframetitle\par%
   \usebeamercolor[fg]{framesubtitle}%
   \usebeamerfont{framesubtitle}%
     \insertframesubtitle}
%    \end{macrocode}
% The footline contains the frame number. It is flushed right.
%    \begin{macrocode}
 \defbeamertemplate*{footline}{fibeamer}{%
   \ifnum\c@framenumber=0\else%
     \begin{tikzpicture}[overlay]
       \node[anchor=south east,
         yshift=\fibeamer@lengths@footerpad,
         xshift=-\fibeamer@lengths@footerpad] at
         (current page.south east) {
           \usebeamercolor[fg]{framenumber}%
           \usebeamerfont{framenumber}%
           \insertframenumber/\inserttotalframenumber};
     \end{tikzpicture}
   \fi}
%    \end{macrocode}
% The title frame contains the main logo, the |\title|, the
% |\subtitle|, and the |\author|.
%    \begin{macrocode}
 \defbeamertemplate*{title page}{fibeamer}{%

   \begin{darkframes}

   % This is slide 0
   \setcounter{framenumber}{0}

   % Input the university logo
   \begin{tikzpicture}[
     remember picture,
     overlay,
     xshift=0.5\fibeamer@lengths@logowidth,
     yshift=0.5\fibeamer@lengths@logoheight
   ]
     \node at (0,0) {
       \fibeamer@includeLogo[
         width=\fibeamer@lengths@logowidth,
         height=\fibeamer@lengths@logoheight
       ]};
   \end{tikzpicture}

   % Input the title
   \usebeamerfont{title}%
   \usebeamercolor[fg]{title}%
   \begin{minipage}[b][2\baselineskip][b]{\textwidth}%
     \raggedright\inserttitle
   \end{minipage}
   \vskip-.5\baselineskip

   % Input the dashed line
   \begin{pgfpicture}
     \pgfsetlinewidth{2pt}
     \pgfsetroundcap
     \pgfsetdash{{0pt}{4pt}}{0cm}

     \pgfpathmoveto{\pgfpoint{0mm}{0mm}}
     \pgfpathlineto{\pgfpoint{\textwidth}{0mm}}

     \pgfusepath{stroke}
   \end{pgfpicture}
   \vfill

   % Input the subtitle
   \usebeamerfont{subtitle}%
   \usebeamercolor[fg]{subtitle}%
   \begin{minipage}{\textwidth}
     \raggedright%
     \insertsubtitle%
   \end{minipage}\vskip.25\baselineskip

   % Input the author's name
   \usebeamerfont{author}%
   \usebeamercolor[fg]{author}%
   \begin{minipage}{\textwidth}
     \raggedright%
     \insertauthor%
   \end{minipage}
   \end{darkframes}}

\mode
<all>
%    \end{macrocode}
% \iffalse
%</outer>
% \fi