00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _HTMLATTRIBUTELIST_H_
00025 #define _HTMLATTRIBUTELIST_H_ 1
00026
00027 #ifdef __GNUG__
00028 # pragma interface
00029 #endif
00030
00037 #include <string>
00038 #include <iostream>
00039 #include <vector>
00040
00041 #include "cgicc/CgiDefs.h"
00042 #include "cgicc/MStreamable.h"
00043 #include "cgicc/HTMLAttribute.h"
00044
00045 namespace cgicc {
00046
00047
00048
00049
00050
00051 #ifdef WIN32
00052 template class CGICC_API std::vector<HTMLAttribute>;
00053 #endif
00054
00069 class CGICC_API HTMLAttributeList
00070 {
00071 public:
00072
00073
00074
00077
00083 HTMLAttributeList();
00084
00091 HTMLAttributeList(const HTMLAttribute& head);
00092
00099 HTMLAttributeList(const HTMLAttributeList& list);
00100
00106 ~HTMLAttributeList();
00108
00109
00110
00111
00114
00121 HTMLAttributeList&
00122 operator= (const HTMLAttributeList &list);
00124
00125
00126
00127
00132
00140 HTMLAttributeList&
00141 set(const std::string& name);
00142
00151 HTMLAttributeList&
00152 set(const std::string& name,
00153 const std::string& value);
00155
00158
00165 void
00166 render(std::ostream& out) const;
00168
00169 private:
00170 std::vector<HTMLAttribute> fAttributes;
00171 };
00172
00173
00174
00175
00176
00188 inline HTMLAttributeList
00189 set(const std::string& name)
00190 { return HTMLAttributeList(HTMLAttribute(name)); }
00191
00204 inline HTMLAttributeList
00205 set(const std::string& name,
00206 const std::string& value)
00207 { return HTMLAttributeList(HTMLAttribute(name, value)); }
00208
00209 }
00210
00211 #endif