/* $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: */