% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
%     https://github.com/pcafrica/focus-beamertheme
% 
% This file is part of beamerthemefocus.
% 
% beamerthemefocus is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% 
% beamerthemefocus is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with beamerthemefocus. If not, see <http://www.gnu.org/licenses/>.

\mode<presentation>

\RequirePackage{tikz}


% CUSTOMIZE STRUCTURE ELEMENTS. ------------------------------------------------
\setbeamertemplate{blocks}[default]

\setbeamertemplate{section in toc}[square]
\setbeamertemplate{subsection in toc}[square]

\setbeamertemplate{itemize items}[square]
\setbeamertemplate{itemize subitem}[triangle]


% STRUCTURE FRAME TEMPLATE DEFINITIONS. ----------------------------------------
% Title page.
\defbeamertemplate*{title page}{focus}{%
    {%
       	\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
        \begin{tikzpicture}[overlay, remember picture]
            \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
        \end{tikzpicture}
    }
    
    \vspace{-1.65\baselineskip}
    \begin{minipage}[b][0.35\paperheight]{\textwidth}
        \vspace{\baselineskip}
        \usebeamerfont{title}
        \usebeamercolor[fg]{frametitle}
        \inserttitle
    \end{minipage}
    
    \begin{minipage}[t][0.1\paperheight]{\textwidth}
        \usebeamerfont{subtitle}
        \usebeamercolor[fg]{frametitle}
        \insertsubtitle
    \end{minipage}
    
    % Set the title graphic in a zero-height box, so that
    % the position of other elements is not affected.
    {\vfuzz=9999pt\vbox to 0pt {
        \raggedleft
        \inserttitlegraphic
    }}
    
    \begin{minipage}[t]{\textwidth}
        \usebeamerfont{author}
        \insertauthor
    \end{minipage}
    
    \vspace*{\baselineskip}
    \begin{minipage}[t]{\textwidth}
        \usebeamerfont{institute}
        \insertinstitute
    \end{minipage}
    
    \vspace*{\baselineskip}
    \begin{minipage}[t]{\textwidth}
        \usebeamerfont{date}
        \insertdate
    \end{minipage}

   	\vspace*{0pt plus 100fill}
    
    \addtocounter{framenumber}{-1}
    \addtocounter{realframenumber}{-1}
}

% Section page.
\defbeamertemplate*{section page}{focus}{%
    {%
        \usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
        \begin{tikzpicture}[overlay, remember picture]
            \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
        \end{tikzpicture}%
    }
    
    \vspace{-2.5\baselineskip}
    \begin{minipage}[b][0.45\paperheight]{\textwidth}
        \usebeamerfont{sectiontitle}
        \usebeamercolor[fg]{frametitle}
        \let\hyperlink\@secondoftwo\insertsection
    \end{minipage}

    \vspace{\baselineskip}
    \begin{minipage}[t][0.5\paperheight]{\textwidth}
        \usebeamerfont{subsectiontitle}
        \usebeamercolor[bg]{frametitle}
        \insertsubsection
    \end{minipage}
}

\AtBeginSection[]{%
    \begin{frame}[plain, noframenumbering]{}
        \sectionpage
    \end{frame}%
}

% Subsection page.
\defbeamertemplate*{subsection page}{focus}{%
    {%
        \usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
        \begin{tikzpicture}[overlay, remember picture]
            \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
        \end{tikzpicture}%
    }
    
    \vspace{-2.5\baselineskip}
    \begin{minipage}[b][0.45\paperheight]{\textwidth}
        \usebeamerfont{sectiontitle}
        \usebeamercolor[fg]{frametitle}
        \let\hyperlink\@secondoftwo\insertsection
    \end{minipage}
    
    \vspace{\baselineskip}
    \begin{minipage}[t][0.5\paperheight]{\textwidth}
        \usebeamerfont{subsectiontitle}
        \usebeamercolor[bg]{frametitle}
        \insertsubsection
    \end{minipage}
}

\AtBeginSubsection[]{%
    \begin{frame}[plain, noframenumbering]{}
        \subsectionpage
    \end{frame}%
}

\mode<all>
