Changed: Remove old libwww elements
--HG-- branch : develop
This commit is contained in:
parent
8f124b3066
commit
fed9a2b0c9
7 changed files with 302 additions and 2438 deletions
|
@ -23,7 +23,6 @@
|
|||
#include "nel/gui/group_tree.h"
|
||||
#include "nel/gui/ctrl_button.h"
|
||||
#include "nel/gui/group_table.h"
|
||||
#include "nel/gui/libwww_types.h"
|
||||
#include "nel/gui/html_element.h"
|
||||
#include "nel/gui/css_style.h"
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#define CL_LIB_WWW_H
|
||||
|
||||
#include "nel/misc/rgba.h"
|
||||
#include "nel/gui/libwww_types.h"
|
||||
|
||||
// forward declaration to avoid curl.h inclusion everywhere
|
||||
typedef void CURL;
|
||||
|
@ -32,251 +31,146 @@ namespace NLGUI
|
|||
class CCtrlScroll;
|
||||
class CGroupList;
|
||||
|
||||
// ***************************************************************************
|
||||
// List of HTML elements. Does not need to be sorted
|
||||
typedef enum _HTMLElement {
|
||||
HTML_HTML,
|
||||
HTML_BODY,
|
||||
// meta
|
||||
HTML_BASE,
|
||||
HTML_HEAD,
|
||||
HTML_LINK,
|
||||
HTML_META,
|
||||
HTML_STYLE,
|
||||
HTML_TITLE,
|
||||
// content sectioning
|
||||
HTML_ADDRESS,
|
||||
HTML_ARTICLE,
|
||||
HTML_ASIDE,
|
||||
HTML_FOOTER,
|
||||
HTML_HEADER,
|
||||
HTML_H1,
|
||||
HTML_H2,
|
||||
HTML_H3,
|
||||
HTML_H4,
|
||||
HTML_H5,
|
||||
HTML_H6,
|
||||
HTML_HGROUP,
|
||||
HTML_MAIN,
|
||||
HTML_NAV,
|
||||
HTML_SECTION,
|
||||
// text content
|
||||
HTML_BLOCKQUOTE,
|
||||
HTML_DD,
|
||||
HTML_DIR,
|
||||
HTML_DIV,
|
||||
HTML_DL,
|
||||
HTML_DT,
|
||||
HTML_FIGCAPTION,
|
||||
HTML_FIGURE,
|
||||
HTML_HR,
|
||||
HTML_LI,
|
||||
HTML_OL,
|
||||
HTML_P,
|
||||
HTML_PRE,
|
||||
HTML_UL,
|
||||
// inline text
|
||||
HTML_A,
|
||||
HTML_ABBR,
|
||||
HTML_B,
|
||||
HTML_BDI,
|
||||
HTML_BDO,
|
||||
HTML_BR,
|
||||
HTML_CITE,
|
||||
HTML_CODE,
|
||||
HTML_DATA,
|
||||
HTML_DFN,
|
||||
HTML_EM,
|
||||
HTML_I,
|
||||
HTML_KBD,
|
||||
HTML_MARK,
|
||||
HTML_Q,
|
||||
HTML_RB,
|
||||
HTML_RP,
|
||||
HTML_RT,
|
||||
HTML_RTC,
|
||||
HTML_RUBY,
|
||||
HTML_S,
|
||||
HTML_SAMP,
|
||||
HTML_SMALL,
|
||||
HTML_SPAN,
|
||||
HTML_STRONG,
|
||||
HTML_SUB,
|
||||
HTML_SUP,
|
||||
HTML_TIME,
|
||||
HTML_TT,
|
||||
HTML_U,
|
||||
HTML_VAR,
|
||||
HTML_WBR,
|
||||
// image, multimedia
|
||||
HTML_AREA,
|
||||
HTML_AUDIO,
|
||||
HTML_IMG,
|
||||
HTML_MAP,
|
||||
HTML_TRACK,
|
||||
HTML_VIDEO,
|
||||
// embedded content
|
||||
HTML_APPLET,
|
||||
HTML_EMBED,
|
||||
HTML_IFRAME,
|
||||
HTML_NOEMBED,
|
||||
HTML_OBJECT,
|
||||
HTML_PARAM,
|
||||
HTML_PICTURE,
|
||||
HTML_SOURCE,
|
||||
// scripting
|
||||
HTML_CANVAS,
|
||||
HTML_NOSCRIPT,
|
||||
HTML_SCRIPT,
|
||||
// demarcating edits
|
||||
HTML_DEL,
|
||||
HTML_INS,
|
||||
// table
|
||||
HTML_CAPTION,
|
||||
HTML_COL,
|
||||
HTML_COLGROUP,
|
||||
HTML_TABLE,
|
||||
HTML_TBODY,
|
||||
HTML_TD,
|
||||
HTML_TFOOT,
|
||||
HTML_TH,
|
||||
HTML_THEAD,
|
||||
HTML_TR,
|
||||
// forms
|
||||
HTML_BUTTON,
|
||||
HTML_DATALIST,
|
||||
HTML_FIELDSET,
|
||||
HTML_FORM,
|
||||
HTML_INPUT,
|
||||
HTML_LABEL,
|
||||
HTML_LEGEND,
|
||||
HTML_METER,
|
||||
HTML_OPTGROUP,
|
||||
HTML_OPTION,
|
||||
HTML_OUTPUT,
|
||||
HTML_PROGRESS,
|
||||
HTML_SELECT,
|
||||
HTML_TEXTAREA,
|
||||
// interactive elements
|
||||
HTML_DETAILS,
|
||||
HTML_DIALOG,
|
||||
HTML_MENU,
|
||||
HTML_MENUITEM,
|
||||
HTML_SUMMARY,
|
||||
// -- tags for ryzom --
|
||||
HTML_FONT,
|
||||
HTML_LUA,
|
||||
// last entry for unknown elements
|
||||
HTML_NB_ELEMENTS
|
||||
} HTMLElement;
|
||||
|
||||
// Legacy function from libwww
|
||||
SGML_dtd * HTML_dtd (void);
|
||||
|
||||
// Init the libwww
|
||||
void initLibWWW();
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
// Some DTD table
|
||||
|
||||
// Here, modify the DTD table to change the HTML parser (add new tags for exemples)
|
||||
|
||||
#undef HTML_ATTR
|
||||
#define HTML_ATTR(t,a) MY_HTML_##t##_##a
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(HTML,DIR) = 0,
|
||||
HTML_ATTR(HTML,LANG),
|
||||
HTML_ATTR(HTML,VERSION),
|
||||
HTML_ATTR(HTML,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(A,ACCESSKEY) = 0,
|
||||
HTML_ATTR(A,CHARSET),
|
||||
HTML_ATTR(A,CLASS),
|
||||
HTML_ATTR(A,COORDS),
|
||||
HTML_ATTR(A,DIR),
|
||||
HTML_ATTR(A,HREF),
|
||||
HTML_ATTR(A,HREFLANG),
|
||||
HTML_ATTR(A,ID),
|
||||
HTML_ATTR(A,NAME),
|
||||
HTML_ATTR(A,REL),
|
||||
HTML_ATTR(A,REV),
|
||||
HTML_ATTR(A,SHAPE),
|
||||
HTML_ATTR(A,STYLE),
|
||||
HTML_ATTR(A,TABINDEX),
|
||||
HTML_ATTR(A,TARGET),
|
||||
HTML_ATTR(A,TYPE),
|
||||
HTML_ATTR(A,TITLE),
|
||||
HTML_ATTR(A,Z_ACTION_CATEGORY),
|
||||
HTML_ATTR(A,Z_ACTION_PARAMS),
|
||||
HTML_ATTR(A,Z_ACTION_SHORTCUT),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(TABLE,ALIGN) = 0,
|
||||
HTML_ATTR(TABLE,BGCOLOR),
|
||||
HTML_ATTR(TABLE,BORDER),
|
||||
HTML_ATTR(TABLE,BORDERCOLOR),
|
||||
HTML_ATTR(TABLE,CELLPADDING),
|
||||
HTML_ATTR(TABLE,CELLSPACING),
|
||||
HTML_ATTR(TABLE,CLASS),
|
||||
HTML_ATTR(TABLE,DIR),
|
||||
HTML_ATTR(TABLE,FRAME),
|
||||
HTML_ATTR(TABLE,ID),
|
||||
HTML_ATTR(TABLE,L_MARGIN),
|
||||
HTML_ATTR(TABLE,LANG),
|
||||
HTML_ATTR(TABLE,NOWRAP),
|
||||
HTML_ATTR(TABLE,RULES),
|
||||
HTML_ATTR(TABLE,SUMMARY),
|
||||
HTML_ATTR(TABLE,STYLE),
|
||||
HTML_ATTR(TABLE,TITLE),
|
||||
HTML_ATTR(TABLE,VALIGN),
|
||||
HTML_ATTR(TABLE,WIDTH)
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(TR,ALIGN) = 0,
|
||||
HTML_ATTR(TR,BGCOLOR),
|
||||
HTML_ATTR(TR,L_MARGIN),
|
||||
HTML_ATTR(TR,NOWRAP),
|
||||
HTML_ATTR(TR,VALIGN),
|
||||
HTML_ATTR(TR,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(TD,ABBR) = 0,
|
||||
HTML_ATTR(TD,ALIGN),
|
||||
HTML_ATTR(TD,AXIS),
|
||||
HTML_ATTR(TD,BGCOLOR),
|
||||
HTML_ATTR(TD,CHAR),
|
||||
HTML_ATTR(TD,CHAROFF),
|
||||
HTML_ATTR(TD,CLASS),
|
||||
HTML_ATTR(TD,COLSPAN),
|
||||
HTML_ATTR(TD,DIR),
|
||||
HTML_ATTR(TD,ID),
|
||||
HTML_ATTR(TD,HEADERS),
|
||||
HTML_ATTR(TD,HEIGHT),
|
||||
HTML_ATTR(TD,L_MARGIN),
|
||||
HTML_ATTR(TD,LANG),
|
||||
HTML_ATTR(TD,NOWRAP),
|
||||
HTML_ATTR(TD,ROWSPAN),
|
||||
HTML_ATTR(TD,SCOPE),
|
||||
HTML_ATTR(TD,STYLE),
|
||||
HTML_ATTR(TD,TITLE),
|
||||
HTML_ATTR(TD,VALIGN),
|
||||
HTML_ATTR(TD,WIDTH),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(IMG,ALIGN) = 0,
|
||||
HTML_ATTR(IMG,ALT),
|
||||
HTML_ATTR(IMG,BORDER),
|
||||
HTML_ATTR(IMG,CLASS),
|
||||
HTML_ATTR(IMG,DIR),
|
||||
HTML_ATTR(IMG,GLOBAL_COLOR),
|
||||
HTML_ATTR(IMG,HEIGHT),
|
||||
HTML_ATTR(IMG,HSPACE),
|
||||
HTML_ATTR(IMG,ID),
|
||||
HTML_ATTR(IMG,ISMAP),
|
||||
HTML_ATTR(IMG,LANG),
|
||||
HTML_ATTR(IMG,LONGDESC),
|
||||
HTML_ATTR(IMG,SRC),
|
||||
HTML_ATTR(IMG,STYLE),
|
||||
HTML_ATTR(IMG,TITLE),
|
||||
HTML_ATTR(IMG,USEMAP),
|
||||
HTML_ATTR(IMG,VSPACE),
|
||||
HTML_ATTR(IMG,WIDTH),
|
||||
// not sorted to keep enum values
|
||||
HTML_ATTR(IMG,DATA_OVER_SRC),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(INPUT,ACCEPT) = 0,
|
||||
HTML_ATTR(INPUT,ACCESSKEY),
|
||||
HTML_ATTR(INPUT,ALIGN),
|
||||
HTML_ATTR(INPUT,ALT),
|
||||
HTML_ATTR(INPUT,CHECKED),
|
||||
HTML_ATTR(INPUT,CLASS),
|
||||
HTML_ATTR(INPUT,DIR),
|
||||
HTML_ATTR(INPUT,DISABLED),
|
||||
HTML_ATTR(INPUT,GLOBAL_COLOR),
|
||||
HTML_ATTR(INPUT,ID),
|
||||
HTML_ATTR(INPUT,LANG),
|
||||
HTML_ATTR(INPUT,MAXLENGTH),
|
||||
HTML_ATTR(INPUT,NAME),
|
||||
HTML_ATTR(INPUT,READONLY),
|
||||
HTML_ATTR(INPUT,SIZE),
|
||||
HTML_ATTR(INPUT,SRC),
|
||||
HTML_ATTR(INPUT,STYLE),
|
||||
HTML_ATTR(INPUT,TABINDEX),
|
||||
HTML_ATTR(INPUT,TITLE),
|
||||
HTML_ATTR(INPUT,TYPE),
|
||||
HTML_ATTR(INPUT,USEMAP),
|
||||
HTML_ATTR(INPUT,VALUE),
|
||||
HTML_ATTR(INPUT,Z_BTN_TMPL),
|
||||
HTML_ATTR(INPUT,Z_INPUT_TMPL),
|
||||
HTML_ATTR(INPUT,Z_INPUT_WIDTH),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(TEXTAREA,CLASS) = 0,
|
||||
HTML_ATTR(TEXTAREA,COLS),
|
||||
HTML_ATTR(TEXTAREA,DIR),
|
||||
HTML_ATTR(TEXTAREA,DISABLED),
|
||||
HTML_ATTR(TEXTAREA,ID),
|
||||
HTML_ATTR(TEXTAREA,LANG),
|
||||
HTML_ATTR(TEXTAREA,MAXLENGTH),
|
||||
HTML_ATTR(TEXTAREA,NAME),
|
||||
HTML_ATTR(TEXTAREA,READONLY),
|
||||
HTML_ATTR(TEXTAREA,ROWS),
|
||||
HTML_ATTR(TEXTAREA,STYLE),
|
||||
HTML_ATTR(TEXTAREA,TABINDEX),
|
||||
HTML_ATTR(TEXTAREA,TITLE),
|
||||
HTML_ATTR(TEXTAREA,Z_INPUT_TMPL),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(P,QUICK_HELP_CONDITION) = 0,
|
||||
HTML_ATTR(P,QUICK_HELP_EVENTS),
|
||||
HTML_ATTR(P,QUICK_HELP_LINK),
|
||||
HTML_ATTR(P,NAME),
|
||||
HTML_ATTR(P,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(DIV,CLASS) = 0,
|
||||
HTML_ATTR(DIV,ID),
|
||||
HTML_ATTR(DIV,NAME),
|
||||
HTML_ATTR(DIV,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(SPAN,CLASS) = 0,
|
||||
HTML_ATTR(SPAN,ID),
|
||||
HTML_ATTR(SPAN,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H1,CLASS) = 0,
|
||||
HTML_ATTR(H1,ID),
|
||||
HTML_ATTR(H1,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H2,CLASS) = 0,
|
||||
HTML_ATTR(H2,ID),
|
||||
HTML_ATTR(H2,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H3,CLASS) = 0,
|
||||
HTML_ATTR(H3,ID),
|
||||
HTML_ATTR(H3,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H4,CLASS) = 0,
|
||||
HTML_ATTR(H4,ID),
|
||||
HTML_ATTR(H4,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H5,CLASS) = 0,
|
||||
HTML_ATTR(H5,ID),
|
||||
HTML_ATTR(H5,STYLE),
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HTML_ATTR(H6,CLASS) = 0,
|
||||
HTML_ATTR(H6,ID),
|
||||
HTML_ATTR(H6,STYLE),
|
||||
};
|
||||
|
||||
#undef HTML_ATTR
|
||||
// case insensitive lookup for HTMLElement enum by name
|
||||
// return HTML_NB_ELEMENTS if no match
|
||||
HTMLElement htmlElementLookup(const char *name);
|
||||
|
||||
// ***************************************************************************
|
||||
// Read HTML color value from src and set dest
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1444,7 +1444,6 @@ namespace NLGUI
|
|||
|
||||
initImageDownload();
|
||||
initBnpDownload();
|
||||
initLibWWW();
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
|
|
@ -59,8 +59,6 @@ namespace NLGUI
|
|||
// recursive function to walk html document
|
||||
void CHtmlParser::parseNode(xmlNode *a_node, CHtmlElement &parent, std::string &styleString, std::vector<std::string> &links) const
|
||||
{
|
||||
SGML_dtd *HTML_DTD = HTML_dtd ();
|
||||
|
||||
uint childIndex = 0;
|
||||
uint element_number;
|
||||
xmlNode *node = a_node;
|
||||
|
@ -73,12 +71,8 @@ namespace NLGUI
|
|||
else
|
||||
if (node->type == XML_ELEMENT_NODE)
|
||||
{
|
||||
// find libwww tag
|
||||
for(element_number = 0; element_number<HTML_ELEMENTS; ++element_number)
|
||||
{
|
||||
if (xmlStrncasecmp(node->name, (const xmlChar *)HTML_DTD->tags[element_number].name.c_str(), xmlStrlen(node->name)) == 0)
|
||||
break;
|
||||
}
|
||||
// find html element
|
||||
element_number = htmlElementLookup((const char*)node->name);
|
||||
|
||||
// get pointer to previous sibling
|
||||
CHtmlElement *prevSibling = NULL;
|
||||
|
|
|
@ -29,6 +29,167 @@ using namespace NLMISC;
|
|||
|
||||
namespace NLGUI
|
||||
{
|
||||
struct CNameToHtmlElement
|
||||
{
|
||||
HTMLElement ID;
|
||||
const char* Name;
|
||||
CNameToHtmlElement(HTMLElement id, const char*name)
|
||||
: ID(id), Name(name) {}
|
||||
};
|
||||
|
||||
// sorted list of HTML_ELEMENT enum to TAG name
|
||||
static CNameToHtmlElement htmlElementToName[] =
|
||||
{
|
||||
CNameToHtmlElement(HTML_A, "a"),
|
||||
CNameToHtmlElement(HTML_ABBR, "abbr"),
|
||||
CNameToHtmlElement(HTML_ADDRESS, "address"),
|
||||
CNameToHtmlElement(HTML_APPLET, "applet"),
|
||||
CNameToHtmlElement(HTML_AREA, "area"),
|
||||
CNameToHtmlElement(HTML_ARTICLE, "article"),
|
||||
CNameToHtmlElement(HTML_ASIDE, "aside"),
|
||||
CNameToHtmlElement(HTML_AUDIO, "audio"),
|
||||
CNameToHtmlElement(HTML_B, "b"),
|
||||
CNameToHtmlElement(HTML_BASE, "base"),
|
||||
CNameToHtmlElement(HTML_BDI, "bdi"),
|
||||
CNameToHtmlElement(HTML_BDO, "bdo"),
|
||||
CNameToHtmlElement(HTML_BLOCKQUOTE, "blockquote"),
|
||||
CNameToHtmlElement(HTML_BODY, "body"),
|
||||
CNameToHtmlElement(HTML_BR, "br"),
|
||||
CNameToHtmlElement(HTML_BUTTON, "button"),
|
||||
CNameToHtmlElement(HTML_CANVAS, "canvas"),
|
||||
CNameToHtmlElement(HTML_CAPTION, "caption"),
|
||||
CNameToHtmlElement(HTML_CITE, "cite"),
|
||||
CNameToHtmlElement(HTML_CODE, "code"),
|
||||
CNameToHtmlElement(HTML_COL, "col"),
|
||||
CNameToHtmlElement(HTML_COLGROUP, "colgroup"),
|
||||
CNameToHtmlElement(HTML_DATA, "data"),
|
||||
CNameToHtmlElement(HTML_DATALIST, "datalist"),
|
||||
CNameToHtmlElement(HTML_DD, "dd"),
|
||||
CNameToHtmlElement(HTML_DEL, "del"),
|
||||
CNameToHtmlElement(HTML_DETAILS, "details"),
|
||||
CNameToHtmlElement(HTML_DFN, "dfn"),
|
||||
CNameToHtmlElement(HTML_DIALOG, "dialog"),
|
||||
CNameToHtmlElement(HTML_DIR, "dir"),
|
||||
CNameToHtmlElement(HTML_DIV, "div"),
|
||||
CNameToHtmlElement(HTML_DL, "dl"),
|
||||
CNameToHtmlElement(HTML_DT, "dt"),
|
||||
CNameToHtmlElement(HTML_EM, "em"),
|
||||
CNameToHtmlElement(HTML_EMBED, "embed"),
|
||||
CNameToHtmlElement(HTML_FIELDSET, "fieldset"),
|
||||
CNameToHtmlElement(HTML_FIGCAPTION, "figcaption"),
|
||||
CNameToHtmlElement(HTML_FIGURE, "figure"),
|
||||
CNameToHtmlElement(HTML_FONT, "font"),
|
||||
CNameToHtmlElement(HTML_FOOTER, "footer"),
|
||||
CNameToHtmlElement(HTML_FORM, "form"),
|
||||
CNameToHtmlElement(HTML_H1, "h1"),
|
||||
CNameToHtmlElement(HTML_H2, "h2"),
|
||||
CNameToHtmlElement(HTML_H3, "h3"),
|
||||
CNameToHtmlElement(HTML_H4, "h4"),
|
||||
CNameToHtmlElement(HTML_H5, "h5"),
|
||||
CNameToHtmlElement(HTML_H6, "h6"),
|
||||
CNameToHtmlElement(HTML_HEAD, "head"),
|
||||
CNameToHtmlElement(HTML_HEADER, "header"),
|
||||
CNameToHtmlElement(HTML_HGROUP, "hgroup"),
|
||||
CNameToHtmlElement(HTML_HR, "hr"),
|
||||
CNameToHtmlElement(HTML_HTML, "html"),
|
||||
CNameToHtmlElement(HTML_I, "i"),
|
||||
CNameToHtmlElement(HTML_IFRAME, "iframe"),
|
||||
CNameToHtmlElement(HTML_IMG, "img"),
|
||||
CNameToHtmlElement(HTML_INPUT, "input"),
|
||||
CNameToHtmlElement(HTML_INS, "ins"),
|
||||
CNameToHtmlElement(HTML_KBD, "kbd"),
|
||||
CNameToHtmlElement(HTML_LABEL, "label"),
|
||||
CNameToHtmlElement(HTML_LEGEND, "legend"),
|
||||
CNameToHtmlElement(HTML_LI, "li"),
|
||||
CNameToHtmlElement(HTML_LINK, "link"),
|
||||
CNameToHtmlElement(HTML_LUA, "lua"),
|
||||
CNameToHtmlElement(HTML_MAIN, "main"),
|
||||
CNameToHtmlElement(HTML_MAP, "map"),
|
||||
CNameToHtmlElement(HTML_MARK, "mark"),
|
||||
CNameToHtmlElement(HTML_MENU, "menu"),
|
||||
CNameToHtmlElement(HTML_MENUITEM, "menuitem"),
|
||||
CNameToHtmlElement(HTML_META, "meta"),
|
||||
CNameToHtmlElement(HTML_METER, "meter"),
|
||||
CNameToHtmlElement(HTML_NAV, "nav"),
|
||||
CNameToHtmlElement(HTML_NOEMBED, "noembed"),
|
||||
CNameToHtmlElement(HTML_NOSCRIPT, "noscript"),
|
||||
CNameToHtmlElement(HTML_OBJECT, "object"),
|
||||
CNameToHtmlElement(HTML_OL, "ol"),
|
||||
CNameToHtmlElement(HTML_OPTGROUP, "optgroup"),
|
||||
CNameToHtmlElement(HTML_OPTION, "option"),
|
||||
CNameToHtmlElement(HTML_OUTPUT, "output"),
|
||||
CNameToHtmlElement(HTML_P, "p"),
|
||||
CNameToHtmlElement(HTML_PARAM, "param"),
|
||||
CNameToHtmlElement(HTML_PICTURE, "picture"),
|
||||
CNameToHtmlElement(HTML_PRE, "pre"),
|
||||
CNameToHtmlElement(HTML_PROGRESS, "progress"),
|
||||
CNameToHtmlElement(HTML_Q, "q"),
|
||||
CNameToHtmlElement(HTML_RB, "rb"),
|
||||
CNameToHtmlElement(HTML_RP, "rp"),
|
||||
CNameToHtmlElement(HTML_RT, "rt"),
|
||||
CNameToHtmlElement(HTML_RTC, "rtc"),
|
||||
CNameToHtmlElement(HTML_RUBY, "ruby"),
|
||||
CNameToHtmlElement(HTML_S, "s"),
|
||||
CNameToHtmlElement(HTML_SAMP, "samp"),
|
||||
CNameToHtmlElement(HTML_SCRIPT, "script"),
|
||||
CNameToHtmlElement(HTML_SECTION, "section"),
|
||||
CNameToHtmlElement(HTML_SELECT, "select"),
|
||||
CNameToHtmlElement(HTML_SMALL, "small"),
|
||||
CNameToHtmlElement(HTML_SOURCE, "source"),
|
||||
CNameToHtmlElement(HTML_SPAN, "span"),
|
||||
CNameToHtmlElement(HTML_STRONG, "strong"),
|
||||
CNameToHtmlElement(HTML_STYLE, "style"),
|
||||
CNameToHtmlElement(HTML_SUB, "sub"),
|
||||
CNameToHtmlElement(HTML_SUMMARY, "summary"),
|
||||
CNameToHtmlElement(HTML_SUP, "sup"),
|
||||
CNameToHtmlElement(HTML_TABLE, "table"),
|
||||
CNameToHtmlElement(HTML_TBODY, "tbody"),
|
||||
CNameToHtmlElement(HTML_TD, "td"),
|
||||
CNameToHtmlElement(HTML_TEXTAREA, "textarea"),
|
||||
CNameToHtmlElement(HTML_TFOOT, "tfoot"),
|
||||
CNameToHtmlElement(HTML_TH, "th"),
|
||||
CNameToHtmlElement(HTML_THEAD, "thead"),
|
||||
CNameToHtmlElement(HTML_TIME, "time"),
|
||||
CNameToHtmlElement(HTML_TITLE, "title"),
|
||||
CNameToHtmlElement(HTML_TR, "tr"),
|
||||
CNameToHtmlElement(HTML_TRACK, "track"),
|
||||
CNameToHtmlElement(HTML_TT, "tt"),
|
||||
CNameToHtmlElement(HTML_U, "u"),
|
||||
CNameToHtmlElement(HTML_UL, "ul"),
|
||||
CNameToHtmlElement(HTML_VAR, "var"),
|
||||
CNameToHtmlElement(HTML_VIDEO, "video"),
|
||||
CNameToHtmlElement(HTML_WBR, "wbr")
|
||||
};
|
||||
|
||||
HTMLElement htmlElementLookup(const char* name)
|
||||
{
|
||||
uint end = sizeofarray(htmlElementToName);
|
||||
uint mid = end >> 1;
|
||||
sint ret;
|
||||
while(mid < end)
|
||||
{
|
||||
sint ret = nlstricmp(name, htmlElementToName[mid].Name);
|
||||
if (ret == 0)
|
||||
{
|
||||
return htmlElementToName[mid].ID;
|
||||
}
|
||||
else if (ret < 0)
|
||||
{
|
||||
// lower half
|
||||
end = mid;
|
||||
mid = end >> 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// upper half
|
||||
mid++;
|
||||
mid += (end - mid) >> 1;
|
||||
}
|
||||
}
|
||||
|
||||
// not found
|
||||
return HTML_NB_ELEMENTS;
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
|
@ -40,258 +201,6 @@ namespace NLGUI
|
|||
|
||||
// ***************************************************************************
|
||||
|
||||
// Some DTD table
|
||||
|
||||
// Here, modify the DTD table to change the HTML parser (add new tags for examples)
|
||||
|
||||
#undef HTML_ATTR
|
||||
#define HTML_ATTR(a,b) { (char*) #b }
|
||||
|
||||
HTAttr html_attr[] =
|
||||
{
|
||||
HTML_ATTR(HTML,DIR),
|
||||
HTML_ATTR(HTML,LANG),
|
||||
HTML_ATTR(HTML,VERSION),
|
||||
HTML_ATTR(HTML,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr a_attr[] =
|
||||
{
|
||||
HTML_ATTR(A,ACCESSKEY),
|
||||
HTML_ATTR(A,CHARSET),
|
||||
HTML_ATTR(A,CLASS),
|
||||
HTML_ATTR(A,COORDS),
|
||||
HTML_ATTR(A,DIR),
|
||||
HTML_ATTR(A,HREF),
|
||||
HTML_ATTR(A,HREFLANG),
|
||||
HTML_ATTR(A,ID),
|
||||
HTML_ATTR(A,NAME),
|
||||
HTML_ATTR(A,REL),
|
||||
HTML_ATTR(A,REV),
|
||||
HTML_ATTR(A,SHAPE),
|
||||
HTML_ATTR(A,STYLE),
|
||||
HTML_ATTR(A,TABINDEX),
|
||||
HTML_ATTR(A,TARGET),
|
||||
HTML_ATTR(A,TYPE),
|
||||
HTML_ATTR(A,TITLE),
|
||||
HTML_ATTR(A,Z_ACTION_CATEGORY),
|
||||
HTML_ATTR(A,Z_ACTION_PARAMS),
|
||||
HTML_ATTR(A,Z_ACTION_SHORTCUT),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr table_attr[] =
|
||||
{
|
||||
HTML_ATTR(TABLE,ALIGN),
|
||||
HTML_ATTR(TABLE,BGCOLOR),
|
||||
HTML_ATTR(TABLE,BORDER),
|
||||
HTML_ATTR(TABLE,BORDERCOLOR),
|
||||
HTML_ATTR(TABLE,CELLPADDING),
|
||||
HTML_ATTR(TABLE,CELLSPACING),
|
||||
HTML_ATTR(TABLE,CLASS),
|
||||
HTML_ATTR(TABLE,DIR),
|
||||
HTML_ATTR(TABLE,FRAME),
|
||||
HTML_ATTR(TABLE,ID),
|
||||
HTML_ATTR(TABLE,L_MARGIN),
|
||||
HTML_ATTR(TABLE,LANG),
|
||||
HTML_ATTR(TABLE,NOWRAP),
|
||||
HTML_ATTR(TABLE,RULES),
|
||||
HTML_ATTR(TABLE,SUMMARY),
|
||||
HTML_ATTR(TABLE,STYLE),
|
||||
HTML_ATTR(TABLE,TITLE),
|
||||
HTML_ATTR(TABLE,VALIGN),
|
||||
HTML_ATTR(TABLE,WIDTH),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr tr_attr[] =
|
||||
{
|
||||
HTML_ATTR(TR,ALIGN),
|
||||
HTML_ATTR(TR,BGCOLOR),
|
||||
HTML_ATTR(TR,L_MARGIN),
|
||||
HTML_ATTR(TR,NOWRAP),
|
||||
HTML_ATTR(TR,VALIGN),
|
||||
HTML_ATTR(TR,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr td_attr[] =
|
||||
{
|
||||
HTML_ATTR(TD,ABBR),
|
||||
HTML_ATTR(TD,ALIGN),
|
||||
HTML_ATTR(TD,AXIS),
|
||||
HTML_ATTR(TD,BGCOLOR),
|
||||
HTML_ATTR(TD,CHAR),
|
||||
HTML_ATTR(TD,CHAROFF),
|
||||
HTML_ATTR(TD,CLASS),
|
||||
HTML_ATTR(TD,COLSPAN),
|
||||
HTML_ATTR(TD,DIR),
|
||||
HTML_ATTR(TD,ID),
|
||||
HTML_ATTR(TD,HEADERS),
|
||||
HTML_ATTR(TD,HEIGHT),
|
||||
HTML_ATTR(TD,L_MARGIN),
|
||||
HTML_ATTR(TD,LANG),
|
||||
HTML_ATTR(TD,NOWRAP),
|
||||
HTML_ATTR(TD,ROWSPAN),
|
||||
HTML_ATTR(TD,SCOPE),
|
||||
HTML_ATTR(TD,STYLE),
|
||||
HTML_ATTR(TD,TITLE),
|
||||
HTML_ATTR(TD,VALIGN),
|
||||
HTML_ATTR(TD,WIDTH),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr img_attr[] =
|
||||
{
|
||||
HTML_ATTR(IMG,ALIGN),
|
||||
HTML_ATTR(IMG,ALT),
|
||||
HTML_ATTR(IMG,BORDER),
|
||||
HTML_ATTR(IMG,CLASS),
|
||||
HTML_ATTR(IMG,DIR),
|
||||
HTML_ATTR(IMG,GLOBAL_COLOR),
|
||||
HTML_ATTR(IMG,HEIGHT),
|
||||
HTML_ATTR(IMG,HSPACE),
|
||||
HTML_ATTR(IMG,ID),
|
||||
HTML_ATTR(IMG,ISMAP),
|
||||
HTML_ATTR(IMG,LANG),
|
||||
HTML_ATTR(IMG,LONGDESC),
|
||||
HTML_ATTR(IMG,SRC),
|
||||
HTML_ATTR(IMG,STYLE),
|
||||
HTML_ATTR(IMG,TITLE),
|
||||
HTML_ATTR(IMG,USEMAP),
|
||||
HTML_ATTR(IMG,VSPACE),
|
||||
HTML_ATTR(IMG,WIDTH),
|
||||
// not sorted to keep enum values
|
||||
HTML_ATTR(IMG,DATA-OVER-SRC),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr input_attr[] =
|
||||
{
|
||||
HTML_ATTR(INPUT,ACCEPT),
|
||||
HTML_ATTR(INPUT,ACCESSKEY),
|
||||
HTML_ATTR(INPUT,ALIGN),
|
||||
HTML_ATTR(INPUT,ALT),
|
||||
HTML_ATTR(INPUT,CHECKED),
|
||||
HTML_ATTR(INPUT,CLASS),
|
||||
HTML_ATTR(INPUT,DIR),
|
||||
HTML_ATTR(INPUT,DISABLED),
|
||||
HTML_ATTR(INPUT,GLOBAL_COLOR),
|
||||
HTML_ATTR(INPUT,ID),
|
||||
HTML_ATTR(INPUT,LANG),
|
||||
HTML_ATTR(INPUT,MAXLENGTH),
|
||||
HTML_ATTR(INPUT,NAME),
|
||||
HTML_ATTR(INPUT,READONLY),
|
||||
HTML_ATTR(INPUT,SIZE),
|
||||
HTML_ATTR(INPUT,SRC),
|
||||
HTML_ATTR(INPUT,STYLE),
|
||||
HTML_ATTR(INPUT,TABINDEX),
|
||||
HTML_ATTR(INPUT,TITLE),
|
||||
HTML_ATTR(INPUT,TYPE),
|
||||
HTML_ATTR(INPUT,USEMAP),
|
||||
HTML_ATTR(INPUT,VALUE),
|
||||
HTML_ATTR(INPUT,Z_BTN_TMPL),
|
||||
HTML_ATTR(INPUT,Z_INPUT_TMPL),
|
||||
HTML_ATTR(INPUT,Z_INPUT_WIDTH),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr textarea_attr[] =
|
||||
{
|
||||
HTML_ATTR(TEXTAREA,CLASS),
|
||||
HTML_ATTR(TEXTAREA,COLS),
|
||||
HTML_ATTR(TEXTAREA,DIR),
|
||||
HTML_ATTR(TEXTAREA,DISABLED),
|
||||
HTML_ATTR(TEXTAREA,ID),
|
||||
HTML_ATTR(TEXTAREA,LANG),
|
||||
HTML_ATTR(TEXTAREA,MAXLENGTH),
|
||||
HTML_ATTR(TEXTAREA,NAME),
|
||||
HTML_ATTR(TEXTAREA,READONLY),
|
||||
HTML_ATTR(TEXTAREA,ROWS),
|
||||
HTML_ATTR(TEXTAREA,STYLE),
|
||||
HTML_ATTR(TEXTAREA,TABINDEX),
|
||||
HTML_ATTR(TEXTAREA,TITLE),
|
||||
HTML_ATTR(TEXTAREA,Z_INPUT_TMPL),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr p_attr[] =
|
||||
{
|
||||
HTML_ATTR(P,QUICK_HELP_CONDITION),
|
||||
HTML_ATTR(P,QUICK_HELP_EVENTS),
|
||||
HTML_ATTR(P,QUICK_HELP_LINK),
|
||||
HTML_ATTR(P,NAME),
|
||||
HTML_ATTR(P,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
|
||||
HTAttr div_attr[] =
|
||||
{
|
||||
HTML_ATTR(DIV,CLASS),
|
||||
HTML_ATTR(DIV,ID),
|
||||
HTML_ATTR(DIV,NAME),
|
||||
HTML_ATTR(DIV,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr span_attr[] =
|
||||
{
|
||||
HTML_ATTR(SPAN,CLASS),
|
||||
HTML_ATTR(SPAN,ID),
|
||||
HTML_ATTR(SPAN,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h1_attr[] =
|
||||
{
|
||||
HTML_ATTR(H1,CLASS),
|
||||
HTML_ATTR(H1,ID),
|
||||
HTML_ATTR(H1,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h2_attr[] =
|
||||
{
|
||||
HTML_ATTR(H2,CLASS),
|
||||
HTML_ATTR(H2,ID),
|
||||
HTML_ATTR(H2,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h3_attr[] =
|
||||
{
|
||||
HTML_ATTR(H3,CLASS),
|
||||
HTML_ATTR(H3,ID),
|
||||
HTML_ATTR(H3,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h4_attr[] =
|
||||
{
|
||||
HTML_ATTR(H4,CLASS),
|
||||
HTML_ATTR(H4,ID),
|
||||
HTML_ATTR(H4,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h5_attr[] =
|
||||
{
|
||||
HTML_ATTR(H5,CLASS),
|
||||
HTML_ATTR(H5,ID),
|
||||
HTML_ATTR(H5,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
HTAttr h6_attr[] =
|
||||
{
|
||||
HTML_ATTR(H6,CLASS),
|
||||
HTML_ATTR(H6,ID),
|
||||
HTML_ATTR(H6,STYLE),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
// ***************************************************************************
|
||||
bool getCssLength (float &value, std::string &unit, const std::string &str)
|
||||
{
|
||||
|
@ -873,58 +782,6 @@ namespace NLGUI
|
|||
}
|
||||
}
|
||||
|
||||
void initLibWWW()
|
||||
{
|
||||
static bool initialized = false;
|
||||
if (!initialized)
|
||||
{
|
||||
|
||||
// Change the HTML DTD
|
||||
SGML_dtd *HTML_DTD = HTML_dtd ();
|
||||
HTML_DTD->tags[HTML_HTML].attributes = html_attr;
|
||||
HTML_DTD->tags[HTML_HTML].number_of_attributes = sizeof(html_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_TABLE].attributes = table_attr;
|
||||
HTML_DTD->tags[HTML_TABLE].number_of_attributes = sizeof(table_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_TR].attributes = tr_attr;
|
||||
HTML_DTD->tags[HTML_TR].number_of_attributes = sizeof(tr_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_TD].attributes = td_attr;
|
||||
HTML_DTD->tags[HTML_TD].number_of_attributes = sizeof(td_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_TH].attributes = td_attr;
|
||||
HTML_DTD->tags[HTML_TH].number_of_attributes = sizeof(td_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_IMG].attributes = img_attr;
|
||||
HTML_DTD->tags[HTML_IMG].number_of_attributes = sizeof(img_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_INPUT].attributes = input_attr;
|
||||
HTML_DTD->tags[HTML_INPUT].number_of_attributes = sizeof(input_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_TEXTAREA].attributes = textarea_attr;
|
||||
HTML_DTD->tags[HTML_TEXTAREA].number_of_attributes = sizeof(textarea_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_P].attributes = p_attr;
|
||||
HTML_DTD->tags[HTML_P].number_of_attributes = sizeof(p_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_A].attributes = a_attr;
|
||||
HTML_DTD->tags[HTML_A].number_of_attributes = sizeof(a_attr) / sizeof(HTAttr) - 1;
|
||||
//HTML_DTD->tags[HTML_I].attributes = a_attr;
|
||||
HTML_DTD->tags[HTML_I].number_of_attributes = 0;
|
||||
HTML_DTD->tags[HTML_DIV].attributes = div_attr;
|
||||
HTML_DTD->tags[HTML_DIV].number_of_attributes = sizeof(div_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_SPAN].attributes = span_attr;
|
||||
HTML_DTD->tags[HTML_SPAN].number_of_attributes = sizeof(span_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H1].attributes = h1_attr;
|
||||
HTML_DTD->tags[HTML_H1].number_of_attributes = sizeof(h1_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H2].attributes = h2_attr;
|
||||
HTML_DTD->tags[HTML_H2].number_of_attributes = sizeof(h2_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H3].attributes = h3_attr;
|
||||
HTML_DTD->tags[HTML_H3].number_of_attributes = sizeof(h3_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H4].attributes = h4_attr;
|
||||
HTML_DTD->tags[HTML_H4].number_of_attributes = sizeof(h4_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H5].attributes = h5_attr;
|
||||
HTML_DTD->tags[HTML_H5].number_of_attributes = sizeof(h5_attr) / sizeof(HTAttr) - 1;
|
||||
HTML_DTD->tags[HTML_H6].attributes = h6_attr;
|
||||
HTML_DTD->tags[HTML_H6].number_of_attributes = sizeof(h6_attr) / sizeof(HTAttr) - 1;
|
||||
|
||||
// Initialized
|
||||
initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
}
|
||||
|
||||
|
|
|
@ -1,804 +0,0 @@
|
|||
/**
|
||||
libwww Copyright Notice
|
||||
[This notice should be placed within redistributed or derivative software
|
||||
code when appropriate. This particular formulation of W3C's notice for
|
||||
inclusion in libwww code became active on August 14 1998.]
|
||||
|
||||
LIBWWW COPYRIGHT NOTICE
|
||||
|
||||
libwww: W3C's implementation of HTTP can be found at:
|
||||
http://www.w3.org/Library/
|
||||
|
||||
Copyright ¨ 1995-2002 World Wide Web Consortium,
|
||||
(Massachusetts Institute of Technology, Institut
|
||||
National de Recherche en Informatique et en
|
||||
Automatique, Keio University). All Rights Reserved.
|
||||
This program is distributed under the W3C's
|
||||
Intellectual Property License. This program is
|
||||
distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied
|
||||
warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. See W3C License
|
||||
http://www.w3.org/Consortium/Legal/ for more details.
|
||||
|
||||
Copyright ¨ 1995 CERN. "This product includes computer
|
||||
software created and made available by CERN. This
|
||||
acknowledgment shall be mentioned in full in any
|
||||
product which includes the CERN computer software
|
||||
included herein or parts thereof."
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "nel/gui/libwww_types.h"
|
||||
|
||||
#ifdef DEBUG_NEW
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
|
||||
/*
|
||||
** ATTRIBUTE DEFINITION MACROS (see HTMLPDTD.h)
|
||||
*/
|
||||
|
||||
/*
|
||||
* redefine the macros, so that the "stringized" attribute name
|
||||
* is generated
|
||||
*/
|
||||
|
||||
#undef HTML_ATTR
|
||||
#define HTML_ATTR(t,a) { (char *) #a }
|
||||
#undef HTML_ATTRIBUTES
|
||||
#define HTML_ATTRIBUTES(t) { 0 }
|
||||
|
||||
/*
|
||||
** ATTRIBUTE LISTS
|
||||
*/
|
||||
|
||||
static HTAttr no_attr[1] = {
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static HTAttr body_attr[HTML_BODY_ATTRIBUTES+1] = { /* to catch images */
|
||||
HTML_ATTR(BODY,ALINK),
|
||||
HTML_ATTR(BODY,BACKGROUND),
|
||||
HTML_ATTR(BODY,BGCOLOR),
|
||||
HTML_ATTR(BODY,CLASS),
|
||||
HTML_ATTR(BODY,DIR),
|
||||
HTML_ATTR(BODY,ID),
|
||||
HTML_ATTR(BODY,LANG),
|
||||
HTML_ATTR(BODY,LINK),
|
||||
HTML_ATTR(BODY,STYLE),
|
||||
HTML_ATTR(BODY,TEXT),
|
||||
HTML_ATTR(BODY,TITLE),
|
||||
HTML_ATTR(BODY,VLINK),
|
||||
HTML_ATTRIBUTES(BODY)
|
||||
};
|
||||
|
||||
static HTAttr frame_attr[HTML_FRAME_ATTRIBUTES+1] = { /* frame attributes */
|
||||
HTML_ATTR(FRAME,CLASS),
|
||||
HTML_ATTR(FRAME,FRAMEBORDER),
|
||||
HTML_ATTR(FRAME,ID),
|
||||
HTML_ATTR(FRAME,NAME),
|
||||
HTML_ATTR(FRAME,MARGINHEIGHT),
|
||||
HTML_ATTR(FRAME,MARGINWIDTH),
|
||||
HTML_ATTR(FRAME,NORESIZE),
|
||||
HTML_ATTR(FRAME,LONGDESC),
|
||||
HTML_ATTR(FRAME,SCROLLING),
|
||||
HTML_ATTR(FRAME,SRC),
|
||||
HTML_ATTR(FRAME,STYLE),
|
||||
HTML_ATTR(FRAME,TARGET),
|
||||
HTML_ATTR(FRAME,TITLE),
|
||||
HTML_ATTRIBUTES(FRAME)
|
||||
};
|
||||
|
||||
static HTAttr frameset_attr[HTML_FRAMESET_ATTRIBUTES+1] = { /* frameset attributes */
|
||||
HTML_ATTR(FRAMESET,CLASS),
|
||||
HTML_ATTR(FRAMESET,COLS),
|
||||
HTML_ATTR(FRAMESET,ID),
|
||||
HTML_ATTR(FRAMESET,ROWS),
|
||||
HTML_ATTR(FRAMESET,STYLE),
|
||||
HTML_ATTR(FRAMESET,TITLE),
|
||||
HTML_ATTRIBUTES(FRAMESET)
|
||||
};
|
||||
|
||||
static HTAttr a_attr[HTML_A_ATTRIBUTES+1] = { /* Anchor attributes */
|
||||
HTML_ATTR(A,ACCESSKEY),
|
||||
HTML_ATTR(A,CHARSET),
|
||||
HTML_ATTR(A,CLASS),
|
||||
HTML_ATTR(A,COORDS),
|
||||
HTML_ATTR(A,DIR),
|
||||
HTML_ATTR(A,HREF),
|
||||
HTML_ATTR(A,HREFLANG),
|
||||
HTML_ATTR(A,ID),
|
||||
HTML_ATTR(A,NAME),
|
||||
HTML_ATTR(A,REL),
|
||||
HTML_ATTR(A,REV),
|
||||
HTML_ATTR(A,SHAPE),
|
||||
HTML_ATTR(A,STYLE),
|
||||
HTML_ATTR(A,TABINDEX),
|
||||
HTML_ATTR(A,TARGET),
|
||||
HTML_ATTR(A,TYPE),
|
||||
HTML_ATTR(A,TITLE),
|
||||
HTML_ATTRIBUTES(A)
|
||||
};
|
||||
|
||||
static HTAttr applet_attr[HTML_APPLET_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(APPLET,ALIGN),
|
||||
HTML_ATTR(APPLET,ALT),
|
||||
HTML_ATTR(APPLET,ARCHIVE),
|
||||
HTML_ATTR(APPLET,CLASS),
|
||||
HTML_ATTR(APPLET,CODE),
|
||||
HTML_ATTR(APPLET,CODEBASE),
|
||||
HTML_ATTR(APPLET,HEIGHT),
|
||||
HTML_ATTR(APPLET,HSPACE),
|
||||
HTML_ATTR(APPLET,ID),
|
||||
HTML_ATTR(APPLET,NAME),
|
||||
HTML_ATTR(APPLET,OBJECT),
|
||||
HTML_ATTR(APPLET,STYLE),
|
||||
HTML_ATTR(APPLET,TITLE),
|
||||
HTML_ATTR(APPLET,VSPACE),
|
||||
HTML_ATTR(APPLET,WIDTH),
|
||||
HTML_ATTRIBUTES(APPLET)
|
||||
};
|
||||
|
||||
static HTAttr area_attr[HTML_AREA_ATTRIBUTES+1] = { /* Area attributes */
|
||||
HTML_ATTR(AREA,ACCESSKEY),
|
||||
HTML_ATTR(AREA,ALT),
|
||||
HTML_ATTR(AREA,CLASS),
|
||||
HTML_ATTR(AREA,COORDS),
|
||||
HTML_ATTR(AREA,DIR),
|
||||
HTML_ATTR(AREA,HREF),
|
||||
HTML_ATTR(AREA,ID),
|
||||
HTML_ATTR(AREA,NAME),
|
||||
HTML_ATTR(AREA,NOHREF),
|
||||
HTML_ATTR(AREA,LANG),
|
||||
HTML_ATTR(AREA,SHAPE),
|
||||
HTML_ATTR(AREA,STYLE),
|
||||
HTML_ATTR(AREA,TABINDEX),
|
||||
HTML_ATTR(AREA,TARGET),
|
||||
HTML_ATTR(AREA,TITLE),
|
||||
HTML_ATTRIBUTES(AREA)
|
||||
};
|
||||
|
||||
static HTAttr base_attr[HTML_BASE_ATTRIBUTES+1] = { /* BASE attributes */
|
||||
HTML_ATTR(BASE,HREF),
|
||||
HTML_ATTR(BASE,TARGET),
|
||||
HTML_ATTRIBUTES(BASE)
|
||||
};
|
||||
|
||||
static HTAttr bdo_attr[HTML_BDO_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(BDO,CLASS),
|
||||
HTML_ATTR(BDO,DIR),
|
||||
HTML_ATTR(BDO,ID),
|
||||
HTML_ATTR(BDO,LANG),
|
||||
HTML_ATTR(BDO,STYLE),
|
||||
HTML_ATTR(BDO,TITLE),
|
||||
HTML_ATTRIBUTES(BDO)
|
||||
};
|
||||
|
||||
static HTAttr bq_attr[HTML_BQ_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(BQ,CITE),
|
||||
HTML_ATTR(BQ,CLASS),
|
||||
HTML_ATTR(BQ,DIR),
|
||||
HTML_ATTR(BQ,ID),
|
||||
HTML_ATTR(BQ,LANG),
|
||||
HTML_ATTR(BQ,STYLE),
|
||||
HTML_ATTR(BQ,TITLE),
|
||||
HTML_ATTRIBUTES(BQ)
|
||||
};
|
||||
|
||||
static HTAttr br_attr[HTML_BR_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(BR,CLASS),
|
||||
HTML_ATTR(BR,CLEAR),
|
||||
HTML_ATTR(BR,ID),
|
||||
HTML_ATTR(BR,STYLE),
|
||||
HTML_ATTR(BR,TITLE),
|
||||
HTML_ATTRIBUTES(BR)
|
||||
};
|
||||
|
||||
static HTAttr button_attr[HTML_BUTTON_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(BUTTON,ACCESSKEY),
|
||||
HTML_ATTR(BUTTON,CLASS),
|
||||
HTML_ATTR(BUTTON,DIR),
|
||||
HTML_ATTR(BUTTON,DISABLED),
|
||||
HTML_ATTR(BUTTON,ID),
|
||||
HTML_ATTR(BUTTON,LANG),
|
||||
HTML_ATTR(BUTTON,NAME),
|
||||
HTML_ATTR(BUTTON,STYLE),
|
||||
HTML_ATTR(BUTTON,TABINDEX),
|
||||
HTML_ATTR(BUTTON,TITLE),
|
||||
HTML_ATTR(BUTTON,TYPE),
|
||||
HTML_ATTR(BUTTON,VALUE),
|
||||
HTML_ATTRIBUTES(BUTTON),
|
||||
};
|
||||
|
||||
static HTAttr col_attr[HTML_COL_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(COL,CLASS),
|
||||
HTML_ATTR(COL,DIR),
|
||||
HTML_ATTR(COL,ID),
|
||||
HTML_ATTR(COL,LANG),
|
||||
HTML_ATTR(COL,SPAN),
|
||||
HTML_ATTR(COL,STYLE),
|
||||
HTML_ATTR(COL,TITLE),
|
||||
HTML_ATTR(COL,WIDTH),
|
||||
HTML_ATTRIBUTES(COL)
|
||||
};
|
||||
|
||||
static HTAttr changes_attr[HTML_CHANGES_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(CHANGES,CITE),
|
||||
HTML_ATTR(CHANGES,CLASS),
|
||||
HTML_ATTR(CHANGES,DATETIME),
|
||||
HTML_ATTR(CHANGES,DIR),
|
||||
HTML_ATTR(CHANGES,ID),
|
||||
HTML_ATTR(CHANGES,LANG),
|
||||
HTML_ATTR(CHANGES,STYLE),
|
||||
HTML_ATTR(CHANGES,TITLE),
|
||||
HTML_ATTRIBUTES(CHANGES)
|
||||
};
|
||||
|
||||
static HTAttr font_attr[HTML_FONT_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(FONT,CLASS),
|
||||
HTML_ATTR(FONT,COLOR),
|
||||
HTML_ATTR(FONT,DIR),
|
||||
HTML_ATTR(FONT,FACE),
|
||||
HTML_ATTR(FONT,ID),
|
||||
HTML_ATTR(FONT,LANG),
|
||||
HTML_ATTR(FONT,SIZE),
|
||||
HTML_ATTR(FONT,STYLE),
|
||||
HTML_ATTR(FONT,TITLE),
|
||||
HTML_ATTRIBUTES(FONT)
|
||||
};
|
||||
|
||||
static HTAttr form_attr[HTML_FORM_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(FORM,ACCEPT),
|
||||
{ (char *) "ACCEPT-CHARSET" }, /* HTML_ATTR(FORM,ACCEPT_CHARSET) */
|
||||
HTML_ATTR(FORM,ACTION),
|
||||
HTML_ATTR(FORM,CLASS),
|
||||
HTML_ATTR(FORM,DIR),
|
||||
HTML_ATTR(FORM,ENCTYPE),
|
||||
HTML_ATTR(FORM,ID),
|
||||
HTML_ATTR(FORM,LANG),
|
||||
HTML_ATTR(FORM,METHOD),
|
||||
HTML_ATTR(FORM,STYLE),
|
||||
HTML_ATTR(FORM,TARGET),
|
||||
HTML_ATTR(FORM,TITLE),
|
||||
HTML_ATTRIBUTES(FORM)
|
||||
};
|
||||
|
||||
static HTAttr gen_attr[HTML_GEN_ATTRIBUTES+1] = { /* General, for many things */
|
||||
HTML_ATTR(GEN,CLASS),
|
||||
HTML_ATTR(GEN,DIR),
|
||||
HTML_ATTR(GEN,ID),
|
||||
HTML_ATTR(GEN,LANG),
|
||||
HTML_ATTR(GEN,STYLE),
|
||||
HTML_ATTR(GEN,TITLE),
|
||||
HTML_ATTRIBUTES(GEN)
|
||||
};
|
||||
|
||||
static HTAttr block_attr[HTML_BLOCK_ATTRIBUTES+1] = { /* DIV, SPAN, H1-H6 */
|
||||
HTML_ATTR(BLOCK,ALIGN),
|
||||
HTML_ATTR(BLOCK,CLASS),
|
||||
HTML_ATTR(BLOCK,DIR),
|
||||
HTML_ATTR(BLOCK,ID),
|
||||
HTML_ATTR(BLOCK,LANG),
|
||||
HTML_ATTR(BLOCK,STYLE),
|
||||
HTML_ATTR(BLOCK,TITLE),
|
||||
HTML_ATTRIBUTES(BLOCK)
|
||||
};
|
||||
|
||||
static HTAttr head_attr[HTML_HEAD_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(HEAD,DIR),
|
||||
HTML_ATTR(HEAD,LANG),
|
||||
HTML_ATTR(HEAD,PROFILE),
|
||||
HTML_ATTRIBUTES(HEAD)
|
||||
};
|
||||
|
||||
static HTAttr hr_attr[HTML_HR_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(HR,ALIGN),
|
||||
HTML_ATTR(HR,CLASS),
|
||||
HTML_ATTR(HR,DIR),
|
||||
HTML_ATTR(HR,ID),
|
||||
HTML_ATTR(HR,LANG),
|
||||
HTML_ATTR(HR,NOSHADE),
|
||||
HTML_ATTR(HR,SIZE),
|
||||
HTML_ATTR(HR,STYLE),
|
||||
HTML_ATTR(HR,TITLE),
|
||||
HTML_ATTR(HR,WIDTH),
|
||||
HTML_ATTRIBUTES(HR)
|
||||
};
|
||||
|
||||
static HTAttr html_attr[HTML_HTML_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(HTML,DIR),
|
||||
HTML_ATTR(HTML,LANG),
|
||||
HTML_ATTR(HTML,VERSION),
|
||||
HTML_ATTRIBUTES(HTML)
|
||||
};
|
||||
|
||||
static HTAttr iframe_attr[HTML_IFRAME_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(IFRAME,ALIGN),
|
||||
HTML_ATTR(IFRAME,CLASS),
|
||||
HTML_ATTR(IFRAME,FRAMEBORDER),
|
||||
HTML_ATTR(IFRAME,HEIGHT),
|
||||
HTML_ATTR(IFRAME,ID),
|
||||
HTML_ATTR(IFRAME,LONGDESC),
|
||||
HTML_ATTR(IFRAME,MARGINHEIGHT),
|
||||
HTML_ATTR(IFRAME,MARGINWIDTH),
|
||||
HTML_ATTR(IFRAME,NAME),
|
||||
HTML_ATTR(IFRAME,SCROLLING),
|
||||
HTML_ATTR(IFRAME,SRC),
|
||||
HTML_ATTR(IFRAME,STYLE),
|
||||
HTML_ATTR(IFRAME,TARGET),
|
||||
HTML_ATTR(IFRAME,TITLE),
|
||||
HTML_ATTR(IFRAME,WIDTH),
|
||||
HTML_ATTRIBUTES(IFRAME)
|
||||
};
|
||||
|
||||
static HTAttr img_attr[HTML_IMG_ATTRIBUTES+1] = { /* IMG attributes */
|
||||
HTML_ATTR(IMG,ALIGN),
|
||||
HTML_ATTR(IMG,ALT),
|
||||
HTML_ATTR(IMG,BORDER),
|
||||
HTML_ATTR(IMG,CLASS),
|
||||
HTML_ATTR(IMG,DIR),
|
||||
HTML_ATTR(IMG,HEIGHT),
|
||||
HTML_ATTR(IMG,HSPACE),
|
||||
HTML_ATTR(IMG,ID),
|
||||
HTML_ATTR(IMG,ISMAP),
|
||||
HTML_ATTR(IMG,LANG),
|
||||
HTML_ATTR(IMG,LONGDESC),
|
||||
HTML_ATTR(IMG,SRC),
|
||||
HTML_ATTR(IMG,STYLE),
|
||||
HTML_ATTR(IMG,TITLE),
|
||||
HTML_ATTR(IMG,USEMAP),
|
||||
HTML_ATTR(IMG,VSPACE),
|
||||
HTML_ATTR(IMG,WIDTH),
|
||||
HTML_ATTRIBUTES(IMG)
|
||||
};
|
||||
|
||||
static HTAttr input_attr[HTML_INPUT_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(INPUT,ACCEPT),
|
||||
HTML_ATTR(INPUT,ACCESSKEY),
|
||||
HTML_ATTR(INPUT,ALIGN),
|
||||
HTML_ATTR(INPUT,ALT),
|
||||
HTML_ATTR(INPUT,CHECKED),
|
||||
HTML_ATTR(INPUT,CLASS),
|
||||
HTML_ATTR(INPUT,DIR),
|
||||
HTML_ATTR(INPUT,DISABLED),
|
||||
HTML_ATTR(INPUT,ID),
|
||||
HTML_ATTR(INPUT,LANG),
|
||||
HTML_ATTR(INPUT,MAXLENGTH),
|
||||
HTML_ATTR(INPUT,NAME),
|
||||
HTML_ATTR(INPUT,READONLY),
|
||||
HTML_ATTR(INPUT,SIZE),
|
||||
HTML_ATTR(INPUT,SRC),
|
||||
HTML_ATTR(INPUT,STYLE),
|
||||
HTML_ATTR(INPUT,TABINDEX),
|
||||
HTML_ATTR(INPUT,TITLE),
|
||||
HTML_ATTR(INPUT,TYPE),
|
||||
HTML_ATTR(INPUT,USEMAP),
|
||||
HTML_ATTR(INPUT,VALUE),
|
||||
HTML_ATTRIBUTES(INPUT)
|
||||
};
|
||||
|
||||
static HTAttr isindex_attr[HTML_ISINDEX_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(ISINDEX,CLASS),
|
||||
HTML_ATTR(ISINDEX,DIR),
|
||||
HTML_ATTR(ISINDEX,ID),
|
||||
HTML_ATTR(ISINDEX,LANG),
|
||||
HTML_ATTR(ISINDEX,PROMPT),
|
||||
HTML_ATTR(ISINDEX,STYLE),
|
||||
HTML_ATTR(ISINDEX,TITLE),
|
||||
HTML_ATTRIBUTES(ISINDEX)
|
||||
};
|
||||
|
||||
static HTAttr label_attr[HTML_LABEL_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(LABEL,ACCESSKEY),
|
||||
HTML_ATTR(LABEL,CLASS),
|
||||
HTML_ATTR(LABEL,DIR),
|
||||
HTML_ATTR(LABEL,FOR),
|
||||
HTML_ATTR(LABEL,ID),
|
||||
HTML_ATTR(LABEL,LANG),
|
||||
HTML_ATTR(LABEL,STYLE),
|
||||
HTML_ATTR(LABEL,TITLE),
|
||||
HTML_ATTRIBUTES(LABEL)
|
||||
};
|
||||
|
||||
static HTAttr legend_attr[HTML_LEGEND_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(LEGEND,ACCESSKEY),
|
||||
HTML_ATTR(LEGEND,ALIGN),
|
||||
HTML_ATTR(LEGEND,CLASS),
|
||||
HTML_ATTR(LEGEND,DIR),
|
||||
HTML_ATTR(LEGEND,ID),
|
||||
HTML_ATTR(LEGEND,LANG),
|
||||
HTML_ATTR(LEGEND,STYLE),
|
||||
HTML_ATTR(LEGEND,TITLE),
|
||||
HTML_ATTRIBUTES(LEGEND)
|
||||
};
|
||||
|
||||
static HTAttr li_attr[HTML_LI_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(LI,CLASS),
|
||||
HTML_ATTR(LI,COMPACT),
|
||||
HTML_ATTR(LI,DIR),
|
||||
HTML_ATTR(LI,ID),
|
||||
HTML_ATTR(LI,LANG),
|
||||
HTML_ATTR(LI,STYLE),
|
||||
HTML_ATTR(LI,TITLE),
|
||||
HTML_ATTR(LI,TYPE),
|
||||
HTML_ATTR(LI,VALUE),
|
||||
HTML_ATTRIBUTES(LI)
|
||||
};
|
||||
|
||||
static HTAttr link_attr[HTML_LINK_ATTRIBUTES+1] = { /* link attributes */
|
||||
HTML_ATTR(LINK,CHARSET),
|
||||
HTML_ATTR(LINK,CLASS),
|
||||
HTML_ATTR(LINK,DIR),
|
||||
HTML_ATTR(LINK,HREF),
|
||||
HTML_ATTR(LINK,HREFLANG),
|
||||
HTML_ATTR(LINK,ID),
|
||||
HTML_ATTR(LINK,LANG),
|
||||
HTML_ATTR(LINK,MEDIA),
|
||||
HTML_ATTR(LINK,REL),
|
||||
HTML_ATTR(LINK,REV),
|
||||
HTML_ATTR(LINK,STYLE),
|
||||
HTML_ATTR(LINK,TARGET),
|
||||
HTML_ATTR(LINK,TITLE),
|
||||
HTML_ATTR(LINK,TYPE),
|
||||
HTML_ATTRIBUTES(LINK)
|
||||
};
|
||||
|
||||
static HTAttr map_attr[HTML_MAP_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(MAP,CLASS),
|
||||
HTML_ATTR(MAP,DIR),
|
||||
HTML_ATTR(MAP,ID),
|
||||
HTML_ATTR(MAP,LANG),
|
||||
HTML_ATTR(MAP,NAME),
|
||||
HTML_ATTR(MAP,STYLE),
|
||||
HTML_ATTR(MAP,TITLE),
|
||||
HTML_ATTRIBUTES(MAP)
|
||||
};
|
||||
|
||||
static HTAttr meta_attr[HTML_META_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(META,CONTENT),
|
||||
HTML_ATTR(META,DIR),
|
||||
{ (char *)"HTTP-EQUIV" }, /* HTML_ATTR(META,HTTP_EQUIV) */
|
||||
HTML_ATTR(META,LANG),
|
||||
HTML_ATTR(META,NAME),
|
||||
HTML_ATTR(META,SCHEME),
|
||||
HTML_ATTRIBUTES(META)
|
||||
};
|
||||
|
||||
static HTAttr nextid_attr[HTML_NEXTID_ATTRIBUTES+1] = {
|
||||
{ (char *)"N" },
|
||||
{ 0 } /* Terminate list */
|
||||
};
|
||||
|
||||
static HTAttr object_attr[HTML_OBJECT_ATTRIBUTES+1] = { /* object attributes */
|
||||
HTML_ATTR(OBJECT,ALIGN),
|
||||
HTML_ATTR(OBJECT,ARCHIVE),
|
||||
HTML_ATTR(OBJECT,BORDER),
|
||||
HTML_ATTR(OBJECT,CLASS),
|
||||
HTML_ATTR(OBJECT,CLASSID),
|
||||
HTML_ATTR(OBJECT,CODEBASE),
|
||||
HTML_ATTR(OBJECT,CODETYPE),
|
||||
HTML_ATTR(OBJECT,DATA),
|
||||
HTML_ATTR(OBJECT,DECLARE),
|
||||
HTML_ATTR(OBJECT,DIR),
|
||||
HTML_ATTR(OBJECT,HEIGHT),
|
||||
HTML_ATTR(OBJECT,HSPACE),
|
||||
HTML_ATTR(OBJECT,ID),
|
||||
HTML_ATTR(OBJECT,LANG),
|
||||
HTML_ATTR(OBJECT,NAME),
|
||||
HTML_ATTR(OBJECT,STANDBY),
|
||||
HTML_ATTR(OBJECT,STYLE),
|
||||
HTML_ATTR(OBJECT,TABINDEX),
|
||||
HTML_ATTR(OBJECT,TITLE),
|
||||
HTML_ATTR(OBJECT,TYPE),
|
||||
HTML_ATTR(OBJECT,USEMAP),
|
||||
HTML_ATTR(OBJECT,VSPACE),
|
||||
HTML_ATTR(OBJECT,WIDTH),
|
||||
HTML_ATTRIBUTES(OBJECT)
|
||||
};
|
||||
|
||||
static HTAttr ol_attr[HTML_OL_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(OL,CLASS),
|
||||
HTML_ATTR(OL,COMPACT),
|
||||
HTML_ATTR(OL,DIR),
|
||||
HTML_ATTR(OL,ID),
|
||||
HTML_ATTR(OL,LANG),
|
||||
HTML_ATTR(OL,START),
|
||||
HTML_ATTR(OL,STYLE),
|
||||
HTML_ATTR(OL,TITLE),
|
||||
HTML_ATTR(OL,TYPE),
|
||||
HTML_ATTRIBUTES(OL)
|
||||
};
|
||||
|
||||
static HTAttr optgroup_attr[HTML_OPTGROUP_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(OPTGROUP,CLASS),
|
||||
HTML_ATTR(OPTGROUP,DISABLED),
|
||||
HTML_ATTR(OPTGROUP,DIR),
|
||||
HTML_ATTR(OPTGROUP,ID),
|
||||
HTML_ATTR(OPTGROUP,LABEL),
|
||||
HTML_ATTR(OPTGROUP,LANG),
|
||||
HTML_ATTR(OPTGROUP,STYLE),
|
||||
HTML_ATTR(OPTGROUP,TITLE),
|
||||
HTML_ATTRIBUTES(OPTGROUP)
|
||||
};
|
||||
|
||||
static HTAttr option_attr[HTML_OPTION_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(OPTION,CLASS),
|
||||
HTML_ATTR(OPTION,DISABLED),
|
||||
HTML_ATTR(OPTION,DIR),
|
||||
HTML_ATTR(OPTION,ID),
|
||||
HTML_ATTR(OPTION,LABEL),
|
||||
HTML_ATTR(OPTION,LANG),
|
||||
HTML_ATTR(OPTION,SELECTED),
|
||||
HTML_ATTR(OPTION,STYLE),
|
||||
HTML_ATTR(OPTION,TITLE),
|
||||
HTML_ATTR(OPTION,VALUE),
|
||||
HTML_ATTRIBUTES(OPTION)
|
||||
};
|
||||
|
||||
static HTAttr param_attr[HTML_PARAM_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(PARAM,ID),
|
||||
HTML_ATTR(PARAM,NAME),
|
||||
HTML_ATTR(PARAM,TYPE),
|
||||
HTML_ATTR(PARAM,VALUE),
|
||||
HTML_ATTR(PARAM,VALUETYPE),
|
||||
HTML_ATTRIBUTES(PARAM)
|
||||
};
|
||||
|
||||
static HTAttr pre_attr[HTML_PRE_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(PRE,CLASS),
|
||||
HTML_ATTR(PRE,DIR),
|
||||
HTML_ATTR(PRE,ID),
|
||||
HTML_ATTR(PRE,LANG),
|
||||
HTML_ATTR(PRE,STYLE),
|
||||
HTML_ATTR(PRE,TITLE),
|
||||
HTML_ATTR(PRE,WIDTH),
|
||||
HTML_ATTRIBUTES(PRE)
|
||||
};
|
||||
|
||||
static HTAttr script_attr[HTML_SCRIPT_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(SCRIPT,CHARSET),
|
||||
HTML_ATTR(SCRIPT,DEFER),
|
||||
HTML_ATTR(SCRIPT,LANGUAGE),
|
||||
HTML_ATTR(SCRIPT,SRC),
|
||||
HTML_ATTR(SCRIPT,TYPE),
|
||||
HTML_ATTRIBUTES(SCRIPT)
|
||||
};
|
||||
|
||||
static HTAttr select_attr[HTML_SELECT_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(SELECT,CLASS),
|
||||
HTML_ATTR(SELECT,DIR),
|
||||
HTML_ATTR(SELECT,DISABLED),
|
||||
HTML_ATTR(SELECT,ID),
|
||||
HTML_ATTR(SELECT,LANG),
|
||||
HTML_ATTR(SELECT,MULTIPLE),
|
||||
HTML_ATTR(SELECT,NAME),
|
||||
HTML_ATTR(SELECT,SIZE),
|
||||
HTML_ATTR(SELECT,STYLE),
|
||||
HTML_ATTR(SELECT,TABINDEX),
|
||||
HTML_ATTR(SELECT,TITLE),
|
||||
HTML_ATTRIBUTES(SELECT)
|
||||
};
|
||||
|
||||
static HTAttr style_attr[HTML_STYLE_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(STYLE,DIR),
|
||||
HTML_ATTR(STYLE,LANG),
|
||||
HTML_ATTR(STYLE,MEDIA),
|
||||
HTML_ATTR(STYLE,TITLE),
|
||||
HTML_ATTR(STYLE,TYPE),
|
||||
HTML_ATTRIBUTES(STYLE)
|
||||
};
|
||||
|
||||
static HTAttr table_attr[HTML_TABLE_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(TABLE,ALIGN),
|
||||
HTML_ATTR(TABLE,BGCOLOR),
|
||||
HTML_ATTR(TABLE,BORDER),
|
||||
HTML_ATTR(TABLE,CELLPADDING),
|
||||
HTML_ATTR(TABLE,CELLSPACING),
|
||||
HTML_ATTR(TABLE,CLASS),
|
||||
HTML_ATTR(TABLE,DIR),
|
||||
HTML_ATTR(TABLE,FRAME),
|
||||
HTML_ATTR(TABLE,ID),
|
||||
HTML_ATTR(TABLE,LANG),
|
||||
HTML_ATTR(TABLE,RULES),
|
||||
HTML_ATTR(TABLE,SUMMARY),
|
||||
HTML_ATTR(TABLE,STYLE),
|
||||
HTML_ATTR(TABLE,TITLE),
|
||||
HTML_ATTR(TABLE,WIDTH),
|
||||
HTML_ATTRIBUTES(TABLE)
|
||||
};
|
||||
|
||||
static HTAttr tele_attr[HTML_TELE_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(TELE,ALIGN),
|
||||
HTML_ATTR(TELE,CHAR),
|
||||
HTML_ATTR(TELE,CHAROFF),
|
||||
HTML_ATTR(TELE,CLASS),
|
||||
HTML_ATTR(TELE,DIR),
|
||||
HTML_ATTR(TELE,ID),
|
||||
HTML_ATTR(TELE,LANG),
|
||||
HTML_ATTR(TELE,STYLE),
|
||||
HTML_ATTR(TELE,TITLE),
|
||||
HTML_ATTR(TELE,VALIGN),
|
||||
HTML_ATTRIBUTES(TELE)
|
||||
};
|
||||
|
||||
static HTAttr td_attr[HTML_TD_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(TD,ABBR),
|
||||
HTML_ATTR(TD,ALIGN),
|
||||
HTML_ATTR(TD,AXIS),
|
||||
HTML_ATTR(TD,BGCOLOR),
|
||||
HTML_ATTR(TD,CHAR),
|
||||
HTML_ATTR(TD,CHAROFF),
|
||||
HTML_ATTR(TD,CLASS),
|
||||
HTML_ATTR(TD,COLSPAN),
|
||||
HTML_ATTR(TD,DIR),
|
||||
HTML_ATTR(TD,ID),
|
||||
HTML_ATTR(TD,HEADERS),
|
||||
HTML_ATTR(TD,HEIGHT),
|
||||
HTML_ATTR(TD,LANG),
|
||||
HTML_ATTR(TD,NOWRAP),
|
||||
HTML_ATTR(TD,ROWSPAN),
|
||||
HTML_ATTR(TD,SCOPE),
|
||||
HTML_ATTR(TD,STYLE),
|
||||
HTML_ATTR(TD,TITLE),
|
||||
HTML_ATTR(TD,VALIGN),
|
||||
HTML_ATTR(TD,WIDTH),
|
||||
HTML_ATTRIBUTES(TD)
|
||||
};
|
||||
|
||||
static HTAttr textarea_attr[HTML_TEXTAREA_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(TEXTAREA,CLASS),
|
||||
HTML_ATTR(TEXTAREA,COLS),
|
||||
HTML_ATTR(TEXTAREA,DIR),
|
||||
HTML_ATTR(TEXTAREA,DISABLED),
|
||||
HTML_ATTR(TEXTAREA,ID),
|
||||
HTML_ATTR(TEXTAREA,LANG),
|
||||
HTML_ATTR(TEXTAREA,NAME),
|
||||
HTML_ATTR(TEXTAREA,READONLY),
|
||||
HTML_ATTR(TEXTAREA,ROWS),
|
||||
HTML_ATTR(TEXTAREA,STYLE),
|
||||
HTML_ATTR(TEXTAREA,TABINDEX),
|
||||
HTML_ATTR(TEXTAREA,TITLE),
|
||||
HTML_ATTRIBUTES(TEXTAREA)
|
||||
};
|
||||
|
||||
static HTAttr title_attr[HTML_TITLE_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(TITLE,DIR),
|
||||
HTML_ATTR(TITLE,LANG),
|
||||
HTML_ATTRIBUTES(TITLE)
|
||||
};
|
||||
|
||||
static HTAttr ul_attr[HTML_UL_ATTRIBUTES+1] = {
|
||||
HTML_ATTR(UL,CLASS),
|
||||
HTML_ATTR(UL,COMPACT),
|
||||
HTML_ATTR(UL,DIR),
|
||||
HTML_ATTR(UL,ID),
|
||||
HTML_ATTR(UL,LANG),
|
||||
HTML_ATTR(UL,STYLE),
|
||||
HTML_ATTR(UL,TITLE),
|
||||
HTML_ATTR(UL,TYPE),
|
||||
HTML_ATTRIBUTES(UL)
|
||||
};
|
||||
|
||||
/*
|
||||
** ELEMENTS
|
||||
** Must match definitions in HTMLPDTD.html!
|
||||
** Must be in alphabetical order.
|
||||
**
|
||||
** Name, Attributes, content
|
||||
*/
|
||||
static HTTag tags[HTML_ELEMENTS] = {
|
||||
{ "A" , a_attr, HTML_A_ATTRIBUTES },
|
||||
{ "ABBR" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "ACRONYM" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "ADDRESS" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "APPLET" , applet_attr, HTML_APPLET_ATTRIBUTES },
|
||||
{ "AREA" , area_attr, HTML_AREA_ATTRIBUTES },
|
||||
{ "B" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "BASE" , base_attr, HTML_BASE_ATTRIBUTES },
|
||||
{ "BASEFONT", font_attr, HTML_FONT_ATTRIBUTES },
|
||||
{ "BDO" , bdo_attr, HTML_BDO_ATTRIBUTES },
|
||||
{ "BIG" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "BLOCKQUOTE", bq_attr, HTML_BQ_ATTRIBUTES },
|
||||
{ "BODY" , body_attr, HTML_BODY_ATTRIBUTES },
|
||||
{ "BR" , br_attr, HTML_BR_ATTRIBUTES },
|
||||
{ "BUTTON" , button_attr, HTML_BUTTON_ATTRIBUTES },
|
||||
{ "CAPTION" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "CENTER" , no_attr, 0 },
|
||||
{ "CITE" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "CODE" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "COL" , col_attr, HTML_COL_ATTRIBUTES },
|
||||
{ "COLGROUP", col_attr, HTML_COL_ATTRIBUTES },
|
||||
{ "DD" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "DEL" , changes_attr, HTML_CHANGES_ATTRIBUTES },
|
||||
{ "DFN" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "DIR" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "DIV" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "DL" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "DT" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "EM" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "FIELDSET", gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "FONT" , font_attr, HTML_FONT_ATTRIBUTES },
|
||||
{ "FORM" , form_attr, HTML_FORM_ATTRIBUTES },
|
||||
{ "FRAME" , frame_attr, HTML_FRAME_ATTRIBUTES },
|
||||
{ "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES },
|
||||
{ "H1" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "H2" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "H3" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "H4" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "H5" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "H6" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "HEAD" , head_attr, HTML_HEAD_ATTRIBUTES },
|
||||
{ "HR" , hr_attr, HTML_HR_ATTRIBUTES },
|
||||
{ "HTML" , html_attr, HTML_HTML_ATTRIBUTES },
|
||||
{ "I" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "IFRAME" , iframe_attr, HTML_IFRAME_ATTRIBUTES },
|
||||
{ "IMG" , img_attr, HTML_IMG_ATTRIBUTES },
|
||||
{ "INPUT" , input_attr, HTML_INPUT_ATTRIBUTES },
|
||||
{ "INS" , changes_attr, HTML_CHANGES_ATTRIBUTES },
|
||||
{ "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES },
|
||||
{ "KBD" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "LABEL" , label_attr, HTML_LABEL_ATTRIBUTES },
|
||||
{ "LEGEND" , legend_attr, HTML_LEGEND_ATTRIBUTES },
|
||||
{ "LI" , li_attr, HTML_LI_ATTRIBUTES },
|
||||
{ "LINK" , link_attr, HTML_LINK_ATTRIBUTES },
|
||||
{ "MAP" , map_attr, HTML_MAP_ATTRIBUTES },
|
||||
{ "MENU" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "META" , meta_attr, HTML_META_ATTRIBUTES },
|
||||
{ "NEXTID" , nextid_attr, 1 },
|
||||
{ "NOFRAMES", gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "NOSCRIPT", gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "OBJECT" , object_attr, HTML_OBJECT_ATTRIBUTES },
|
||||
{ "OL" , ol_attr, HTML_OL_ATTRIBUTES },
|
||||
{ "OPTGROUP", optgroup_attr,HTML_OPTGROUP_ATTRIBUTES },
|
||||
{ "OPTION" , option_attr, HTML_OPTION_ATTRIBUTES },
|
||||
{ "P" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "PARAM" , param_attr, HTML_PARAM_ATTRIBUTES },
|
||||
{ "PRE" , pre_attr, HTML_PRE_ATTRIBUTES },
|
||||
{ "Q" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "S" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "SAMP" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "SCRIPT" , script_attr, HTML_SCRIPT_ATTRIBUTES },
|
||||
{ "SELECT" , select_attr, HTML_SELECT_ATTRIBUTES },
|
||||
{ "SMALL" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "SPAN" , block_attr, HTML_BLOCK_ATTRIBUTES },
|
||||
{ "STRIKE" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "STRONG" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "STYLE" , style_attr, HTML_STYLE_ATTRIBUTES },
|
||||
{ "SUB" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "SUP" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "TABLE" , table_attr, HTML_TABLE_ATTRIBUTES },
|
||||
{ "TBODY" , tele_attr, HTML_TELE_ATTRIBUTES },
|
||||
{ "TD" , td_attr, HTML_TD_ATTRIBUTES },
|
||||
{ "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES },
|
||||
{ "TFOOT" , tele_attr, HTML_TELE_ATTRIBUTES },
|
||||
{ "TH" , td_attr, HTML_TD_ATTRIBUTES },
|
||||
{ "THEAD" , tele_attr, HTML_TELE_ATTRIBUTES },
|
||||
{ "TITLE" , title_attr, HTML_TITLE_ATTRIBUTES },
|
||||
{ "TR" , tele_attr, HTML_TELE_ATTRIBUTES },
|
||||
{ "TT" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "U" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
{ "UL" , ul_attr, HTML_UL_ATTRIBUTES },
|
||||
{ "VAR" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
//
|
||||
{ "LUA" , gen_attr, HTML_GEN_ATTRIBUTES },
|
||||
};
|
||||
|
||||
static SGML_dtd HTMLP_dtd = {
|
||||
tags,
|
||||
HTML_ELEMENTS
|
||||
};
|
||||
|
||||
static SGML_dtd * DTD = &HTMLP_dtd;
|
||||
|
||||
SGML_dtd * HTML_dtd (void)
|
||||
{
|
||||
return DTD;
|
||||
}
|
||||
|
||||
}// namespace
|
||||
|
Loading…
Reference in a new issue