%░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
%░░░      ░░░░░   ░░░░░░░░░░░░░   ░░░░░░░░░░░
%▒   ▒▒▒▒   ▒▒▒   ▒▒▒▒▒▒▒▒▒▒▒▒▒   ▒▒▒▒▒▒▒▒▒▒▒
%▒▒   ▒▒▒▒▒▒▒    ▒  ▒   ▒▒▒   ▒   ▒▒▒▒   ▒▒▒▒
%▓▓▓▓   ▓▓▓▓▓▓▓   ▓▓▓▓   ▓   ▓▓   ▓▓  ▓▓▓   ▓
%▓▓▓▓▓▓▓   ▓▓▓▓   ▓▓▓▓▓▓    ▓▓▓   ▓         ▓
%▓   ▓▓▓▓   ▓▓▓   ▓ ▓▓▓▓▓   ▓▓▓   ▓  ▓▓▓▓▓▓▓▓
%███      ██████   █████   ████   ███     ███
%██████████████████████   ███████████████████

% Global style configs for tcolorbox (to reduce bloat)
\newcommand{\usetcolorboxes}{
	\tcbset{
		mainboxstyle/.style={
				arc=3mm,
				colback=red!5!white,
				colframe=red!75!black,
				colbacktitle=red!75!black,
				fonttitle=\bfseries,
				enhanced,
				attach boxed title to top left={yshift=-2mm,xshift=5mm},
				breakable,
				top=0.4cm,
			}
	}
	\tikzset{
		overlaystyle/.style={
				draw=red!75!black,
				thick,
				fill=red!75!black,
				left,
				anchor=east,
				text=white,
				rounded corners=1mm,
				font=\bfseries,
				xshift=-5mm,
				yshift=1mm,
				inner xsep=3mm,
				inner ysep=1.5mm
			}
	}
}

% -------------------- %
% Small style elements %
% -------------------- %
\newcommand{\setFont}[1]{\fontfamily{#1}\selectfont}
\newcommand{\setFontType}[1]{
    \ifthenelse{\equal{#1}{mono}}{
        \renewcommand{\familydefault}{\ttdefault}
    }{
        \ifthenelse{\equal{#1}{serif}}{
            \renewcommand{\familydefault}{\rmdefault}
        }{
            \renewcommand{\familydefault}{\sfdefault}
        }
    }
}
\newcommand{\rmvspace}{\vspace{-0.5pc}}
\newcommand{\drmvspace}{\vspace{-1pc}}
\renewcommand{\footrulewidth}{0.4pt}
\newcommand{\TODO}{\color{red} \hl{TODO:} \color{black}}
\newcommand{\bi}[1]{\textbf{\textit{#1}}}
\renewcommand{\quote}[1]{``\textit{#1}''}

% Add a color shade (similar to \fhlc, but nicer boxes)
\newcommand{\background}[3]{\tcbox[on line,
		boxsep=2pt,
		left=0pt,
		right=0pt,
		top=0pt,
		bottom=0pt,
		colframe=white,
		frame empty,
		colback=#1!#2!white,
		highlight math style={enhanced}
	] {\textbf{#3}}}

% Abstraction of background, where the brightness is set to 20%
\newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}}

% This command is used for the short and inline descriptors
\newcommand{\bg}[2]{\background{#1}{\arabic{descriptorShadeStrength}}{#2}}

% Add a gray backdrop
\newcommand{\backdrop}[1]{\shade{black}{#1}}


% Fancy highlighting (Bold, underlined, colorbox behind it. Shorthand for \fhlc{white}{#1}
\newcommand{\fhl}[1]{\fhlc{white}{#1}}

% Add a colorbox around your text with the color specified. Text is bold and underlined
\newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}}

% Draw box around links. First arg link, second arg display
\newcommand{\hlhref}[2]{\color{MidnightBlue}\fbox{\href{#1}{#2}}\color{black}}

% Same for urls (just one arg tho)
\newcommand{\hlurl}[1]{\color{MidnightBlue}\fbox{\url{#1}}\color{black}}

% Spacing (horizontal)
\newcommand{\smallhspace}{\hspace{2mm}}
\newcommand{\mediumhspace}{\hspace{5mm}}
\newcommand{\largehspace}{\hspace{1cm}}

% ----------------- %
% Table of contents %
% ----------------- %

% Print a table of contents as a tcolorbox
\newcommand{\printtoc}[1]{
	\renewcommand{\cfttoctitlefont}{}
	\renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}}
	\renewcommand{\contentsname}{}
	\begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm},
		title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable]
		\hspace{1cm}
		\tableofcontents
	\end{tcolorbox}
}
