⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpform.cxx

📁 pwlib源码库
💻 CXX
📖 第 1 页 / 共 5 页
字号:
void PHTTPIntegerField::SaveToConfig(PConfig & cfg) const{  PString section, key;  switch (SplitConfigKey(fullName, section, key)) {    case 1 :      cfg.SetInteger(key, value);      break;    case 2 :      cfg.SetInteger(section, key, value);  }}BOOL PHTTPIntegerField::Validated(const PString & newVal, PStringStream & msg) const{  int val = newVal.AsInteger();  if (val >= low && val <= high)    return TRUE;  msg << "The field \"" << GetName() << "\" should be between "      << low << " and " << high << ".<BR>";  return FALSE;}//////////////////////////////////////////////////////////////////////////////// PHTTPBooleanFieldPHTTPBooleanField::PHTTPBooleanField(const char * name,                                     BOOL initVal,                                   const char * help)  : PHTTPField(name, NULL, help){  value = initialValue = initVal;}PHTTPBooleanField::PHTTPBooleanField(const char * name,                                     const char * title,                                     BOOL initVal,                                     const char * help)  : PHTTPField(name, title, help){  value = initialValue = initVal;}PHTTPField * PHTTPBooleanField::NewField() const{  return new PHTTPBooleanField(baseName, title, initialValue, help);}void PHTTPBooleanField::GetHTMLTag(PHTML & html) const{  html << PHTML::HiddenField(fullName, "FALSE")       << PHTML::CheckBox(fullName, value ? PHTML::Checked : PHTML::UnChecked);}static void SpliceChecked(PString & text, BOOL value){  PINDEX pos = text.Find("checked");  if (value) {    if (pos == P_MAX_INDEX)      text.Splice(" checked", 6, 0);  }  else {    if (pos != P_MAX_INDEX) {      PINDEX len = 7;      if (text[pos-1] == ' ') {        pos--;        len++;      }      text.Delete(pos, len);    }  }}PString PHTTPBooleanField::GetHTMLInput(const PString & input) const{  static PRegularExpression checkboxRegEx("type[ \t\r\n]*=[ \t\r\n]*\"?checkbox\"?",                                          PRegularExpression::Extended|PRegularExpression::IgnoreCase);  if (input.FindRegEx(checkboxRegEx) != P_MAX_INDEX) {    PCaselessString text;    PINDEX before, after;    if (FindInputValue(input, before, after))       text = input(0, before) + "TRUE" + input.Mid(after);    else      text = "<input value=\"TRUE\"" + input.Mid(6);    SpliceChecked(text, value);    return "<input type=hidden name=\"" + fullName + "\">" + text;  }  static PRegularExpression radioRegEx("type[ \t\r\n]*=[ \t\r\n]*\"?radio\"?",                                       PRegularExpression::Extended|PRegularExpression::IgnoreCase);  if (input.FindRegEx(radioRegEx) != P_MAX_INDEX) {    PINDEX before, after;    if (FindInputValue(input, before, after)) {      PCaselessString text = input;      PString val = input(before+1, after-1);      SpliceChecked(text, (value && (val *= "TRUE")) || (!value && (val *= "FALSE")));      return text;    }    return input;  }  return PHTTPField::GetHTMLInput(input);}void PHTTPBooleanField::SetValue(const PString & val){  value = toupper(val[0]) == 'T' || toupper(val[0]) == 'y' ||          val.AsInteger() != 0 || val.Find("TRUE") != P_MAX_INDEX;}PString PHTTPBooleanField::GetValue(BOOL dflt) const{  return ((dflt ? initialValue : value) ? "True" : "False");}void PHTTPBooleanField::LoadFromConfig(PConfig & cfg){  PString section, key;  switch (SplitConfigKey(fullName, section, key)) {    case 1 :      value = cfg.GetBoolean(key, initialValue);      break;    case 2 :      value = cfg.GetBoolean(section, key, initialValue);  }}void PHTTPBooleanField::SaveToConfig(PConfig & cfg) const{  PString section, key;  switch (SplitConfigKey(fullName, section, key)) {    case 1 :      cfg.SetBoolean(key, value);      break;    case 2 :      cfg.SetBoolean(section, key, value);  }}//////////////////////////////////////////////////////////////////////////////// PHTTPRadioFieldPHTTPRadioField::PHTTPRadioField(const char * name,                                 const PStringArray & valueArray,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, NULL, help),    values(valueArray),    titles(valueArray),    value(valueArray[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 const PStringArray & valueArray,                                 const PStringArray & titleArray,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, NULL, help),    values(valueArray),    titles(titleArray),    value(valueArray[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 PINDEX count,                                 const char * const * valueStrings,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, NULL, help),    values(count, valueStrings),    titles(count, valueStrings),    value(valueStrings[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 PINDEX count,                                 const char * const * valueStrings,                                 const char * const * titleStrings,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, NULL, help),    values(count, valueStrings),    titles(count, titleStrings),    value(valueStrings[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 const char * groupTitle,                                 const PStringArray & valueArray,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, groupTitle, help),    values(valueArray),    titles(valueArray),    value(valueArray[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 const char * groupTitle,                                 const PStringArray & valueArray,                                 const PStringArray & titleArray,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, groupTitle, help),    values(valueArray),    titles(titleArray),    value(valueArray[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 const char * groupTitle,                                 PINDEX count,                                 const char * const * valueStrings,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, groupTitle, help),    values(count, valueStrings),    titles(count, valueStrings),    value(valueStrings[initVal]),    initialValue(value){}PHTTPRadioField::PHTTPRadioField(const char * name,                                 const char * groupTitle,                                 PINDEX count,                                 const char * const * valueStrings,                                 const char * const * titleStrings,                                 PINDEX initVal,                                 const char * help)  : PHTTPField(name, groupTitle, help),    values(count, valueStrings),    titles(count, titleStrings),    value(valueStrings[initVal]),    initialValue(value){}PHTTPField * PHTTPRadioField::NewField() const{  return new PHTTPRadioField(*this);}void PHTTPRadioField::GetHTMLTag(PHTML & html) const{  for (PINDEX i = 0; i < values.GetSize(); i++)    html << PHTML::RadioButton(fullName, values[i],                        values[i] == value ? PHTML::Checked : PHTML::UnChecked)         << titles[i]         << PHTML::BreakLine();}PString PHTTPRadioField::GetHTMLInput(const PString & input) const{  PString inval;  PINDEX before, after;  if (FindInputValue(input, before, after))    inval = input(before+1, after-1);  else    inval = baseName;  if (inval != value)    return input;  return "<input checked" + input.Mid(6);}PString PHTTPRadioField::GetValue(BOOL dflt) const{  if (dflt)    return initialValue;  else    return value;}void PHTTPRadioField::SetValue(const PString & newVal){  value = newVal;}//////////////////////////////////////////////////////////////////////////////// PHTTPSelectFieldPHTTPSelectField::PHTTPSelectField(const char * name,                                   const PStringArray & valueArray,                                   PINDEX initVal,                                   const char * help)  : PHTTPField(name, NULL, help),    values(valueArray){  initialValue = initVal;  if (initVal < values.GetSize())    value = values[initVal];}PHTTPSelectField::PHTTPSelectField(const char * name,                                   PINDEX count,                                   const char * const * valueStrings,                                   PINDEX initVal,                                   const char * help)  : PHTTPField(name, NULL, help),    values(count, valueStrings){  initialValue = initVal;  if (initVal < count)    value = values[initVal];}PHTTPSelectField::PHTTPSelectField(const char * name,                                   const char * title,                                   const PStringArray & valueArray,                                   PINDEX initVal,                                   const char * help)  : PHTTPField(name, title, help),    values(valueArray){  initialValue = initVal;  if (initVal < values.GetSize())    value = values[initVal];}PHTTPSelectField::PHTTPSelectField(const char * name,                                   const char * title,                                   PINDEX count,                                   const char * const * valueStrings,                                   PINDEX initVal,                                   const char * help)  : PHTTPField(name, title, help),    values(count, valueStrings){  initialValue = initVal;  if (initVal < values.GetSize())    value = values[initVal];}PHTTPField * PHTTPSelectField::NewField() const{  return new PHTTPSelectField(baseName, title, values, initialValue, help);}void PHTTPSelectField::GetHTMLTag(PHTML & html) const{  html << PHTML::Select(fullName);  for (PINDEX i = 0; i < values.GetSize(); i++)    html << PHTML::Option(values[i] == value ? PHTML::Selected : PHTML::NotSelected)         << values[i];  html << PHTML::Select();}PString PHTTPSelectField::GetValue(BOOL dflt) const{  if (dflt)    if (initialValue < values.GetSize())      return values[initialValue];    else      return PString();  else    return value;}void PHTTPSelectField::SetValue(const PString & newVal){  value = newVal;}//////////////////////////////////////////////////////////////////////////////// PHTTPFormPHTTPForm::PHTTPForm(const PURL & url)  : PHTTPString(url),    fields(""){}PHTTPForm::PHTTPForm(const PURL & url, const PHTTPAuthority & auth)  : PHTTPString(url, auth),    fields(""){}PHTTPForm::PHTTPForm(const PURL & url, const PString & html)  : PHTTPString(url, html),    fields(""){}PHTTPForm::PHTTPForm(const PURL & url,                     const PString & html,                     const PHTTPAuthority & auth)  : PHTTPString(url, html, auth),    fields(""){}static BOOL FindSpliceAccepted(const PString & text,                              PINDEX offset,                              PINDEX & pos,                              PINDEX & len,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -