2 * Namespace: System.Web.UI.WebControls
\r
3 * Class: TableItemStyle
\r
5 * Author: Gaurav Vaish
\r
6 * Maintainer: gvaish@iitk.ac.in
\r
7 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
\r
8 * Implementation: yes
\r
11 * (C) Gaurav Vaish (2002)
\r
15 using System.ComponentModel;
\r
17 using System.Web.UI;
\r
19 namespace System.Web.UI.WebControls
\r
21 public class TableItemStyle: Style
\r
23 private static int H_ALIGN = (0x01 << 16);
\r
24 private static int V_ALIGN = (0x01 << 17);
\r
25 private static int WRAP = (0x01 << 18);
\r
27 public TableItemStyle(): base()
\r
31 public TableItemStyle(StateBag bag): base(bag)
\r
36 [DefaultValue(HorizontalAlign.NotSet)]
\r
37 [NotifyParentProperty(true)]
\r
38 [WebCategory("Layout")]
\r
39 [WebSysDescription("TableItemStyle_HorizontalAlign")]
\r
40 public virtual HorizontalAlign HorizontalAlign
\r
45 return (HorizontalAlign)ViewState["HorizontalAlign"];
\r
46 return HorizontalAlign.NotSet;
\r
50 if(!Enum.IsDefined(typeof(HorizontalAlign), value))
\r
52 throw new ArgumentException();
\r
54 ViewState["HorizontalAlign"] = value;
\r
60 [DefaultValue(VerticalAlign.NotSet)]
\r
61 [NotifyParentProperty(true)]
\r
62 [WebCategory("Layout")]
\r
63 [WebSysDescription("TableItemStyle_VerticalAlign")]
\r
64 public virtual VerticalAlign VerticalAlign
\r
69 return (VerticalAlign)ViewState["VerticalAlign"];
\r
70 return VerticalAlign.NotSet;
\r
74 if(!Enum.IsDefined(typeof(VerticalAlign), value))
\r
76 throw new ArgumentException();
\r
78 ViewState["VerticalAlign"] = value;
\r
84 [DefaultValue(VerticalAlign.NotSet)]
\r
85 [NotifyParentProperty(true)]
\r
86 [WebCategory("Layout")]
\r
87 [WebSysDescription("TableItemStyle_Wrap")]
\r
88 public virtual bool Wrap
\r
93 return (bool)ViewState["Wrap"];
\r
98 ViewState["Wrap"] = value;
\r
102 public override void CopyFrom(Style s)
\r
104 if(s!=null && !s.IsEmpty)
\r
108 if (!(s is TableItemStyle))
\r
111 TableItemStyle from = (TableItemStyle)s;
\r
112 if(from.IsSet(H_ALIGN))
\r
114 HorizontalAlign = from.HorizontalAlign;
\r
116 if(from.IsSet(V_ALIGN))
\r
118 VerticalAlign = from.VerticalAlign;
\r
120 if(from.IsSet(WRAP))
\r
127 public override void MergeWith(Style s)
\r
129 if(s!=null && !s.IsEmpty)
\r
137 if (!(s is TableItemStyle))
\r
140 TableItemStyle with = (TableItemStyle)s;
\r
141 if(with.IsSet(H_ALIGN) && !IsSet(H_ALIGN))
\r
143 HorizontalAlign = with.HorizontalAlign;
\r
145 if(with.IsSet(V_ALIGN) && !IsSet(V_ALIGN))
\r
147 VerticalAlign = with.VerticalAlign;
\r
149 if(with.IsSet(WRAP) && !IsSet(WRAP))
\r
156 public override void Reset()
\r
159 ViewState.Remove("HorizontalAlign");
\r
161 ViewState.Remove("VerticalAlign");
\r
163 ViewState.Remove("Wrap");
\r
167 public override void AddAttributesToRender(HtmlTextWriter writer, WebControl owner)
\r
169 base.AddAttributesToRender(writer, owner);
\r
172 writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "nowrap");
\r
174 if(HorizontalAlign != HorizontalAlign.NotSet)
\r
176 // Temporarily commented out. I'm having problems in cygwin.
\r
177 //writer.AddAttribute(HtmlTextWriterAttribute.Align, TypeDescriptor.GetConverter(typeof(HorizontalAlign)).ConvertToString(HorizontalAlign));
\r
178 writer.AddAttribute(HtmlTextWriterAttribute.Align, HorizontalAlign.ToString ());
\r
180 if(VerticalAlign != VerticalAlign.NotSet)
\r
182 // Temporarily commented out. I'm having problems in cygwin.
\r
183 //writer.AddAttribute(HtmlTextWriterAttribute.Valign, TypeDescriptor.GetConverter(typeof(VerticalAlign)).ConvertToString(VerticalAlign));
\r
184 writer.AddAttribute(HtmlTextWriterAttribute.Valign, VerticalAlign.ToString ());
\r