summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/clicks/clicks.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/clicks/clicks.sty')
-rw-r--r--macros/latex/contrib/clicks/clicks.sty73
1 files changed, 73 insertions, 0 deletions
diff --git a/macros/latex/contrib/clicks/clicks.sty b/macros/latex/contrib/clicks/clicks.sty
new file mode 100644
index 0000000000..9862e10a54
--- /dev/null
+++ b/macros/latex/contrib/clicks/clicks.sty
@@ -0,0 +1,73 @@
+% (The MIT License)
+%
+% Copyright (c) 2021 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{clicks}[2021/09/12 0.1.0 Clicks]
+
+\RequirePackage{etoolbox}
+
+\makeatletter\newif\ifclicks@static\makeatother
+\makeatletter\DeclareOption{static}{\clicks@statictrue}\makeatother
+\ProcessOptions\relax
+
+\makeatletter\newcommand*\clicks@body{}\makeatother
+\makeatletter\newcommand\clicks@flush{%
+ \clicks@body\vspace*{0pt}\newpage%
+}\makeatother
+
+\newcounter{minutes}
+
+% Print the content as is
+\newcommand\print[1]{%
+ \makeatletter\gappto\clicks@body\makeatother{{#1\par}}%
+}
+
+\makeatletter\newcommand\flush[1][1]{%
+ \clicks@flush%
+ \renewcommand*\clicks@body{}%
+ \ifclicks@static\else%
+ \addtocounter{minutes}{#1}%
+ \fi%
+}
+
+\makeatletter\newcommand\click{%
+ \ifclicks@static\else%
+ \clicks@flush%
+ \fi%
+}\makeatother
+
+% Print and flush
+% [1]: How many minutes to stay here
+% {1}: The content to print
+\newcommand\plush[2][1]{%
+ \print{#2}%
+ \flush[#1]%
+}
+
+% Print and click
+% {1}: The content to print
+\newcommand\plick[1]{%
+ \print{#1}%
+ \click%
+}
+
+\endinput