2 // System.Web.UI.Html32TextWriter.cs: Provides a HtmlTextWriter which writes HTML 3.2
5 // Matthijs ter Woord [meddochat] (meddochat@zonnet.nl)
6 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
8 // Copyright (C) Matthijs ter Woord, 2004
9 // (C) 2004 Novell, Inc (http://www.novell.com)
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:
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
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.
33 using System.Collections;
34 using System.Globalization;
37 namespace System.Web.UI
39 [MonoTODO ("Needs work and verification.")]
40 public class Html32TextWriter : HtmlTextWriter
42 public Html32TextWriter (TextWriter writer) : base (writer)
46 public Html32TextWriter (TextWriter writer, string tabString) : base (writer, tabString)
51 public override void RenderBeginTag (HtmlTextWriterTag tagKey)
53 base.RenderBeginTag (tagKey);
56 public override void RenderEndTag ()
61 protected override string GetTagName (HtmlTextWriterTag tagKey)
63 if (tagKey == HtmlTextWriterTag.Unknown ||
64 !Enum.IsDefined (typeof (HtmlTextWriterTag), tagKey))
67 return tagKey.ToString ().ToLower (CultureInfo.InvariantCulture);
68 /* The code below is here just in case we need to split things up
70 case HtmlTextWriterTag.Unknown:
72 case HtmlTextWriterTag.A:
74 case HtmlTextWriterTag.Acronym:
76 case HtmlTextWriterTag.Address:
78 case HtmlTextWriterTag.Area:
80 case HtmlTextWriterTag.B:
82 case HtmlTextWriterTag.Base:
84 case HtmlTextWriterTag.Basefont:
86 case HtmlTextWriterTag.Bdo:
88 case HtmlTextWriterTag.Bgsound:
90 case HtmlTextWriterTag.Big:
92 case HtmlTextWriterTag.Blockquote:
94 case HtmlTextWriterTag.Body:
96 case HtmlTextWriterTag.Br:
98 case HtmlTextWriterTag.Button:
100 case HtmlTextWriterTag.Caption:
102 case HtmlTextWriterTag.Center:
104 case HtmlTextWriterTag.Cite:
106 case HtmlTextWriterTag.Code:
108 case HtmlTextWriterTag.Col:
110 case HtmlTextWriterTag.Colgroup:
112 case HtmlTextWriterTag.Dd:
114 case HtmlTextWriterTag.Del:
116 case HtmlTextWriterTag.Dfn:
118 case HtmlTextWriterTag.Dir:
120 case HtmlTextWriterTag.Div:
122 case HtmlTextWriterTag.Dl:
124 case HtmlTextWriterTag.Dt:
126 case HtmlTextWriterTag.Em:
128 case HtmlTextWriterTag.Embed:
130 case HtmlTextWriterTag.Fieldset:
132 case HtmlTextWriterTag.Font:
134 case HtmlTextWriterTag.Form:
136 case HtmlTextWriterTag.Frame:
138 case HtmlTextWriterTag.Frameset:
140 case HtmlTextWriterTag.H1:
142 case HtmlTextWriterTag.H2:
144 case HtmlTextWriterTag.H3:
146 case HtmlTextWriterTag.H4:
148 case HtmlTextWriterTag.H5:
150 case HtmlTextWriterTag.H6:
152 case HtmlTextWriterTag.Head:
154 case HtmlTextWriterTag.Hr:
156 case HtmlTextWriterTag.Html:
158 case HtmlTextWriterTag.I:
160 case HtmlTextWriterTag.Iframe:
162 case HtmlTextWriterTag.Img:
164 case HtmlTextWriterTag.Input:
166 case HtmlTextWriterTag.Ins:
168 case HtmlTextWriterTag.Isindex:
170 case HtmlTextWriterTag.Kbd:
172 case HtmlTextWriterTag.Label:
174 case HtmlTextWriterTag.Legend:
176 case HtmlTextWriterTag.Li:
178 case HtmlTextWriterTag.Link:
180 case HtmlTextWriterTag.Map:
182 case HtmlTextWriterTag.Marquee:
184 case HtmlTextWriterTag.Menu:
186 case HtmlTextWriterTag.Meta:
188 case HtmlTextWriterTag.Nobr:
190 case HtmlTextWriterTag.Noframes:
192 case HtmlTextWriterTag.Noscript:
194 case HtmlTextWriterTag.Object:
196 case HtmlTextWriterTag.Ol:
198 case HtmlTextWriterTag.Option:
200 case HtmlTextWriterTag.P:
202 case HtmlTextWriterTag.Param:
204 case HtmlTextWriterTag.Pre:
206 case HtmlTextWriterTag.Q:
208 case HtmlTextWriterTag.Rt:
210 case HtmlTextWriterTag.Ruby:
212 case HtmlTextWriterTag.S:
214 case HtmlTextWriterTag.Samp:
216 case HtmlTextWriterTag.Script:
218 case HtmlTextWriterTag.Select:
220 case HtmlTextWriterTag.Small:
222 case HtmlTextWriterTag.Span:
224 case HtmlTextWriterTag.Strike:
226 case HtmlTextWriterTag.Strong:
228 case HtmlTextWriterTag.Style:
230 case HtmlTextWriterTag.Sub:
232 case HtmlTextWriterTag.Sup:
234 case HtmlTextWriterTag.Table:
236 case HtmlTextWriterTag.Tbody:
238 case HtmlTextWriterTag.Td:
240 case HtmlTextWriterTag.Textarea:
242 case HtmlTextWriterTag.Tfoot:
244 case HtmlTextWriterTag.Th:
246 case HtmlTextWriterTag.Thead:
248 case HtmlTextWriterTag.Title:
250 case HtmlTextWriterTag.Tr:
252 case HtmlTextWriterTag.Tt:
254 case HtmlTextWriterTag.U:
256 case HtmlTextWriterTag.Ul:
258 case HtmlTextWriterTag.Var:
260 case HtmlTextWriterTag.Wbr:
262 case HtmlTextWriterTag.Xml:
270 protected override bool OnStyleAttributeRender (string name, string value, HtmlTextWriterStyle key)
272 return base.OnStyleAttributeRender (name, value, key);
275 protected override bool OnTagRender (string name, HtmlTextWriterTag key)
277 return base.OnTagRender (name, key);
280 protected override string RenderAfterContent ()
282 return base.RenderAfterContent ();
285 protected override string RenderAfterTag ()
287 return base.RenderAfterTag ();
290 protected override string RenderBeforeContent ()
292 return base.RenderBeforeContent ();
295 protected override string RenderBeforeTag ()
297 return base.RenderBeforeTag ();
301 protected Stack FontStack {