/* ** (c) COPYRIGHT MIT 1995. ** 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 W3C Reference Library.
#ifndef HTML_H #define HTML_H #include "HTFormat.h" #include "HTAnchor.h" #include "HTMLPDTD.h"
extern void HTML_reopen (HTStructured * me);
extern HTConverter HTMLToPlain, HTMLToC, HTMLPresent;
typedef enum _HTMLCharacterSet {
HTML_ISO_LATIN1,
HTML_NEXT_CHARS,
HTML_PC_CP950
} HTMLCharacterSet;
extern void HTMLUseCharacterSet (HTMLCharacterSet i);
/*
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 (void); extern void HTRegenCharacter ( char c, HTNesting * nesting, HTStructured * target); extern void HTNestingChange ( HTStructured* s, HTNesting* old, HTNesting * newnest, HTChildAnchor * info, CONST char * aName); extern HTNesting * HTMLCommonality ( HTNesting * s1, HTNesting * s2); extern HTNesting * HTNestElement (HTNesting * p, int ele); extern /* HTStyle * */ void * HTStyleForNesting (HTNesting * n); extern HTNesting* HTMLAncestor (HTNesting * old, int depth); extern HTNesting* CopyBranch (HTNesting * old, HTNesting * newnest, int depth); extern HTNesting * HTInsertLevel (HTNesting * old, int element_number, int level); extern HTNesting * HTDeleteLevel (HTNesting * old, int level); extern int HTMLElementNumber (HTNesting * s); extern int HTMLLevel ( HTNesting * s); extern HTNesting* HTMLAncestor (HTNesting * old, int depth); #endif /* end HTML_H */end