2 /******************************************************************************
3 * MODULE : stack_border.hpp
4 * DESCRIPTION: Border properties of a stack of page items
5 * COPYRIGHT : (C) 1999 Joris van der Hoeven
6 *******************************************************************************
7 * This software falls under the GNU general public license version 3 or later.
8 * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
9 * in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
10 ******************************************************************************/
12 #ifndef STACK_BORDER_H
13 #define STACK_BORDER_H
16 class stack_border_rep
: public concrete_struct
{
18 SI height
; // default distance between successive base lines
19 SI sep
; // (~~PAR_SEP) sep-ver_sep is maximal amount of shoving
20 SI hor_sep
; // min. hor. ink sep. when lines are shoved into each other
21 SI ver_sep
; // minimal separation of ink
22 SI bot
; // logical bottom of lines
23 SI top
; // logical top of lines
30 space vspc_before
, vspc_after
;
31 bool nobr_before
, nobr_after
;
33 inline stack_border_rep ():
34 height (0), sep (0), hor_sep (0), ver_sep (0), bot (0), top (0),
35 height_before (0), sep_before (0), hor_sep_before (0), ver_sep_before (0),
36 vspc_before (0), vspc_after (0),
37 nobr_before (false), nobr_after (false) {}
41 CONCRETE(stack_border
);
42 inline stack_border (): rep (tm_new
<stack_border_rep
> ()) {}
44 CONCRETE_CODE(stack_border
);
47 operator << (tm_ostream
& out
, stack_border sb
) {
48 return out
<< "[Before: " << sb
->vspc_before
49 << ", " << sb
->nobr_before
<< "; "
50 << "After: " << sb
->vspc_after
51 << ", " << sb
->nobr_after
<< "]";
54 #endif // defined STACK_BORDER_H