From b1be711eb42b52ba2b64171fe86d15f7f184f59f Mon Sep 17 00:00:00 2001 From: Relintai Date: Mon, 1 Nov 2021 20:53:22 +0100 Subject: [PATCH] Better chaining support for the html builder. --- core/html/html_builder.cpp | 506 ++++++++++++++++++++++++++++--------- core/html/html_builder.h | 257 +++++++++---------- 2 files changed, 511 insertions(+), 252 deletions(-) diff --git a/core/html/html_builder.cpp b/core/html/html_builder.cpp index 72ae924..88a06d7 100644 --- a/core/html/html_builder.cpp +++ b/core/html/html_builder.cpp @@ -119,18 +119,25 @@ HTMLTag *HTMLTag::close() { return this; } +HTMLBuilder *HTMLTag::f() { + return owner; +} + bool HTMLTag::has_data() { return result.size() > 0; } HTMLTag::HTMLTag() { simple = true; + owner = nullptr; } -void HTMLBuilder::comment(const String &val) { +HTMLBuilder *HTMLBuilder::comment(const String &val) { write_tag(); result += ""; + + return this; } HTMLTag *HTMLBuilder::doctype() { @@ -139,10 +146,12 @@ HTMLTag *HTMLBuilder::doctype() { return tag.start("!DOCTYPE"); } -void HTMLBuilder::doctype(const String &val) { +HTMLBuilder *HTMLBuilder::doctype(const String &val) { write_tag(); result += ""; + + return this; } HTMLTag *HTMLBuilder::a() { @@ -870,630 +879,877 @@ HTMLTag *HTMLBuilder::wbr() { //Closing tags -void HTMLBuilder::ca() { +HTMLBuilder *HTMLBuilder::ca() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cabbr() { +HTMLBuilder *HTMLBuilder::cabbr() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cacronym() { +HTMLBuilder *HTMLBuilder::cacronym() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::caddress() { +HTMLBuilder *HTMLBuilder::caddress() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::capplet() { +HTMLBuilder *HTMLBuilder::capplet() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::carea() { +HTMLBuilder *HTMLBuilder::carea() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::carticle() { +HTMLBuilder *HTMLBuilder::carticle() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::caside() { +HTMLBuilder *HTMLBuilder::caside() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::caudio() { +HTMLBuilder *HTMLBuilder::caudio() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cb() { +HTMLBuilder *HTMLBuilder::cb() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbasefont() { +HTMLBuilder *HTMLBuilder::cbasefont() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbdi() { +HTMLBuilder *HTMLBuilder::cbdi() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbdo() { +HTMLBuilder *HTMLBuilder::cbdo() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbig() { +HTMLBuilder *HTMLBuilder::cbig() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cblockquote() { +HTMLBuilder *HTMLBuilder::cblockquote() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbody() { +HTMLBuilder *HTMLBuilder::cbody() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cbutton() { +HTMLBuilder *HTMLBuilder::cbutton() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccanvas() { +HTMLBuilder *HTMLBuilder::ccanvas() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccaption() { +HTMLBuilder *HTMLBuilder::ccaption() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccenter() { +HTMLBuilder *HTMLBuilder::ccenter() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccite() { +HTMLBuilder *HTMLBuilder::ccite() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccode() { +HTMLBuilder *HTMLBuilder::ccode() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccol() { +HTMLBuilder *HTMLBuilder::ccol() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ccolgroup() { +HTMLBuilder *HTMLBuilder::ccolgroup() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdata() { +HTMLBuilder *HTMLBuilder::cdata() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdatalist() { +HTMLBuilder *HTMLBuilder::cdatalist() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdd() { +HTMLBuilder *HTMLBuilder::cdd() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdel() { +HTMLBuilder *HTMLBuilder::cdel() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdetails() { +HTMLBuilder *HTMLBuilder::cdetails() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdfn() { +HTMLBuilder *HTMLBuilder::cdfn() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdialog() { +HTMLBuilder *HTMLBuilder::cdialog() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdir() { +HTMLBuilder *HTMLBuilder::cdir() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdiv() { +HTMLBuilder *HTMLBuilder::cdiv() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdl() { +HTMLBuilder *HTMLBuilder::cdl() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cdt() { +HTMLBuilder *HTMLBuilder::cdt() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cem() { +HTMLBuilder *HTMLBuilder::cem() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cembed() { +HTMLBuilder *HTMLBuilder::cembed() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cfieldset() { +HTMLBuilder *HTMLBuilder::cfieldset() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cfigcaption() { +HTMLBuilder *HTMLBuilder::cfigcaption() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cfigure() { +HTMLBuilder *HTMLBuilder::cfigure() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cfont() { +HTMLBuilder *HTMLBuilder::cfont() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cfooter() { +HTMLBuilder *HTMLBuilder::cfooter() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cform() { +HTMLBuilder *HTMLBuilder::cform() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cframe() { +HTMLBuilder *HTMLBuilder::cframe() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cframeset() { +HTMLBuilder *HTMLBuilder::cframeset() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch1() { +HTMLBuilder *HTMLBuilder::ch1() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch2() { +HTMLBuilder *HTMLBuilder::ch2() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch3() { +HTMLBuilder *HTMLBuilder::ch3() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch4() { +HTMLBuilder *HTMLBuilder::ch4() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch5() { +HTMLBuilder *HTMLBuilder::ch5() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ch6() { +HTMLBuilder *HTMLBuilder::ch6() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::chead() { +HTMLBuilder *HTMLBuilder::chead() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cheader() { +HTMLBuilder *HTMLBuilder::cheader() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::chr() { +HTMLBuilder *HTMLBuilder::chr() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::chtml() { +HTMLBuilder *HTMLBuilder::chtml() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ci() { +HTMLBuilder *HTMLBuilder::ci() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ciframe() { +HTMLBuilder *HTMLBuilder::ciframe() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cimg() { +HTMLBuilder *HTMLBuilder::cimg() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cinput() { +HTMLBuilder *HTMLBuilder::cinput() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cins() { +HTMLBuilder *HTMLBuilder::cins() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ckbd() { +HTMLBuilder *HTMLBuilder::ckbd() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::clabel() { +HTMLBuilder *HTMLBuilder::clabel() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::clegend() { +HTMLBuilder *HTMLBuilder::clegend() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cli() { +HTMLBuilder *HTMLBuilder::cli() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::clink() { +HTMLBuilder *HTMLBuilder::clink() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cmain() { +HTMLBuilder *HTMLBuilder::cmain() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cmap() { +HTMLBuilder *HTMLBuilder::cmap() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cmark() { +HTMLBuilder *HTMLBuilder::cmark() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cmeta() { +HTMLBuilder *HTMLBuilder::cmeta() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cmeter() { +HTMLBuilder *HTMLBuilder::cmeter() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cnav() { +HTMLBuilder *HTMLBuilder::cnav() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cnoframes() { +HTMLBuilder *HTMLBuilder::cnoframes() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cnoscript() { +HTMLBuilder *HTMLBuilder::cnoscript() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cobject() { +HTMLBuilder *HTMLBuilder::cobject() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::c_ol() { +HTMLBuilder *HTMLBuilder::c_ol() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::coptgroup() { +HTMLBuilder *HTMLBuilder::coptgroup() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::coption() { +HTMLBuilder *HTMLBuilder::coption() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::coutput() { +HTMLBuilder *HTMLBuilder::coutput() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cp() { +HTMLBuilder *HTMLBuilder::cp() { write_tag(); result += "

"; + + return this; } -void HTMLBuilder::cparam() { +HTMLBuilder *HTMLBuilder::cparam() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cpicture() { +HTMLBuilder *HTMLBuilder::cpicture() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cpre() { +HTMLBuilder *HTMLBuilder::cpre() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cprogress() { +HTMLBuilder *HTMLBuilder::cprogress() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cq() { +HTMLBuilder *HTMLBuilder::cq() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::crp() { +HTMLBuilder *HTMLBuilder::crp() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::crt() { +HTMLBuilder *HTMLBuilder::crt() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cruby() { +HTMLBuilder *HTMLBuilder::cruby() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cs() { +HTMLBuilder *HTMLBuilder::cs() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csamp() { +HTMLBuilder *HTMLBuilder::csamp() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cscript() { +HTMLBuilder *HTMLBuilder::cscript() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csection() { +HTMLBuilder *HTMLBuilder::csection() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cselect() { +HTMLBuilder *HTMLBuilder::cselect() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csmall() { +HTMLBuilder *HTMLBuilder::csmall() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csource() { +HTMLBuilder *HTMLBuilder::csource() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cspan() { +HTMLBuilder *HTMLBuilder::cspan() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cstrike() { +HTMLBuilder *HTMLBuilder::cstrike() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cstrong() { +HTMLBuilder *HTMLBuilder::cstrong() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cstyle() { +HTMLBuilder *HTMLBuilder::cstyle() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csub() { +HTMLBuilder *HTMLBuilder::csub() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csummary() { +HTMLBuilder *HTMLBuilder::csummary() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csup() { +HTMLBuilder *HTMLBuilder::csup() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::csvg() { +HTMLBuilder *HTMLBuilder::csvg() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctable() { +HTMLBuilder *HTMLBuilder::ctable() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctbody() { +HTMLBuilder *HTMLBuilder::ctbody() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctd() { +HTMLBuilder *HTMLBuilder::ctd() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctemplateh() { +HTMLBuilder *HTMLBuilder::ctemplateh() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctextarea() { +HTMLBuilder *HTMLBuilder::ctextarea() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctfoot() { +HTMLBuilder *HTMLBuilder::ctfoot() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cth() { +HTMLBuilder *HTMLBuilder::cth() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cthead() { +HTMLBuilder *HTMLBuilder::cthead() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctime() { +HTMLBuilder *HTMLBuilder::ctime() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctitle() { +HTMLBuilder *HTMLBuilder::ctitle() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctr() { +HTMLBuilder *HTMLBuilder::ctr() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctrack() { +HTMLBuilder *HTMLBuilder::ctrack() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::ctt() { +HTMLBuilder *HTMLBuilder::ctt() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cu() { +HTMLBuilder *HTMLBuilder::cu() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cul() { +HTMLBuilder *HTMLBuilder::cul() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cvar() { +HTMLBuilder *HTMLBuilder::cvar() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cvideo() { +HTMLBuilder *HTMLBuilder::cvideo() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::cwbr() { +HTMLBuilder *HTMLBuilder::cwbr() { write_tag(); result += ""; + + return this; } -void HTMLBuilder::w(const String &val) { +HTMLBuilder *HTMLBuilder::w(const String &val) { write_tag(); result += val; + + return this; } //TODO! -void HTMLBuilder::we(const String &val) { +HTMLBuilder *HTMLBuilder::we(const String &val) { printf("HTMLBuilder::write_excaped NYI!"); write_tag(); result += val; + + return this; } -void HTMLBuilder::write_tag() { +HTMLBuilder *HTMLBuilder::write_tag() { if (tag.has_data()) { tag.close(); result += tag.result; tag.reset(); } + + return this; } HTMLBuilder::HTMLBuilder() { + tag.owner = this; } HTMLBuilder::~HTMLBuilder() { diff --git a/core/html/html_builder.h b/core/html/html_builder.h index 347872d..9f2efec 100644 --- a/core/html/html_builder.h +++ b/core/html/html_builder.h @@ -4,8 +4,7 @@ #include "core/string.h" class Request; - -//This might be converted to a form validator +class HTMLBuilder; class HTMLTag { public: @@ -34,18 +33,22 @@ public: HTMLTag *reset(); HTMLTag *close(); + HTMLBuilder *f(); + bool has_data(); HTMLTag(); + + HTMLBuilder *owner; }; class HTMLBuilder { public: String result; - void comment(const String &val); + HTMLBuilder *comment(const String &val); HTMLTag *doctype(); - void doctype(const String &val); + HTMLBuilder *doctype(const String &val); HTMLTag *a(); HTMLTag *abbr(); @@ -176,139 +179,139 @@ public: //closing tags c prefix means close //Note simple tags should not have these like
//Note that I might have a few that shouldn't be here, those will be removed as I find them - void ca(); - void cabbr(); - void cacronym(); - void caddress(); - void capplet(); - void carea(); - void carticle(); - void caside(); - void caudio(); - void cb(); - void cbasefont(); - void cbdi(); - void cbdo(); - void cbig(); - void cblockquote(); - void cbody(); - void cbutton(); - void ccanvas(); + HTMLBuilder *ca(); + HTMLBuilder *cabbr(); + HTMLBuilder *cacronym(); + HTMLBuilder *caddress(); + HTMLBuilder *capplet(); + HTMLBuilder *carea(); + HTMLBuilder *carticle(); + HTMLBuilder *caside(); + HTMLBuilder *caudio(); + HTMLBuilder *cb(); + HTMLBuilder *cbasefont(); + HTMLBuilder *cbdi(); + HTMLBuilder *cbdo(); + HTMLBuilder *cbig(); + HTMLBuilder *cblockquote(); + HTMLBuilder *cbody(); + HTMLBuilder *cbutton(); + HTMLBuilder *ccanvas(); - void ccaption(); - void ccenter(); - void ccite(); - void ccode(); - void ccol(); - void ccolgroup(); - void cdata(); - void cdatalist(); - void cdd(); - void cdel(); - void cdetails(); - void cdfn(); - void cdialog(); - void cdir(); - void cdiv(); - void cdl(); - void cdt(); + HTMLBuilder *ccaption(); + HTMLBuilder *ccenter(); + HTMLBuilder *ccite(); + HTMLBuilder *ccode(); + HTMLBuilder *ccol(); + HTMLBuilder *ccolgroup(); + HTMLBuilder *cdata(); + HTMLBuilder *cdatalist(); + HTMLBuilder *cdd(); + HTMLBuilder *cdel(); + HTMLBuilder *cdetails(); + HTMLBuilder *cdfn(); + HTMLBuilder *cdialog(); + HTMLBuilder *cdir(); + HTMLBuilder *cdiv(); + HTMLBuilder *cdl(); + HTMLBuilder *cdt(); - void cem(); - void cembed(); - void cfieldset(); - void cfigcaption(); - void cfigure(); - void cfont(); - void cfooter(); - void cform(); - void cframe(); - void cframeset(); - void ch1(); - void ch2(); - void ch3(); - void ch4(); - void ch5(); - void ch6(); - void chead(); - void cheader(); - void chr(); - void chtml(); + HTMLBuilder *cem(); + HTMLBuilder *cembed(); + HTMLBuilder *cfieldset(); + HTMLBuilder *cfigcaption(); + HTMLBuilder *cfigure(); + HTMLBuilder *cfont(); + HTMLBuilder *cfooter(); + HTMLBuilder *cform(); + HTMLBuilder *cframe(); + HTMLBuilder *cframeset(); + HTMLBuilder *ch1(); + HTMLBuilder *ch2(); + HTMLBuilder *ch3(); + HTMLBuilder *ch4(); + HTMLBuilder *ch5(); + HTMLBuilder *ch6(); + HTMLBuilder *chead(); + HTMLBuilder *cheader(); + HTMLBuilder *chr(); + HTMLBuilder *chtml(); - void ci(); - void ciframe(); - void cimg(); - void cinput(); - void cins(); - void ckbd(); - void clabel(); - void clegend(); - void cli(); - void clink(); - void cmain(); - void cmap(); - void cmark(); - void cmeta(); - void cmeter(); + HTMLBuilder *ci(); + HTMLBuilder *ciframe(); + HTMLBuilder *cimg(); + HTMLBuilder *cinput(); + HTMLBuilder *cins(); + HTMLBuilder *ckbd(); + HTMLBuilder *clabel(); + HTMLBuilder *clegend(); + HTMLBuilder *cli(); + HTMLBuilder *clink(); + HTMLBuilder *cmain(); + HTMLBuilder *cmap(); + HTMLBuilder *cmark(); + HTMLBuilder *cmeta(); + HTMLBuilder *cmeter(); - void cnav(); - void cnoframes(); - void cnoscript(); - void cobject(); - void c_ol(); - void coptgroup(); - void coption(); - void coutput(); - void cp(); - void cparam(); - void cpicture(); - void cpre(); - void cprogress(); - void cq(); - void crp(); + HTMLBuilder *cnav(); + HTMLBuilder *cnoframes(); + HTMLBuilder *cnoscript(); + HTMLBuilder *cobject(); + HTMLBuilder *c_ol(); + HTMLBuilder *coptgroup(); + HTMLBuilder *coption(); + HTMLBuilder *coutput(); + HTMLBuilder *cp(); + HTMLBuilder *cparam(); + HTMLBuilder *cpicture(); + HTMLBuilder *cpre(); + HTMLBuilder *cprogress(); + HTMLBuilder *cq(); + HTMLBuilder *crp(); - void crt(); - void cruby(); - void cs(); - void csamp(); - void cscript(); - void csection(); - void cselect(); - void csmall(); - void csource(); - void cspan(); - void cstrike(); - void cstrong(); - void cstyle(); - void csub(); - void csummary(); - void csup(); + HTMLBuilder *crt(); + HTMLBuilder *cruby(); + HTMLBuilder *cs(); + HTMLBuilder *csamp(); + HTMLBuilder *cscript(); + HTMLBuilder *csection(); + HTMLBuilder *cselect(); + HTMLBuilder *csmall(); + HTMLBuilder *csource(); + HTMLBuilder *cspan(); + HTMLBuilder *cstrike(); + HTMLBuilder *cstrong(); + HTMLBuilder *cstyle(); + HTMLBuilder *csub(); + HTMLBuilder *csummary(); + HTMLBuilder *csup(); - void csvg(); - void ctable(); - void ctbody(); - void ctd(); - void ctemplateh(); - void ctextarea(); - void ctfoot(); - void cth(); - void cthead(); - void ctime(); - void ctitle(); - void ctr(); - void ctrack(); - void ctt(); - void cu(); - void cul(); - void cvar(); - void cvideo(); - void cwbr(); + HTMLBuilder *csvg(); + HTMLBuilder *ctable(); + HTMLBuilder *ctbody(); + HTMLBuilder *ctd(); + HTMLBuilder *ctemplateh(); + HTMLBuilder *ctextarea(); + HTMLBuilder *ctfoot(); + HTMLBuilder *cth(); + HTMLBuilder *cthead(); + HTMLBuilder *ctime(); + HTMLBuilder *ctitle(); + HTMLBuilder *ctr(); + HTMLBuilder *ctrack(); + HTMLBuilder *ctt(); + HTMLBuilder *cu(); + HTMLBuilder *cul(); + HTMLBuilder *cvar(); + HTMLBuilder *cvideo(); + HTMLBuilder *cwbr(); //write - void w(const String &val); + HTMLBuilder *w(const String &val); //write_escaped - void we(const String &val); + HTMLBuilder *we(const String &val); - void write_tag(); + HTMLBuilder *write_tag(); HTMLBuilder(); virtual ~HTMLBuilder();