2
/******************************************************************************
3
* MODULE : composite.hpp
4
* DESCRIPTION: composite boxes
5
* COPYRIGHT : (C) 1999 Joris van der Hoeven
6
*******************************************************************************
7
* This software falls under the GNU general public license and comes WITHOUT
8
* ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details.
9
* If you don't have this file, write to the Free Software Foundation, Inc.,
10
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
11
******************************************************************************/
18
/******************************************************************************
20
******************************************************************************/
22
struct composite_box_rep: public box_rep {
23
array<box> bs; // the children
24
path lip, rip; // left-most and right-most inverse paths
26
composite_box_rep (path ip);
27
composite_box_rep (path ip, array<box> bs);
28
composite_box_rep (path ip, array<box> bs, array<SI> x, array<SI> y);
29
~composite_box_rep ();
31
void insert (box b, SI x, SI y);
38
void display (ps_device dev);
40
virtual int find_child (SI x, SI y, SI delta, bool force);
41
virtual path find_box_path (SI x, SI y, SI delta, bool force);
42
virtual path find_lip ();
43
virtual path find_rip ();
44
virtual path find_box_path (path p, bool& found);
45
virtual path find_tree_path (path bp);
46
virtual cursor find_cursor (path bp);
47
virtual selection find_selection (path lbp, path rbp);
49
virtual tree action (tree t, SI x, SI y, SI delta);
50
virtual bool access_allowed ();
51
virtual void collect_page_numbers (hashmap<string,tree>& h, tree page);
52
virtual path find_tag (string name);
55
#endif // defined COMPOSITE_H