X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2FSystem.Web.UI.HtmlControls%2FHtmlImage.cs;h=7bf0cdff03534fdaa9239295c89471d35468f795;hb=a5e40870bd3bb18e1681afed6c71e7edfdb80534;hp=b08d6575d79d8198c6678db2441cdb5bfb96f7b0;hpb=234225d112c4b018b8d1796f4c06a15812137500;p=mono.git diff --git a/mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlImage.cs b/mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlImage.cs old mode 100755 new mode 100644 index b08d6575d79..7bf0cdff035 --- a/mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlImage.cs +++ b/mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlImage.cs @@ -1,122 +1,224 @@ -/* System.Web.UI.HtmlControls -* Authors -* Leen Toelen (toelen@hotmail.com) -*/ - -using System; -using System.ComponentModel; -using System.Web; -using System.Web.UI; -using System.Globalization; - -namespace System.Web.UI.HtmlControls{ - [ControlBuilder (typeof (HtmlControlBuilder))] - public class HtmlImage : HtmlControl{ - - public HtmlImage(): base("img"){} - - protected override void RenderAttributes(HtmlTextWriter writer){ - PreProcessRelativeReference(writer,"src"); - base.RenderAttributes(writer); - writer.Write(" /"); - } - - [DefaultValue("")] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Layout")] - public string Align{ - get{ - string attr = Attributes["align"]; - if (attr != null){ - return attr; - } - return String.Empty; - } - set{ - Attributes["align"] = AttributeToString(value); - } - } - - [DefaultValue("")] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Appearance")] - public string Alt{ - get{ - string attr = Attributes["alt"]; - if (attr != null){ - return attr; - } - return String.Empty; - } - set{ - Attributes["alt"] = AttributeToString(value); - } - } - - [DefaultValue(0)] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Appearance")] - public int Border{ - get{ - string attr = Attributes["border"]; - if (attr != null){ - return Int32.Parse(attr,CultureInfo.InvariantCulture); - } - return -1; - } - set{ - Attributes["border"] = AttributeToString(value); - } - } - - [DefaultValue(100)] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Layout")] - public int Height - { - get { - string attr = Attributes ["height"]; - if (attr != null) - return Int32.Parse (attr, CultureInfo.InvariantCulture); - - return -1; - } - - set { Attributes["height"] = AttributeToString (value); } - } - - [DefaultValue("")] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Behavior")] - public string Src{ - get{ - string attr = Attributes["src"]; - if (attr != null){ - return attr; - } - return String.Empty; - } - set{ - Attributes["src"] = AttributeToString(value); - } - } - - [DefaultValue(100)] - [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] - [WebCategory("Layout")] - public int Width{ - get{ - string attr = Attributes["width"]; - if (attr != null){ - return Int32.Parse(attr,CultureInfo.InvariantCulture); - } - return -1; - } - set{ - Attributes["width"] = AttributeToString(value); - } - } - - } // class HtmlImage -} // namespace System.Web.UI.HtmlControls - +// +// System.Web.UI.HtmlControls.HtmlImage.cs +// +// Author: +// Dick Porter +// +// Copyright (C) 2005 Novell, Inc (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +using System.ComponentModel; +using System.Globalization; +using System.Security.Permissions; + +namespace System.Web.UI.HtmlControls +{ + // CAS + [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] + [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] + // attributes +#if NET_2_0 + [ControlBuilder (typeof (HtmlEmptyTagControlBuilder))] +#else + [ControlBuilder (typeof (HtmlControlBuilder))] +#endif + public class HtmlImage : HtmlControl + { + public HtmlImage () : base ("img") + { + } + + [DefaultValue ("")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] + [WebSysDescription("")] + [WebCategory("Layout")] + public string Align + { + get { + string align = Attributes["align"]; + + if (align == null) { + return (String.Empty); + } + + return (align); + } + set { + if (value == null) { + Attributes.Remove ("align"); + } else { + Attributes["align"] = value; + } + } + } + + [DefaultValue ("")] + [WebSysDescription("")] + [WebCategory("Appearance")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] +#if NET_2_0 + [Localizable (true)] +#endif + public string Alt + { + get { + string alt = Attributes["alt"]; + + if (alt == null) { + return (String.Empty); + } + + return (alt); + } + set { + if (value == null) { + Attributes.Remove ("alt"); + } else { + Attributes["alt"] = value; + } + } + } + + [DefaultValue (0)] + [WebSysDescription("")] + [WebCategory("Appearance")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] + public int Border + { + get { + string border = Attributes["border"]; + + if (border == null) { + return (-1); + } else { + return (Int32.Parse (border, CultureInfo.InvariantCulture)); + } + } + set { + if (value == -1) { + Attributes.Remove ("border"); + } else { + Attributes["border"] = value.ToString (); + } + } + } + + [DefaultValue (100)] + [WebSysDescription("")] + [WebCategory("Layout")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] + public int Height + { + get { + string height = Attributes["height"]; + + if (height == null) { + return (-1); + } else { + return (Int32.Parse (height, CultureInfo.InvariantCulture)); + } + } + set { + if (value == -1) { + Attributes.Remove ("height"); + } else { + Attributes["height"] = value.ToString (); + } + } + } + + [DefaultValue ("")] + [WebSysDescription("")] + [WebCategory("Behavior")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] +#if NET_2_0 + [UrlProperty] +#endif + public string Src + { + get { + string src = Attributes["src"]; + + if (src == null) { + return (String.Empty); + } + + return (src); + } + set { + if (value == null) { + Attributes.Remove ("src"); + } else { + Attributes["src"] = value; + } + } + } + + [DefaultValue (100)] + [WebSysDescription("")] + [WebCategory("Layout")] + [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] + public int Width + { + get { + string width = Attributes["width"]; + + if (width == null) { + return (-1); + } + else { + return (Int32.Parse (width, CultureInfo.InvariantCulture)); + } + } + set { + if (value == -1) { + Attributes.Remove ("width"); + } else { + Attributes["width"] = value.ToString (); + } + } + } + + protected override void RenderAttributes (HtmlTextWriter w) + { + PreProcessRelativeReference (w, "src"); + + /* MS does not seem to render the src attribute if it + * is empty. Firefox, at least, will fetch the current + * page as the src="" if other img attributes exist. + */ + string src = Attributes["src"]; + if (src == null || src.Length == 0) + Attributes.Remove ("src"); + + base.RenderAttributes (w); + + /* MS closes the HTML element at the end of + * the attributes too, according to the nunit + * tests + */ + w.Write (" /"); + } + } +} + +