1 
2 /******************************************************************************
3 * MODULE     : typesetter.hpp
4 * DESCRIPTION: The result of typesetting a paragraph is
5 *              an instance of the paragraph class
6 * COPYRIGHT  : (C) 1999  Joris van der Hoeven
7 *******************************************************************************
8 * This software falls under the GNU general public license version 3 or later.
9 * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
10 * in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ******************************************************************************/
12 
13 #ifndef TYPESETTER_H
14 #define TYPESETTER_H
15 #include "boxes.hpp"
16 #include "env.hpp"
17 #include "array.hpp"
18 
19 class typesetter_rep;
20 typedef typesetter_rep* typesetter;
21 
22 typesetter new_typesetter (edit_env& env, tree et, path ip);
23 void       delete_typesetter (typesetter ttt);
24 
25 void notify_assign      (typesetter ttt, path p, tree u);
26 void notify_insert      (typesetter ttt, path p, tree u);
27 void notify_remove      (typesetter ttt, path p, int nr);
28 void notify_split       (typesetter ttt, path p);
29 void notify_join        (typesetter ttt, path p);
30 void notify_assign_node (typesetter ttt, path p, tree_label op);
31 void notify_insert_node (typesetter ttt, path p, tree t);
32 void notify_remove_node (typesetter ttt, path p);
33 void exec_until         (typesetter ttt, path p);
34 box  typeset            (typesetter ttt, SI& x1, SI& y1, SI& x2, SI& y2);
35 
36 box        typeset_as_concat (edit_env env, tree t, path ip);
37 box        typeset_as_box (edit_env env, tree t, path ip);
38 box        typeset_as_atomic (edit_env env, tree t, path ip);
39 box        typeset_as_stack (edit_env env, tree t, path ip);
40 box        typeset_as_table (edit_env env, tree t, path ip);
41 array<box> typeset_as_var_table (edit_env env, tree t, path ip);
42 box        typeset_as_paragraph (edit_env e, tree t, path ip);
43 box        typeset_as_document (edit_env e, tree t, path ip);
44 tree       box_info (edit_env env, tree t, string what);
45 
46 #endif // defined TYPESETTER_H
47