1
2
3
4
5
6
7
8
9
10
11
12
13
14\startmodule[presentstack]
15
16
17
18
19\setuppapersize
20 [S6][S6]
21
22\setuplayout
23 [topspace=0cm,
24 backspace=0cm,
25 header=0pt,
26 footer=0pt,
27 width=middle,
28 height=middle]
29
30\doifelsemode {asintended} {
31 \setupbodyfont[ludicaot,14.4pt]
32} {
33 \setupbodyfont[pagella,14.4pt]
34}
35
36\setupinteraction
37 [click=no,
38 display=new,
39 state=start]
40
41\setupinteractionscreen
42 [option=max]
43
44\unexpanded\def\SomeShape
45 {\resetMPdrawing
46 \startMPdrawing
47 path p[], q[] ; pair a, b ;
48 StartPage ;
49 \stopMPdrawing
50 \dorecurse{\CurrentTopic}
51 {\startMPdrawing
52 initializebox(\MPpos{topic\realfolio\recurselevel}) ;
53 p[\recurselevel] := tensecircle (wxy,hxy,.25cm) shifted cxy ;
54 fill p[\recurselevel] withcolor .9white ;
55 pickup pencircle scaled .25cm ;
56 if \recurselevel = \CurrentTopic :
57 draw p[\recurselevel] withcolor \MPcolor{ShowColor} ;
58 else :
59 draw p[\recurselevel] withcolor \MPcolor{DoneColor} ;
60 fi ;
61 \stopMPdrawing}
62 \dorecurse{\CurrentMaxItem}
63 {\startMPdrawing
64 initializebox(\MPpos{item\realfolio\recurselevel}) ;
65 linewidth := .25cm ;
66 q[\recurselevel] := tensecircle (wxy,hxy,linewidth) shifted cxy ;
67 fill q[\recurselevel] withcolor .9white ;
68 pickup pencircle scaled linewidth ;
69 if \recurselevel = \CurrentMaxItem :
70 draw q[\recurselevel] withcolor \MPcolor{ShowColor} ;
71 else :
72 draw q[\recurselevel] withcolor \MPcolor{DoneColor} ;
73 fi ;
74 \stopMPdrawing}
75 \dostepwiserecurse{2}{\CurrentTopic}{1}
76 {\startMPdrawing
77 draw
78 rt point 3 of p[\recurselevel1]
79 lft point 7 of p[\recurselevel]
80 withcolor \MPcolor{ArrowColor} ;
81 \stopMPdrawing}
82 \dostepwiserecurse{2}{\CurrentMaxItem}{1}
83 {\startMPdrawing
84 draw
85 bot point 9 of q[\recurselevel1]
86 top point 5 of q[\recurselevel]
87 withcolor \MPcolor{ArrowColor} ;
88 \stopMPdrawing}
89 \startMPdrawing
90 draw Page
91 withpen pencircle scaled .5cm
92 withcolor \MPcolor{EdgeColor} ;
93 StopPage ;
94 \stopMPdrawing
95 \MPdrawingdonetrue
96 \getMPdrawing}
97
98\unexpanded\def\TitlePage#1
99 {\startstandardmakeup
100 \setupalign[middle]
101 \enforced\protected\def\\{\vfil\bfb\setupinterlinespace}
102 \bfd\setupinterlinespace
103 \vfil#1\vfil\vfil
104 \stopstandardmakeup}
105
106\definecolor[PageColor][r=.5,g=.4,b=.3]
107\definecolor[LineColor][r=.7,g=.6,b=.5]
108
109\definecolor[PageColor] [s=.60]
110\definecolor[ShowColor] [r=.40]
111\definecolor[EdgeColor] [g=.40]
112\definecolor[DoneColor] [r=.40,g=.40]
113\definecolor[ArrowColor] [b=.40]
114\definecolor[LineColor] [r=.60,g=.60]
115\definecolor[GotoColor] [ArrowColor]
116
117\setupinteraction
118 [color=GotoColor,
119 contrastcolor=GotoColor]
120
121\defineoverlay [shape] [\SomeShape]
122\defineoverlay [next] [\overlaybutton{forward}]
123
124\setupbackgrounds
125 [page]
126 [background={color,next,shape},
127 backgroundcolor=PageColor]
128
129\doglobal\newcounter\CurrentMaxItem
130\doglobal\newcounter\CurrentItem
131\doglobal\newcounter\CurrentTopic
132
133\unexpanded\def\StartIdea
134 {\doglobal\newcounter\CurrentItem}
135
136\unexpanded\def\StartTopic
137 {\doglobal\increment\CurrentTopic
138 \dostartbuffer[topic\CurrentTopic][StartTopic][StopTopic]}
139
140\unexpanded\def\StopIdea
141 {\dorecurse{\CurrentItem}
142 {\let\CurrentMaxItem\recurselevel
143 \doStopIdea}}
144
145\unexpanded\def\doStopIdea
146 {\startstandardmakeup
147 \dontcomplain
148 \vskip.875cm
149 \hbox to \makeupwidth
150 {\hfill
151 \dorecurse{\CurrentTopic}
152 {\edef\Topic{topic\realfolio\recurselevel}
153 \hpos
154 {\Topic}
155 {\framed
156 [frame=off,align=middle,offset=.25cm]
157 {\getbuffer[topic\recurselevel]}}
158 \ifnum\recurselevel<\CurrentTopic
159 \hskip.875cm
160 \fi}
161 \hfill}
162 \vskip.875cm
163 \vfilll
164 \dorecurse{\CurrentMaxItem}
165 {\edef\Item{item\realfolio\recurselevel}
166 \hbox to \makeupwidth
167 {\hfill
168 \hpos
169 {\Item}
170 {\framed
171 [width=.75\makeupwidth,
172 frame=off,
173 align=middle,offset=.125cm]
174 {\getbuffer[item\recurselevel]}}
175 \hfill}
176 \vskip.875cm}
177 \vfilll
178 \stopstandardmakeup}
179
180\unexpanded\def\StartItem
181 {\doglobal\increment\CurrentItem
182 \dostartbuffer[item\CurrentItem][StartItem][StopItem]}
183
184\setupalign
185 [nothyphenated]
186
187\stopmodule
188
189\continueifinputfile{spresentstack.mkiv}
190
191\usemodule[presentcommon]
192
193\inputpresentationfile{examplespresentstack001.tex}
194
195 |