pack-fen.mkxl /size: 3013 b    last modification: 2021-10-28 13:51
1%D \module
2%D   [       file=pack-fen,
3%D        version=2011.07.21,
4%D          title=\CONTEXT\ Packaging Macros,
5%D       subtitle= Fences for Ruled Content,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14\writestatus{loading}{ConTeXt Packaging Macros / Fences for Ruled Content}
15
16%D \startbuffer
17%D \useMPlibrary[meta-imp-hooks.mkiv]
18%D
19%D \framed[frame=off,bottomframe=righthook]{Bottom right hook}
20%D \stopbuffer
21%D
22%D \typebuffer
23%D
24%D \startlinecorrection
25%D \getbuffer
26%D \stoplinecorrection
27
28\unprotect
29
30\permanent\protected\def\installleftframerenderer#1#2%
31  {\defcsname\??framedleft\v!on#1\endcsname{\whateverleftframe{#2}}%
32   \letcsname\??framedleft\v!off#1\expandafter\endcsname\csname\??framedleft\v!on#1\endcsname}
33
34\permanent\protected\def\installrightframerenderer#1#2%
35  {\defcsname\??framedright\v!on#1\endcsname{\whateverrightframe{#2}}%
36   \letcsname\??framedright\v!off#1\expandafter\endcsname\csname\??framedright\v!on#1\endcsname}
37
38\permanent\protected\def\installtopframerenderer#1#2%
39  {\defcsname\??framedtop\v!on#1\endcsname{\whatevertopframe{#2}}%
40   \letcsname\??framedtop\v!off#1\expandafter\endcsname\csname\??framedtop\v!on#1\endcsname}
41
42\permanent\protected\def\installbottomframerenderer#1#2%
43  {\defcsname\??framedbottom\v!on#1\endcsname{\whateverbottomframe{#2}}%
44   \letcsname\??framedbottom\v!off#1\expandafter\endcsname\csname\??framedbottom\v!on#1\endcsname}
45
46\newbox\b_framed_rendered
47
48\permanent\protected\def\whateverleftframe#1%
49  {\pack_framed_overlay_initialize_indeed
50   \setbox\b_framed_rendered\vpack to \d_overlay_height{\vss#1\vss}%
51   \setbox\b_framed_rendered\hpack to \zeropoint{\box\b_framed_rendered\hss}%
52   \ht\b_framed_rendered\zeropoint
53   \dp\b_framed_rendered\zeropoint
54   \box\b_framed_rendered}
55
56\permanent\protected\def\whateverrightframe#1%
57  {\pack_framed_overlay_initialize_indeed
58   \setbox\b_framed_rendered\vpack to \d_overlay_height{\vss#1\vss}%
59   \setbox\b_framed_rendered\hpack to \zeropoint{\hss\box\b_framed_rendered}%
60   \ht\b_framed_rendered\zeropoint
61   \dp\b_framed_rendered\zeropoint
62   \box\b_framed_rendered}
63
64\permanent\protected\def\whatevertopframe#1%
65  {\pack_framed_overlay_initialize_indeed
66   \setbox\b_framed_rendered\hpack to \d_overlay_width{\hss#1\hss}%
67   \setbox\b_framed_rendered\vpack to \zeropoint{\box\b_framed_rendered\vss}%
68   \ht\b_framed_rendered\zeropoint
69   \dp\b_framed_rendered\zeropoint
70   \box\b_framed_rendered
71   \nointerlineskip}
72
73\permanent\protected\def\whateverbottomframe#1%
74  {\pack_framed_overlay_initialize_indeed
75   \setbox\b_framed_rendered\hpack to \d_overlay_width{\hss#1\hss}%
76   \setbox\b_framed_rendered\vpack to \zeropoint{\vss\box\b_framed_rendered}%
77   \ht\b_framed_rendered\zeropoint
78   \dp\b_framed_rendered\zeropoint
79   \box\b_framed_rendered}
80
81\protect \endinput
82