/* ** (c) COPYRIGHT CERN 1994. ** Please first read the full copyright statement in the file COPYRIGH. */This interprets the HTML semantics and some HTMLPlus.
This module is implemented by HTML.c, and it is a part of the Library of Common Code.
#ifndef HTML_H #define HTML_H #include "HTFormat.h" #include "HTAnchor.h" #include "HTMLPDTD.h" #define DTD HTMLP_dtd #ifdef SHORT_NAMES #define HTMLPresentation HTMLPren #define HTMLPresent HTMLPres #endif extern CONST HTStructuredClass HTMLPresentation;
extern HTStructured* HTML_new PARAMS((HTRequest * request, void * param, HTFormat input_format, HTFormat output_format, HTStream * output_stream));
extern void HTML_reopen PARAMS((HTStructured * me));
#ifndef pyramid extern HTConverter HTMLToPlain, HTMLToC, HTMLPresent, HTMLToTeX; #endif
typedef enum _HTMLCharacterSet {
HTML_ISO_LATIN1,
HTML_NEXT_CHARS,
HTML_PC_CP950
} HTMLCharacterSet;
extern void HTMLUseCharacterSet PARAMS((HTMLCharacterSet i));
extern int HTLoadError PARAMS(( HTRequest * req, int number, CONST char * message));
/*
In text object \n\n \n tab \n\n\t
-------------- ------------- ----- ----- -------
in Address,
Blockquote,
Normal, <P> <BR> - NORMAL
H1-6: close+open <BR> - HEADING
Glossary <DT> <DT> <DD> <P> GLOSSARY
List,
Menu <LI> <LI> - <P> LIST
Dir <LI> <LI> <LI> DIR
Pre etc \n\n \n \t PRE
*/
typedef enum _white_space_treatment {
WS_NORMAL,
WS_HEADING,
WS_GLOSSARY,
WS_LIST,
WS_DIR,
WS_PRE
} white_space_treatment;
typedef struct _HTNesting {
void * style; /* HTStyle *: Platform dependent */
white_space_treatment wst;
struct _HTNesting * parent;
int element_number;
int item_number; /* only for ordered lists */
int list_level; /* how deep nested */
HTList * children;
BOOL paragraph_break;
int magic;
BOOL object_gens_HTML; /* we don't generate HTML */
} HTNesting;
extern void HTRegenInit NOPARAMS; extern void HTRegenCharacter PARAMS(( char c, HTNesting * nesting, HTStructured * target)); extern void HTNestingChange PARAMS(( HTStructured* s, HTNesting* old, HTNesting * newnest, HTChildAnchor * info, CONST char * aName)); extern HTNesting * HTMLCommonality PARAMS(( HTNesting * s1, HTNesting * s2)); extern HTNesting * HTNestElement PARAMS((HTNesting * p, int ele)); extern /* HTStyle * */ void * HTStyleForNesting PARAMS((HTNesting * n)); extern HTNesting* HTMLAncestor PARAMS((HTNesting * old, int depth)); extern HTNesting* CopyBranch PARAMS((HTNesting * old, HTNesting * newnest, int depth)); extern HTNesting * HTInsertLevel PARAMS((HTNesting * old, int element_number, int level)); extern HTNesting * HTDeleteLevel PARAMS((HTNesting * old, int level)); extern int HTMLElementNumber PARAMS((HTNesting * s)); extern int HTMLLevel PARAMS(( HTNesting * s)); extern HTNesting* HTMLAncestor PARAMS((HTNesting * old, int depth)); #endif /* end HTML_H */end