2 // System.Web.UI.HtmlControls.HtmlImage.cs
5 // Dick Porter <dick@ximian.com>
7 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 using System.ComponentModel;
30 using System.Globalization;
31 using System.Security.Permissions;
33 namespace System.Web.UI.HtmlControls
36 [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
37 [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
40 [ControlBuilder (typeof (HtmlEmptyTagControlBuilder))]
42 [ControlBuilder (typeof (HtmlControlBuilder))]
44 public class HtmlImage : HtmlControl
46 public HtmlImage () : base ("img")
51 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
52 [WebSysDescription("")]
53 [WebCategory("Layout")]
57 string align = Attributes["align"];
60 return (String.Empty);
67 Attributes.Remove ("align");
69 Attributes["align"] = value;
75 [WebSysDescription("")]
76 [WebCategory("Appearance")]
77 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
84 string alt = Attributes["alt"];
87 return (String.Empty);
94 Attributes.Remove ("alt");
96 Attributes["alt"] = value;
102 [WebSysDescription("")]
103 [WebCategory("Appearance")]
104 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
108 string border = Attributes["border"];
110 if (border == null) {
113 return (Int32.Parse (border, CultureInfo.InvariantCulture));
118 Attributes.Remove ("border");
120 Attributes["border"] = value.ToString ();
126 [WebSysDescription("")]
127 [WebCategory("Layout")]
128 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
132 string height = Attributes["height"];
134 if (height == null) {
137 return (Int32.Parse (height, CultureInfo.InvariantCulture));
142 Attributes.Remove ("height");
144 Attributes["height"] = value.ToString ();
150 [WebSysDescription("")]
151 [WebCategory("Behavior")]
152 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
159 string src = Attributes["src"];
162 return (String.Empty);
169 Attributes.Remove ("src");
171 Attributes["src"] = value;
177 [WebSysDescription("")]
178 [WebCategory("Layout")]
179 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
183 string width = Attributes["width"];
189 return (Int32.Parse (width, CultureInfo.InvariantCulture));
194 Attributes.Remove ("width");
196 Attributes["width"] = value.ToString ();
201 protected override void RenderAttributes (HtmlTextWriter w)
203 PreProcessRelativeReference (w, "src");
204 base.RenderAttributes (w);
206 /* MS closes the HTML element at the end of
207 * the attributes too, according to the nunit