Back to index

texmacs  1.0.7.15
impl_typesetter.hpp
Go to the documentation of this file.
00001 
00002 /******************************************************************************
00003 * MODULE     : impl_typesetter.hpp
00004 * DESCRIPTION: Implementation of the main TeXmacs typesetting routines
00005 * COPYRIGHT  : (C) 1999  Joris van der Hoeven
00006 *******************************************************************************
00007 * This software falls under the GNU general public license version 3 or later.
00008 * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
00009 * in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
00010 ******************************************************************************/
00011 
00012 #ifndef IMPL_TYPESETTER_H
00013 #define IMPL_TYPESETTER_H
00014 #include "Bridge/bridge.hpp"
00015 
00016 class typesetter_rep {
00017 public:
00018   edit_env&   env;
00019   bridge      br;
00020   rectangles  change_log;
00021 
00022   array<page_item> l;      // current lines
00023   stack_border     sb;     // border properties
00024   array<line_item> a;      // left surroundings
00025   array<line_item> b;      // right surroundings
00026 
00027   SI x1, y1, x2, y2;
00028   hashmap<string,tree> old_patch;
00029   bool paper;
00030 
00031 public:
00032   typesetter_rep (edit_env& env, tree et, path ip);
00033 
00034   void insert_stack     (array<page_item> l, stack_border sb);
00035   void insert_parunit   (tree t, path ip);
00036   void insert_paragraph (tree t, path ip);
00037   void insert_surround  (array<line_item> a, array<line_item> b);
00038   void insert_marker    (tree st, path ip);
00039 
00040   void local_start   (array<page_item>& l, stack_border& sb);
00041   void local_end     (array<page_item>& l, stack_border& sb);
00042 
00043   void determine_page_references (box b);
00044   box  typeset ();
00045   box  typeset (SI& x1, SI& y1, SI& x2, SI& y2);
00046 };
00047 
00048 #endif // defined IMPL_TYPESETTER_H