#ifndef _HTML_H_
# define _HTML_H_
# include "types.h"
# include "file.h"
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
typedef enum
{
MARKUP_FILE = -3, /* File Delimiter */
MARKUP_UNKNOWN = -2, /* Unknown element */
MARKUP_ERROR = -1,
MARKUP_NONE = 0,
MARKUP_COMMENT,
MARKUP_DOCTYPE,
MARKUP_A,
MARKUP_ACRONYM,
MARKUP_ADDRESS,
MARKUP_APPLET,
MARKUP_AREA,
MARKUP_B,
MARKUP_BASE,
MARKUP_BASEFONT,
MARKUP_BIG,
MARKUP_BLINK,
MARKUP_BLOCKQUOTE,
MARKUP_BODY,
MARKUP_BR,
MARKUP_CAPTION,
MARKUP_CENTER,
MARKUP_CITE,
MARKUP_CODE,
MARKUP_COL,
MARKUP_COLGROUP,
MARKUP_DD,
MARKUP_DEL,
MARKUP_DFN,
MARKUP_DIR,
MARKUP_DIV,
MARKUP_DL,
MARKUP_DT,
MARKUP_EM,
MARKUP_EMBED,
MARKUP_FONT,
MARKUP_FORM,
MARKUP_FRAME,
MARKUP_FRAMESET,
MARKUP_H1,
MARKUP_H2,
MARKUP_H3,
MARKUP_H4,
MARKUP_H5,
MARKUP_H6,
MARKUP_H7,
MARKUP_H8,
MARKUP_H9,
MARKUP_H10,
MARKUP_H11,
MARKUP_H12,
MARKUP_H13,
MARKUP_H14,
MARKUP_H15,
MARKUP_HEAD,
MARKUP_HR,
MARKUP_HTML,
MARKUP_I,
MARKUP_IMG,
MARKUP_INPUT,
MARKUP_INS,
MARKUP_ISINDEX,
MARKUP_KBD,
MARKUP_LI,
MARKUP_LINK,
MARKUP_MAP,
MARKUP_MENU,
MARKUP_META,
MARKUP_MULTICOL,
MARKUP_NOBR,
MARKUP_NOFRAMES,
MARKUP_OL,
MARKUP_OPTION,
MARKUP_P,
MARKUP_PRE,
MARKUP_S,
MARKUP_SAMP,
MARKUP_SCRIPT,
MARKUP_SELECT,
MARKUP_SMALL,
MARKUP_SPACER,
MARKUP_SPAN,
MARKUP_STRIKE,
MARKUP_STRONG,
MARKUP_STYLE,
MARKUP_SUB,
MARKUP_SUP,
MARKUP_TABLE,
MARKUP_TBODY,
MARKUP_TD,
MARKUP_TEXTAREA,
MARKUP_TFOOT,
MARKUP_TH,
MARKUP_THEAD,
MARKUP_TITLE,
MARKUP_TR,
MARKUP_TT,
MARKUP_U,
MARKUP_UL,
MARKUP_VAR,
MARKUP_WBR
} markup_t;
typedef struct
{
uchar *name, /* Variable name */
*value; /* Variable value */
} var_t;
typedef struct tree_str
{
struct tree_str *parent, /* Parent tree entry */
*child, /* First child entry */
*last_child, /* Last child entry */
*prev, /* Previous entry on this level */
*next, /* Next entry on this level */
*link; /* Linked-to */
markup_t markup; /* Markup code */
uchar *data; /* Text (MARKUP_NONE or MARKUP_COMMENT) */
unsigned halignment:2, /* Horizontal alignment */
valignment:2, /* Vertical alignment */
typeface:3, /* Typeface code */
size:3, /* Size of text */
style:2, /* Style of text */
underline:1, /* Text is underlined? */
strikethrough:1,/* Text is struck-through? */
subscript:1, /* Text is subscripted? */
superscript:1, /* Text is superscripted? */
preformatted:1, /* Preformatted text? */
indent:4; /* Indentation level 0-15 */
uchar red, /* Color of this fragment */
green,
blue;
float width, /* Width of this fragment in points */
height; /* Height of this fragment in points */
int nvars; /* Number of variables... */
var_t *vars; /* Variables... */
} tree_t;
extern float _htmlPPI;
extern float _htmlBrowserWidth;
extern int _htmlInitialized;
tree_t *htmlReadFile2(tree_t *parent, FILE *fp, const char *base);
tree_t *htmlAddTree(tree_t *parent, markup_t markup, uchar *data);
int htmlDeleteTree(tree_t *parent);
void htmlFixLinks(tree_t *doc, tree_t *tree, uchar *base);
int htmlSetVariable(tree_t *t, uchar *name, uchar *value);
void htmlSetCharSet(const char *cs);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_HTML_H_ */