147 lines
3.0 KiB
C
147 lines
3.0 KiB
C
/* $Id: table.h,v 1.5 2001/11/30 10:10:24 ukai Exp $ */
|
|
#if (defined(MESCHACH) && !defined(MATRIX))
|
|
#define MATRIX
|
|
#endif /* (defined(MESCHACH) && !defined(MATRIX)) */
|
|
|
|
#ifdef MATRIX
|
|
#ifdef MESCHACH
|
|
#include <matrix2.h>
|
|
#else /* not MESCHACH */
|
|
#include "matrix.h"
|
|
#endif /* not MESCHACH */
|
|
#endif /* MATRIX */
|
|
|
|
#include "Str.h"
|
|
|
|
#define MAX_TABLE 20 /* maximum nest level of table */
|
|
#define MAX_TABLE_N 20 /* maximum number of table in same level */
|
|
|
|
#define MAXROW 50
|
|
#define MAXCOL 50
|
|
|
|
#define MAX_WIDTH 80
|
|
|
|
#define BORDER_NONE 0
|
|
#define BORDER_THIN 1
|
|
#define BORDER_THICK 2
|
|
#define BORDER_NOWIN 3
|
|
|
|
typedef unsigned short table_attr;
|
|
|
|
/* flag */
|
|
#define TBL_IN_ROW 1
|
|
#define TBL_EXPAND_OK 2
|
|
#define TBL_IN_COL 4
|
|
|
|
#define MAXCELL 20
|
|
struct table_cell {
|
|
short col[MAXCELL];
|
|
short colspan[MAXCELL];
|
|
char index[MAXCELL];
|
|
short maxcell;
|
|
short icell;
|
|
#ifdef MATRIX
|
|
char eindex[MAXCELL];
|
|
short necell;
|
|
#endif /* MATRIX */
|
|
short width[MAXCELL];
|
|
short minimum_width[MAXCELL];
|
|
short fixed_width[MAXCELL];
|
|
};
|
|
|
|
struct table_in {
|
|
struct table *ptr;
|
|
short col;
|
|
short row;
|
|
short cell;
|
|
short indent;
|
|
TextLineList *buf;
|
|
};
|
|
|
|
struct table_linfo {
|
|
Lineprop prev_ctype;
|
|
signed char prev_spaces;
|
|
int prevchar;
|
|
short length;
|
|
};
|
|
|
|
struct table {
|
|
int row;
|
|
int col;
|
|
int maxrow;
|
|
int maxcol;
|
|
int max_rowsize;
|
|
int border_mode;
|
|
int total_width;
|
|
int total_height;
|
|
int tabcontentssize;
|
|
int indent;
|
|
int cellspacing;
|
|
int cellpadding;
|
|
int vcellpadding;
|
|
int vspace;
|
|
int flag;
|
|
#ifdef TABLE_EXPAND
|
|
int real_width;
|
|
#endif /* TABLE_EXPAND */
|
|
Str caption;
|
|
#ifdef ID_EXT
|
|
Str id;
|
|
#endif
|
|
GeneralList ***tabdata;
|
|
table_attr **tabattr;
|
|
table_attr trattr;
|
|
#ifdef ID_EXT
|
|
Str **tabidvalue;
|
|
Str *tridvalue;
|
|
#endif
|
|
short tabwidth[MAXCOL];
|
|
short minimum_width[MAXCOL];
|
|
short fixed_width[MAXCOL];
|
|
struct table_cell cell;
|
|
short *tabheight;
|
|
struct table_in *tables;
|
|
short ntable;
|
|
short tables_size;
|
|
TextList *suspended_data;
|
|
/* use for counting skipped spaces */
|
|
struct table_linfo linfo;
|
|
#ifdef MATRIX
|
|
MAT *matrix;
|
|
VEC *vector;
|
|
#endif /* MATRIX */
|
|
int sloppy_width;
|
|
};
|
|
|
|
#define TBLM_PRE 1
|
|
#define TBLM_NOBR 2
|
|
#define TBLM_XMP 4
|
|
#define TBLM_LST 8
|
|
#define TBLM_PLAINTEXT 16
|
|
#define TBLM_PRE_INT 32
|
|
#define TBLM_INTXTA 64
|
|
#define TBLM_INSELECT 128
|
|
#define TBLM_PREMODE (TBLM_PRE|TBLM_INTXTA|TBLM_INSELECT|TBLM_PLAIN)
|
|
#define TBLM_SPECIAL (TBLM_PRE|TBLM_PRE_INT|TBLM_PLAIN)
|
|
#define TBLM_PLAIN (TBLM_PLAINTEXT|TBLM_XMP|TBLM_LST)
|
|
#define TBLM_SCRIPT 256
|
|
#define TBLM_STYLE 512
|
|
#define TBLM_IGNORE (TBLM_SCRIPT|TBLM_STYLE)
|
|
#define TBLM_ANCHOR 1024
|
|
|
|
#define uchar unsigned char
|
|
#define ushort unsigned short
|
|
struct table_mode {
|
|
ushort pre_mode;
|
|
char indent_level;
|
|
char caption;
|
|
short nobr_offset;
|
|
char nobr_level;
|
|
short anchor_offset;
|
|
};
|
|
|
|
/* Local Variables: */
|
|
/* c-basic-offset: 4 */
|
|
/* tab-width: 8 */
|
|
/* End: */
|