svn path=/branches/mono-1-1-9/mono/; revision=51217
[mono.git] / mcs / class / System.Web / System.Web.UI / Html32TextWriter.cs
1 //
2 // System.Web.UI.Html32TextWriter.cs: Provides a HtmlTextWriter which writes HTML 3.2
3 //
4 // Authors:
5 //      Matthijs ter Woord  [meddochat]  (meddochat@zonnet.nl)
6 //      Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 //
8 // Copyright (C) Matthijs ter Woord, 2004
9 // (C) 2004 Novell, Inc (http://www.novell.com)
10 //
11
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32
33 using System.Collections;
34 using System.Globalization;
35 using System.IO;
36
37 namespace System.Web.UI
38 {
39         [MonoTODO ("Needs work and verification.")]
40         public class Html32TextWriter : HtmlTextWriter
41         {
42                 public Html32TextWriter (TextWriter writer) : base (writer)
43                 {
44                 }
45
46                 public Html32TextWriter (TextWriter writer, string tabString) : base (writer, tabString)
47                 {
48                 }
49
50
51                 public override void RenderBeginTag (HtmlTextWriterTag tagKey)
52                 {
53                         base.RenderBeginTag (tagKey);
54                 }
55
56                 public override void RenderEndTag ()
57                 {
58                         base.RenderEndTag ();
59                 }
60
61                 protected override string GetTagName (HtmlTextWriterTag tagKey)
62                 {
63                         if (tagKey == HtmlTextWriterTag.Unknown ||
64                             !Enum.IsDefined (typeof (HtmlTextWriterTag), tagKey))
65                                 return "";
66
67                         return tagKey.ToString ().ToLower (CultureInfo.InvariantCulture);
68                         /* The code below is here just in case we need to split things up
69                         switch (tagkey) {
70                         case HtmlTextWriterTag.Unknown:
71                                 return "";
72                         case HtmlTextWriterTag.A:
73                                 return "a";
74                         case HtmlTextWriterTag.Acronym:
75                                 return "acronym";
76                         case HtmlTextWriterTag.Address:
77                                 return "address";
78                         case HtmlTextWriterTag.Area:
79                                 return "area";
80                         case HtmlTextWriterTag.B:
81                                 return "b";
82                         case HtmlTextWriterTag.Base:
83                                 return "base";
84                         case HtmlTextWriterTag.Basefont:
85                                 return "basefont";
86                         case HtmlTextWriterTag.Bdo:
87                                 return "bdo";
88                         case HtmlTextWriterTag.Bgsound:
89                                 return "bgsound";
90                         case HtmlTextWriterTag.Big:
91                                 return "big";
92                         case HtmlTextWriterTag.Blockquote:
93                                 return "blockquote";
94                         case HtmlTextWriterTag.Body:
95                                 return "body";
96                         case HtmlTextWriterTag.Br:
97                                 return "br";
98                         case HtmlTextWriterTag.Button:
99                                 return "button";
100                         case HtmlTextWriterTag.Caption:
101                                 return "caption";
102                         case HtmlTextWriterTag.Center:
103                                 return "center";
104                         case HtmlTextWriterTag.Cite:
105                                 return "cite";
106                         case HtmlTextWriterTag.Code:
107                                 return "code";
108                         case HtmlTextWriterTag.Col:
109                                 return "col";
110                         case HtmlTextWriterTag.Colgroup:
111                                 return "colgroup";
112                         case HtmlTextWriterTag.Dd:
113                                 return "dd";
114                         case HtmlTextWriterTag.Del:
115                                 return "del";
116                         case HtmlTextWriterTag.Dfn:
117                                 return "dfn";
118                         case HtmlTextWriterTag.Dir:
119                                 return "dir";
120                         case HtmlTextWriterTag.Div:
121                                 return "table";
122                         case HtmlTextWriterTag.Dl:
123                                 return "dl";
124                         case HtmlTextWriterTag.Dt:
125                                 return "dt";
126                         case HtmlTextWriterTag.Em:
127                                 return "em";
128                         case HtmlTextWriterTag.Embed:
129                                 return "embed";
130                         case HtmlTextWriterTag.Fieldset:
131                                 return "fieldset";
132                         case HtmlTextWriterTag.Font:
133                                 return "font";
134                         case HtmlTextWriterTag.Form:
135                                 return "form";
136                         case HtmlTextWriterTag.Frame:
137                                 return "frame";
138                         case HtmlTextWriterTag.Frameset:
139                                 return "frameset";
140                         case HtmlTextWriterTag.H1:
141                                 return "h1";
142                         case HtmlTextWriterTag.H2:
143                                 return "h2";
144                         case HtmlTextWriterTag.H3:
145                                 return "h3";
146                         case HtmlTextWriterTag.H4:
147                                 return "h4";
148                         case HtmlTextWriterTag.H5:
149                                 return "h5";
150                         case HtmlTextWriterTag.H6:
151                                 return "h6";
152                         case HtmlTextWriterTag.Head:
153                                 return "head";
154                         case HtmlTextWriterTag.Hr:
155                                 return "hr";
156                         case HtmlTextWriterTag.Html:
157                                 return "html";
158                         case HtmlTextWriterTag.I:
159                                 return "i";
160                         case HtmlTextWriterTag.Iframe:
161                                 return "iframe";
162                         case HtmlTextWriterTag.Img:
163                                 return "img";
164                         case HtmlTextWriterTag.Input:
165                                 return "input";
166                         case HtmlTextWriterTag.Ins:
167                                 return "ins";
168                         case HtmlTextWriterTag.Isindex:
169                                 return "isindex";
170                         case HtmlTextWriterTag.Kbd:
171                                 return "kbd";
172                         case HtmlTextWriterTag.Label:
173                                 return "label";
174                         case HtmlTextWriterTag.Legend:
175                                 return "legend";
176                         case HtmlTextWriterTag.Li:
177                                 return "li";
178                         case HtmlTextWriterTag.Link:
179                                 return "link";
180                         case HtmlTextWriterTag.Map:
181                                 return "map";
182                         case HtmlTextWriterTag.Marquee:
183                                 return "marquee";
184                         case HtmlTextWriterTag.Menu:
185                                 return "menu";
186                         case HtmlTextWriterTag.Meta:
187                                 return "meta";
188                         case HtmlTextWriterTag.Nobr:
189                                 return "nobr";
190                         case HtmlTextWriterTag.Noframes:
191                                 return "noframes";
192                         case HtmlTextWriterTag.Noscript:
193                                 return "noscript";
194                         case HtmlTextWriterTag.Object:
195                                 return "object";
196                         case HtmlTextWriterTag.Ol:
197                                 return "ol";
198                         case HtmlTextWriterTag.Option:
199                                 return "option";
200                         case HtmlTextWriterTag.P:
201                                 return "p";
202                         case HtmlTextWriterTag.Param:
203                                 return "param";
204                         case HtmlTextWriterTag.Pre:
205                                 return "pre";
206                         case HtmlTextWriterTag.Q:
207                                 return "q";
208                         case HtmlTextWriterTag.Rt:
209                                 return "rt";
210                         case HtmlTextWriterTag.Ruby:
211                                 return "ruby";
212                         case HtmlTextWriterTag.S:
213                                 return "s";
214                         case HtmlTextWriterTag.Samp:
215                                 return "samp";
216                         case HtmlTextWriterTag.Script:
217                                 return "script";
218                         case HtmlTextWriterTag.Select:
219                                 return "select";
220                         case HtmlTextWriterTag.Small:
221                                 return "small";
222                         case HtmlTextWriterTag.Span:
223                                 return "span";
224                         case HtmlTextWriterTag.Strike:
225                                 return "strike";
226                         case HtmlTextWriterTag.Strong:
227                                 return "strong";
228                         case HtmlTextWriterTag.Style:
229                                 return "style";
230                         case HtmlTextWriterTag.Sub:
231                                 return "sub";
232                         case HtmlTextWriterTag.Sup:
233                                 return "sup";
234                         case HtmlTextWriterTag.Table:
235                                 return "table";
236                         case HtmlTextWriterTag.Tbody:
237                                 return "tbody";
238                         case HtmlTextWriterTag.Td:
239                                 return "td";
240                         case HtmlTextWriterTag.Textarea:
241                                 return "textarea";
242                         case HtmlTextWriterTag.Tfoot:
243                                 return "tfoot";
244                         case HtmlTextWriterTag.Th:
245                                 return "th";
246                         case HtmlTextWriterTag.Thead:
247                                 return "thead";
248                         case HtmlTextWriterTag.Title:
249                                 return "title";
250                         case HtmlTextWriterTag.Tr:
251                                 return "tr";
252                         case HtmlTextWriterTag.Tt:
253                                 return "tt";
254                         case HtmlTextWriterTag.U:
255                                 return "u";
256                         case HtmlTextWriterTag.Ul:
257                                 return "ul";
258                         case HtmlTextWriterTag.Var:
259                                 return "var";
260                         case HtmlTextWriterTag.Wbr:
261                                 return "wbr";
262                         case HtmlTextWriterTag.Xml:
263                                 return "xml";
264                         default:
265                                 return "";
266                         }
267                         */
268                 }
269
270                 protected override bool OnStyleAttributeRender (string name, string value, HtmlTextWriterStyle key)
271                 {
272                         return base.OnStyleAttributeRender (name, value, key);
273                 }
274
275                 protected override bool OnTagRender (string name, HtmlTextWriterTag key)
276                 {
277                         return base.OnTagRender (name, key);
278                 }
279
280                 protected override string RenderAfterContent ()
281                 {
282                         return base.RenderAfterContent ();
283                 }
284
285                 protected override string RenderAfterTag ()
286                 {
287                         return base.RenderAfterTag ();
288                 }
289
290                 protected override string RenderBeforeContent ()
291                 {
292                         return base.RenderBeforeContent ();
293                 }
294
295                 protected override string RenderBeforeTag ()
296                 {
297                         return base.RenderBeforeTag ();
298                 }
299
300                 [MonoTODO]
301                 protected Stack FontStack {
302                         get {
303                                 return null;
304                         }
305                 }
306         }
307 }
308