📄 html.cxx
字号:
PHTML::ListItem::ListItem(int skip, const char * attr)
: Element("LI", attr, NumElementsInSet, InList, OpenCRLF)
{
skipSeq = skip;
}
void PHTML::ListItem::AddAttr(PHTML & html) const
{
if (skipSeq > 0)
html << " SKIP=" << skipSeq;
}
PHTML::DefinitionTerm::DefinitionTerm(const char * attr)
: Element("DT", attr, NumElementsInSet, InList, NoCRLF)
{
}
void PHTML::DefinitionTerm::Output(PHTML & html) const
{
PAssert(!html.Is(InDefinitionTerm), "HTML definition item missing");
Element::Output(html);
html.Set(InDefinitionTerm);
}
PHTML::DefinitionItem::DefinitionItem(const char * attr)
: Element("DD", attr, NumElementsInSet, InList, NoCRLF)
{
}
void PHTML::DefinitionItem::Output(PHTML & html) const
{
PAssert(html.Is(InDefinitionTerm), "HTML definition term missing");
Element::Output(html);
html.Clr(InDefinitionTerm);
}
PHTML::TableStart::TableStart(const char * attr)
: Element("TABLE", attr, InTable, InBody, BothCRLF)
{
borderFlag = FALSE;
}
PHTML::TableStart::TableStart(BorderCodes border, const char * attr)
: Element("TABLE", attr, InTable, InBody, BothCRLF)
{
borderFlag = border == Border;
}
void PHTML::TableStart::Output(PHTML & html) const
{
if (html.tableNestLevel > 0)
html.Clr(InTable);
Element::Output(html);
}
void PHTML::TableStart::AddAttr(PHTML & html) const
{
if (borderFlag)
html << " BORDER";
html.tableNestLevel++;
}
PHTML::TableEnd::TableEnd()
: Element("TABLE", "", InTable, InBody, BothCRLF)
{
}
void PHTML::TableEnd::Output(PHTML & html) const
{
PAssert(html.tableNestLevel > 0, "Table nesting error");
Element::Output(html);
html.tableNestLevel--;
if (html.tableNestLevel > 0)
html.Set(InTable);
}
PHTML::TableRow::TableRow(const char * attr)
: Element("TR", attr, NumElementsInSet, InTable, OpenCRLF)
{
}
PHTML::TableHeader::TableHeader(const char * attr)
: Element("TH", attr, NumElementsInSet, InTable, CloseCRLF)
{
}
PHTML::TableData::TableData(const char * attr)
: Element("TD", attr, NumElementsInSet, InTable, NoCRLF)
{
}
PHTML::Form::Form(const char * method,
const char * action,
const char * mimeType,
const char * script)
: Element("FORM", NULL, InForm, InBody, BothCRLF)
{
methodString = method;
actionString = action;
mimeTypeString = mimeType;
scriptString = script;
}
void PHTML::Form::AddAttr(PHTML & html) const
{
if (methodString != NULL)
html << " METHOD=" << methodString;
if (actionString != NULL)
html << " ACTION=\"" << actionString << '"';
if (mimeTypeString != NULL)
html << " ENCTYPE=\"" << mimeTypeString << '"';
if (scriptString != NULL)
html << " SCRIPT=\"" << scriptString << '"';
}
PHTML::FieldElement::FieldElement(const char * n,
const char * attr,
ElementInSet elmt,
OptionalCRLF c,
DisableCodes disabled)
: Element(n, attr, elmt, InForm, c)
{
disabledFlag = disabled == Disabled;
}
void PHTML::FieldElement::AddAttr(PHTML & html) const
{
if (disabledFlag)
html << " DISABLED";
}
PHTML::Select::Select(const char * fname, const char * attr)
: FieldElement("SELECT", attr, InSelect, BothCRLF, Enabled)
{
nameString = fname;
}
PHTML::Select::Select(const char * fname,
DisableCodes disabled,
const char * attr)
: FieldElement("SELECT", attr, InSelect, BothCRLF, disabled)
{
nameString = fname;
}
void PHTML::Select::AddAttr(PHTML & html) const
{
if (!html.Is(InSelect)) {
PAssert(nameString != NULL && *nameString != '\0', PInvalidParameter);
html << " NAME=\"" << nameString << '"';
}
FieldElement::AddAttr(html);
}
PHTML::Option::Option(const char * attr)
: FieldElement("OPTION", attr, NumElementsInSet, NoCRLF, Enabled)
{
selectedFlag = FALSE;
}
PHTML::Option::Option(SelectionCodes select,
const char * attr)
: FieldElement("OPTION", attr, NumElementsInSet, NoCRLF, Enabled)
{
selectedFlag = select == Selected;
}
PHTML::Option::Option(DisableCodes disabled,
const char * attr)
: FieldElement("OPTION", attr, NumElementsInSet, NoCRLF, disabled)
{
selectedFlag = FALSE;
}
PHTML::Option::Option(SelectionCodes select,
DisableCodes disabled,
const char * attr)
: FieldElement("OPTION", attr, NumElementsInSet, NoCRLF, disabled)
{
selectedFlag = select == Selected;
}
void PHTML::Option::AddAttr(PHTML & html) const
{
if (selectedFlag)
html << " SELECTED";
FieldElement::AddAttr(html);
}
PHTML::FormField::FormField(const char * n,
const char * attr,
ElementInSet elmt,
OptionalCRLF c,
DisableCodes disabled,
const char * fname)
: FieldElement(n, attr, elmt, c, disabled)
{
nameString = fname;
}
void PHTML::FormField::AddAttr(PHTML & html) const
{
PAssert(nameString != NULL && *nameString != '\0', PInvalidParameter);
html << " NAME=\"" << nameString << '"';
FieldElement::AddAttr(html);
}
PHTML::TextArea::TextArea(const char * fname,
DisableCodes disabled,
const char * attr)
: FormField("TEXTAREA", attr, InSelect, BothCRLF, disabled, fname)
{
numRows = numCols = 0;
}
PHTML::TextArea::TextArea(const char * fname,
int rows, int cols,
DisableCodes disabled,
const char * attr)
: FormField("TEXTAREA", attr, InSelect, BothCRLF, disabled, fname)
{
numRows = rows;
numCols = cols;
}
void PHTML::TextArea::AddAttr(PHTML & html) const
{
if (numRows > 0)
html << " ROWS=" << numRows;
if (numCols > 0)
html << " COLS=" << numCols;
FormField::AddAttr(html);
}
PHTML::InputField::InputField(const char * type,
const char * fname,
DisableCodes disabled,
const char * attr)
: FormField("INPUT", attr, NumElementsInSet, NoCRLF, disabled, fname)
{
typeString = type;
}
void PHTML::InputField::AddAttr(PHTML & html) const
{
PAssert(typeString != NULL && *typeString != '\0', PInvalidParameter);
html << " TYPE=" << typeString;
FormField::AddAttr(html);
}
PHTML::HiddenField::HiddenField(const char * fname,
const char * value,
const char * attr)
: InputField("hidden", fname, Enabled, attr)
{
valueString = value;
}
void PHTML::HiddenField::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
PAssert(valueString != NULL, PInvalidParameter);
html << " VALUE=\"" << valueString << '"';
}
PHTML::InputText::InputText(const char * fname,
int size,
const char * init,
const char * attr)
: InputField("text", fname, Enabled, attr)
{
width = size;
length = 0;
value = init;
}
PHTML::InputText::InputText(const char * fname,
int size,
DisableCodes disabled,
const char * attr)
: InputField("text", fname, disabled, attr)
{
width = size;
length = 0;
value = NULL;
}
PHTML::InputText::InputText(const char * fname,
int size,
int maxLength,
DisableCodes disabled,
const char * attr)
: InputField("text", fname, disabled, attr)
{
width = size;
length = maxLength;
value = NULL;
}
PHTML::InputText::InputText(const char * fname,
int size,
const char * init,
int maxLength,
DisableCodes disabled,
const char * attr)
: InputField("text", fname, disabled, attr)
{
width = size;
length = maxLength;
value = init;
}
PHTML::InputText::InputText(const char * type,
const char * fname,
int size,
const char * init,
int maxLength,
DisableCodes disabled,
const char * attr)
: InputField(type, fname, disabled, attr)
{
width = size;
length = maxLength;
value = init;
}
void PHTML::InputText::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
html << " SIZE=" << width;
if (length > 0)
html << " MAXLENGTH=" << length;
if (value != NULL)
html << " VALUE=\"" << value << '"';
}
PHTML::InputPassword::InputPassword(const char * fname,
int size,
const char * init,
const char * attr)
: InputText("password", fname, size, init, 0, Enabled, attr)
{
}
PHTML::InputPassword::InputPassword(const char * fname,
int size,
DisableCodes disabled,
const char * attr)
: InputText("password", fname, size, NULL, 0, disabled, attr)
{
}
PHTML::InputPassword::InputPassword(const char * fname,
int size,
int maxLength,
DisableCodes disabled,
const char * attr)
: InputText("password", fname, size, NULL, maxLength, disabled, attr)
{
}
PHTML::InputPassword::InputPassword(const char * fname,
int size,
const char * init,
int maxLength,
DisableCodes disabled,
const char * attr)
: InputText("password", fname, size, init, maxLength, disabled, attr)
{
}
PHTML::RadioButton::RadioButton(const char * fname,
const char * value,
const char * attr)
: InputField("radio", fname, Enabled, attr)
{
valueString = value;
checkedFlag = FALSE;
}
PHTML::RadioButton::RadioButton(const char * fname,
const char * value,
DisableCodes disabled,
const char * attr)
: InputField("radio", fname, disabled, attr)
{
valueString = value;
checkedFlag = FALSE;
}
PHTML::RadioButton::RadioButton(const char * fname,
const char * value,
CheckedCodes check,
DisableCodes disabled,
const char * attr)
: InputField("radio", fname, disabled, attr)
{
valueString = value;
checkedFlag = check == Checked;
}
PHTML::RadioButton::RadioButton(const char * type,
const char * fname,
const char * value,
CheckedCodes check,
DisableCodes disabled,
const char * attr)
: InputField(type, fname, disabled, attr)
{
valueString = value;
checkedFlag = check == Checked;
}
void PHTML::RadioButton::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
PAssert(valueString != NULL, PInvalidParameter);
html << " VALUE=\"" << valueString << "\"";
if (checkedFlag)
html << " CHECKED";
}
PHTML::CheckBox::CheckBox(const char * fname, const char * attr)
: RadioButton("checkbox", fname, "TRUE", UnChecked, Enabled, attr)
{
}
PHTML::CheckBox::CheckBox(const char * fname,
DisableCodes disabled,
const char * attr)
: RadioButton("checkbox", fname, "TRUE", UnChecked, disabled, attr)
{
}
PHTML::CheckBox::CheckBox(const char * fname,
CheckedCodes check,
DisableCodes disabled,
const char * attr)
: RadioButton("checkbox", fname, "TRUE", check, disabled, attr)
{
}
PHTML::InputRange::InputRange(const char * fname,
int min, int max, int value,
DisableCodes disabled,
const char * attr)
: InputField("range", fname, disabled, attr)
{
PAssert(min <= max, PInvalidParameter);
minValue = min;
maxValue = max;
if (value < min)
initValue = min;
else if (value > max)
initValue = max;
else
initValue = value;
}
void PHTML::InputRange::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
PINDEX max = PMAX(-minValue, maxValue);
PINDEX width = 3;
while (max > 10) {
width++;
max /= 10;
}
html << " SIZE=" << width
<< " MIN=" << minValue
<< " MAX=" << maxValue
<< " VALUE=\"" << initValue << "\"";
}
PHTML::InputFile::InputFile(const char * fname,
const char * accept,
DisableCodes disabled,
const char * attr)
: InputField("file", fname, disabled, attr)
{
acceptString = accept;
}
void PHTML::InputFile::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
if (acceptString != NULL)
html << " ACCEPT=\"" << acceptString << '"';
}
PHTML::InputImage::InputImage(const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: InputField("image", fname, disabled, attr)
{
srcString = src;
}
PHTML::InputImage::InputImage(const char * type,
const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: InputField(type, fname, disabled, attr)
{
srcString = src;
}
void PHTML::InputImage::AddAttr(PHTML & html) const
{
InputField::AddAttr(html);
if (srcString != NULL)
html << " SRC=\"" << srcString << '"';
}
PHTML::InputScribble::InputScribble(const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: InputImage("scribble", fname, src, disabled, attr)
{
}
PHTML::ResetButton::ResetButton(const char * title,
const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: InputImage("reset", fname != NULL ? fname : "reset", src, disabled, attr)
{
titleString = title;
}
PHTML::ResetButton::ResetButton(const char * type,
const char * title,
const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: InputImage(type, fname, src, disabled, attr)
{
titleString = title;
}
void PHTML::ResetButton::AddAttr(PHTML & html) const
{
InputImage::AddAttr(html);
if (titleString != NULL)
html << " VALUE=\"" << titleString << '"';
}
PHTML::SubmitButton::SubmitButton(const char * title,
const char * fname,
const char * src,
DisableCodes disabled,
const char * attr)
: ResetButton("submit",
title, fname != NULL ? fname : "submit", src, disabled, attr)
{
}
// End Of File ///////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -