1 /*
2  * $Id: lists.h,v 1.5 2000/08/10 21:02:51 danny Exp $
3  *
4  * Copyright � 1992, 1993, 1999 Free Software Foundation, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this software; see the file COPYING.  If not, write to
18  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19  */
20 
21 #ifndef LISTSH
22 #define LISTSH
23 
24 
25 extern float height_scale;
26 extern float width_scale;
27 extern float user_height_scale;
28 extern float user_width_scale;
29 
30 extern void flush_everything (void);
31 extern void find_cells_in_range (struct rng *r);
32 extern void make_cells_in_range (struct rng *r);
33 extern struct cell * next_cell_in_range (void);
34 extern struct cell * next_row_col_in_range (CELLREF *rowp, CELLREF *colp);
35 extern void no_more_cells (void);
36 extern CELLREF max_row (CELLREF col);
37 extern CELLREF max_col (CELLREF row);
38 extern CELLREF highest_row (void);
39 extern CELLREF highest_col (void);
40 extern int get_width (CELLREF col);
41 extern int get_nodef_width (CELLREF col);
42 extern void set_width (CELLREF col, int wid);
43 extern void find_widths (CELLREF lo, CELLREF hi);
44 extern int next_width (CELLREF *posp);
45 extern void shift_widths (int over, CELLREF lo, CELLREF hi);
46 extern int get_height (CELLREF row);
47 extern int get_nodef_height (CELLREF row);
48 extern void set_height (CELLREF row, int hgt);
49 extern void set_user_scales (double hs, double ws);
50 extern int get_scaled_height (CELLREF r);
51 extern int get_scaled_width (CELLREF c);
52 extern void find_heights (CELLREF lo, CELLREF hi);
53 extern int next_height (CELLREF *posp);
54 extern void shift_heights (int dn, CELLREF lo, CELLREF hi);
55 
56 struct cf
57   {
58     struct cf *next;
59     struct find *rows, *cols;
60     int make;
61   };
62 
63 struct list
64 {
65   CELLREF lo, hi;
66   struct list *next;
67   char mem[1];
68 };
69 
70 struct find
71 {
72   struct find *next;
73   CELLREF lo, hi, cur;
74   struct list **start;
75   struct list *curptr;
76   CELLREF left;
77   void *ret;
78   char fini;
79   int ele;
80 };
81 #endif
82