Browse Source

Add lots of work from Gaurav

svn path=/trunk/mcs/; revision=1209
Miguel de Icaza 24 years ago
parent
commit
9ee230df00
36 changed files with 1735 additions and 225 deletions
  1. 76 0
      mcs/class/System.Web/System.Web.UI.WebControls/AdCreatedEventArgs.cs
  2. 15 0
      mcs/class/System.Web/System.Web.UI.WebControls/AdCreatedEventHandler.cs
  3. 81 0
      mcs/class/System.Web/System.Web.UI.WebControls/AdRotator.cs
  4. 146 0
      mcs/class/System.Web/System.Web.UI.WebControls/BaseDataList.cs
  5. 172 0
      mcs/class/System.Web/System.Web.UI.WebControls/BaseValidator.cs
  6. 25 0
      mcs/class/System.Web/System.Web.UI.WebControls/BorderStyle.cs
  7. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/ButtonColumnType.cs
  8. 21 0
      mcs/class/System.Web/System.Web.UI.WebControls/CalendarSelectionMode.cs
  9. 145 0
      mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs
  10. 21 0
      mcs/class/System.Web/System.Web.UI.WebControls/DayNameFormat.cs
  11. 25 0
      mcs/class/System.Web/System.Web.UI.WebControls/FirstDayOfWeek.cs
  12. 197 0
      mcs/class/System.Web/System.Web.UI.WebControls/FontInfo.cs
  13. 28 0
      mcs/class/System.Web/System.Web.UI.WebControls/FontSize.cs
  14. 21 0
      mcs/class/System.Web/System.Web.UI.WebControls/GridLines.cs
  15. 22 0
      mcs/class/System.Web/System.Web.UI.WebControls/HorizontalAlign.cs
  16. 77 0
      mcs/class/System.Web/System.Web.UI.WebControls/HyperLink.cs
  17. 25 0
      mcs/class/System.Web/System.Web.UI.WebControls/IRepeatInfoUser.cs
  18. 27 0
      mcs/class/System.Web/System.Web.UI.WebControls/ImageAlign.cs
  19. 25 0
      mcs/class/System.Web/System.Web.UI.WebControls/ListItemType.cs
  20. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/ListSelectionMode.cs
  21. 20 0
      mcs/class/System.Web/System.Web.UI.WebControls/NextPrevFormat.cs
  22. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/PagerMode.cs
  23. 20 0
      mcs/class/System.Web/System.Web.UI.WebControls/PagerPosition.cs
  24. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/RepeatDirection.cs
  25. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/RepeatLayout.cs
  26. 35 0
      mcs/class/System.Web/System.Web.UI.WebControls/TODO
  27. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/TextAlign.cs
  28. 20 0
      mcs/class/System.Web/System.Web.UI.WebControls/TextBoxMode.cs
  29. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/TitleFormat.cs
  30. 26 0
      mcs/class/System.Web/System.Web.UI.WebControls/UnitType.cs
  31. 24 0
      mcs/class/System.Web/System.Web.UI.WebControls/ValidationCompareOperator.cs
  32. 22 0
      mcs/class/System.Web/System.Web.UI.WebControls/ValidationDataType.cs
  33. 20 0
      mcs/class/System.Web/System.Web.UI.WebControls/ValidationSummaryDisplayMode.cs
  34. 20 0
      mcs/class/System.Web/System.Web.UI.WebControls/ValidatorDisplay.cs
  35. 21 0
      mcs/class/System.Web/System.Web.UI.WebControls/VerticalAlign.cs
  36. 225 225
      mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs

+ 76 - 0
mcs/class/System.Web/System.Web.UI.WebControls/AdCreatedEventArgs.cs

@@ -0,0 +1,76 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     AdCreatedEventArgs
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>
+ * Status:  10??%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Collections;
+using System.Web;
+using System.Web.UI;
+
+namespace System.Web.UI.WebControls
+{
+	public sealed class AdCreatedEventArgs: EventArgs
+	{
+
+		private IDictionary adProperties;
+		private string      alternateText = string.Empty;
+		private string      imageUrl      = string.Empty;
+		private string      navigateUrl   = string.Empty;
+
+		public AdCreatedEventArgs(IDictionary adProperties)
+		{
+			this.adProperties = adProperties;
+		}
+		
+		public IDictionary AdProperties
+		{
+			get
+			{
+				return this.adProperties;
+			}
+		}
+		
+		public string AlternateText
+		{
+			get
+			{
+				return alternateText;
+			}
+			set
+			{
+				alternateText = value;
+			}
+		}
+		
+		public string ImageUrl
+		{
+			get
+			{
+				return imageUrl;
+			}
+			set
+			{
+				imageUrl = value;
+			}
+		}
+		
+		public string NavigateUrl
+		{
+			get
+			{
+				return navigateUrl;
+			}
+			set
+			{
+				navigateUrl = value;
+			}
+		}
+	}
+}

+ 15 - 0
mcs/class/System.Web/System.Web.UI.WebControls/AdCreatedEventHandler.cs

@@ -0,0 +1,15 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     AdCreatedEventHandler
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>
+ * Status:  10??%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public delegate void AdCreatedEventHandler(object sender, AdCreatedEventArgs e);
+}

+ 81 - 0
mcs/class/System.Web/System.Web.UI.WebControls/AdRotator.cs

@@ -0,0 +1,81 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     AdRotator
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>
+ * Status:  10??%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Collections;
+
+namespace System.Web.UI.WebControls
+{
+	public class AdRotator: WebControl
+	{
+
+		private string advertisementFile;
+		private string keywordFilter;
+		private string target;
+
+		public event AdCreatedEventHandler AdCreated;
+
+		public AdRotator()
+		{
+			advertisementFile = string.Empty;
+			keywordFilter     = string.Empty;
+			target            = string.Empty;
+		}
+		
+		public string AdvertisementFile
+		{
+			get
+			{
+				return advertisementFile;
+			}
+			set
+			{
+				advertisementFile = value;
+			}
+		}
+		
+		public string KeywordFilter
+		{
+			get
+			{
+				return keywordFilter;
+			}
+			set
+			{
+				keywordFilter = value;
+			}
+		}
+		
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set
+			{
+				target = value;
+			}
+		}
+		
+		protected override void Render(HtmlTextWriter writer)
+		{
+			HyperLink hLink = new HyperLink();
+			Image     image;
+
+			AttributeCollection attributeColl = base.Attributes;
+			ICollection keys = attributeColl.Keys;
+			IEnumerator iterator = keys.GetEnumerator();
+			
+			
+		}
+	}
+}

+ 146 - 0
mcs/class/System.Web/System.Web.UI.WebControls/BaseDataList.cs

@@ -0,0 +1,146 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     BaseDataList
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  20%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Web;
+using System.Web.UI;
+
+namespace System.Web.UI.WebControls
+{
+	public abstract class BaseDataList: WebControl
+	{
+
+		private int cellPadding = -1;
+		private int cellSpacing = 0;
+		private object dataSource = null;
+		private string dataKeyField = String.Empty;
+		private DataKeyCollection dataKeys;		// TODO: From where do get the values into it?
+		private string dataMember = String.Empty;
+		private GridLines gridLines = GridLines.Both;
+		private HorizontalAlign hAlign = HorizontalAlign.NotSet;
+		
+		public BaseDataList()
+		{
+			// TODO Something
+		}
+		
+		public static bool IsBindableType(Type type)
+		{
+			//TODO: To see what has to be here
+			return false; //for the time being, to be able to make it compile
+		}
+		
+		public virtual int CellPadding
+		{
+			get
+			{
+				return cellPadding;
+			}
+			set
+			{
+				cellPadding = value;
+			}
+		}
+		
+		public virtual int CellSpacing
+		{
+			get
+			{
+				return cellSpacing;
+			}
+			set
+			{
+				cellSpacing = value;
+			}
+		}
+		
+		public virtual string DataKeyField
+		{
+			get
+			{
+				return dataKeyField;
+			}
+			set
+			{
+				dataKeyField = value;
+			}
+		}
+		
+		public DataKeysCollection DataKeys
+		{
+			get
+			{
+				return dataKeys;
+			}
+		}
+		
+		public string DataMember
+		{
+			get
+			{
+				return dataMember;
+			}
+			set
+			{
+				dataMember = value;
+			}
+		}
+		
+		public virtual object DataSource
+		{
+			get
+			{
+				return dataSource;
+			}
+			set
+			{
+				dataSource = value;
+			}
+		}
+		
+		public virtual GridLines GridLines
+		{
+			get
+			{
+				return gridLines;
+			}
+			set
+			{
+				gridLines = value;
+			}
+		}
+		
+		public virtual HorizontalAlign HorizontalAlign
+		{
+			get
+			{
+				return hAlign;
+			}
+			set
+			{
+				hAlign = value;
+			}
+		}
+		
+		public override void DataBind()
+		{
+			// TODO: have to write the implementation
+			// I am not sure of whether it will be of any use here since 
+			// I am an abstract class, and have no identity of myself.
+		}
+		
+		//TODO: Check - where are the following abstract methods?
+		/*
+		 * CreateControlHierarchy(bool)
+		 * PrepareControlHierarchy()
+		*/
+	}
+}

+ 172 - 0
mcs/class/System.Web/System.Web.UI.WebControls/BaseValidator.cs

@@ -0,0 +1,172 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     BaseValidator
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  20%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Web;
+using System.Web.UI;
+using System.Drawing;
+
+namespace System.Web.UI.WebControls
+{
+	public abstract class BaseValidator: Label, IValidator
+	{
+		//
+		private PropertyDescriptor pDesc;
+		private string ctValid = String.Empty;
+		private ValidatorDisplay vDisp = ValidatorDisplay.Static;
+		private bool enableClientScript; //TODO: check the default value := false;
+		private bool enabled = true;
+		private string errorMessage = String.Empty;
+		private Color foreColor = Color.Red;
+		private bool isValid = true;
+		private bool propertiesValid;
+		private bool renderUplevel;
+
+		public static PropertyDescriptor GetValidationProperty(object component)
+		{
+			//TODO: Have to workout this one!
+			return null;
+		}
+		
+		public string ControlToValidate
+		{
+			get
+			{
+				return ctValid;
+			}
+			set
+			{
+				ctValid = value;
+			}
+		}
+		
+		public ValidatorDisplay Display
+		{
+			get
+			{
+				return vDisp;
+			}
+			set
+			{
+				//TODO: Throw new exception ArgumentException("....") if the value is not valid
+				vDisp = value;
+			}
+		}
+		
+		public bool EnableClientScript
+		{
+			get
+			{
+				return enableClientScript;
+			}
+			set
+			{
+				enableClientScript = value;
+			}
+		}
+		
+		public override bool Enabled
+		{
+			get
+			{
+				return enabled;
+			}
+			set
+			{
+				enabled = value;
+			}
+		}
+		
+		public string ErrorMessage
+		{
+			get
+			{
+				return errorMessage;
+			}
+			set
+			{
+				errorMessage = value;
+			}
+		}
+		
+		public override Color ForeColor
+		{
+			get
+			{
+				return foreColor;
+			}
+			set
+			{
+				foreColor = value;
+			}
+		}
+		
+		public bool IsValid
+		{
+			get
+			{
+				return isValid;
+			}
+			set
+			{
+				isValid = value;
+			}
+		}
+		
+		public void Validate()
+		{
+			// TODO: write the validation code
+			// TODO: update the value of isValid
+		}
+		
+		protected BaseValidator()
+		{
+			// Dummy Constructor
+		}
+		
+		protected bool PropertiesValid
+		{
+			get
+			{
+				// TODO: throw HttpException, but when? How do I know about all the controls?
+				return propertiesValid;
+			}
+		}
+		
+		protected bool RenderUplevel
+		{
+			get
+			{
+				//TODO: To set the value of renderUplevel. Problem: when, how?
+				return renderUplevel;
+			}
+		}
+		
+		protected void CheckControlValidationProperty(string name, string propertyName)
+		{
+			//TODO: I think it needs to be overridden. I may be wrong!
+			//TODO: When to throw HttpException(...)
+		}
+		
+		protected virtual bool ControlPropertiesValid()
+		{
+			// Do I need to do anything? But what?
+			// What do I do with ControlToValidate?
+			return true;
+		}
+		
+		protected virtual bool DetermineRenderUplevel()
+		{
+			// From where?
+			return true;
+		}
+	}
+}

+ 25 - 0
mcs/class/System.Web/System.Web.UI.WebControls/BorderStyle.cs

@@ -0,0 +1,25 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration: BorderStyle
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ *
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI
+{
+	public enum BorderStyle
+	{
+		NotSet,
+		None,
+		Dotted,
+		Dashed,
+		Solid,
+		Double,
+		Groove,
+		Ridge,
+		Inset,
+		Outset
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ButtonColumnType.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace:   System.Web.UI.WebControls
+ * Enumeration: ButtonColumnType
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ *Status: 100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ButtonColumnType
+	{
+		LinkButton,
+		PushButton
+	}
+}

+ 21 - 0
mcs/class/System.Web/System.Web.UI.WebControls/CalendarSelectionMode.cs

@@ -0,0 +1,21 @@
+/**
+ * Namespace:   System.Web.UI.WebControls
+ * Enumeration: CalendarSelectionMode
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status: 100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum CalendarSelectionMode
+	{
+		None,
+		Day,
+		DayWeek,
+		DayWeekMonth
+	}
+}

+ 145 - 0
mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs

@@ -0,0 +1,145 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     DataList
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  20%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Web;
+using System.Web.UI;
+
+namespace System.Web.UI.WebControls
+{
+	public class DataList: BaseDataList, INamingContainer, IRepeatInfoUser
+	{
+		//
+		public const string CancelCommandName = "Cancel";
+		public const string DeleteCommandName = "Delete";
+		public const string EditCommandName = "Edit";
+		public const string SelectCommandName = "Select";
+		public const string UpdateCommandName = "Update";
+
+		//TODO: From where will I update the values of the following ItemStyles?
+		private TableItemStyle alternatingItemStyle;
+		private TableItemStyle editItemStyle;
+		private TableItemStyle footerStyle;
+
+		private ITemplate alternatingItemTemplate;
+		private ITemplate editItemTemplate;
+		private ITemplate footerTemplate;
+
+		private int editItemIndex;
+		private bool extractTemplateRows;
+		
+		public DataList()
+		{
+			alternatingItemStyle = new TableItemStyle();
+			editItemStyle        = new TableItemStyle();
+			footerStyle          = new TableItemStyle();
+
+			alternatingItemTemplate = null;
+			editItemTemplate        = null;
+			
+			extractTemplateRows = false;
+		}
+		
+		public virtual TableItemStyle AlternatingItemStyle
+		{
+			get
+			{
+				return alternatingItemStyle;
+			}
+		}
+		
+		public virtual ITemplate AlternatingItemTemplate
+		{
+			get
+			{
+				return alternatingItemTemplate;
+			}
+			set
+			{
+				alternatingItemTemplate = value;
+			}
+		}
+		
+		public virtual int EditItemIndex
+		{
+			get
+			{
+				return editItemIndex;
+			}
+			set
+			{
+				editItemIndex = value;
+			}
+		}
+		
+		public virtual TableItemStyle EditItemStyle
+		{
+			get
+			{
+				return editItemStyle;
+			}
+			set
+			{
+				editItemStyle = value;
+			}
+		}
+		
+		//TODO: To implement the following functions found in the DataList abstract class
+		/*
+		 * PrepareControlHierarchy()
+		 * CreateControlHeirarchy(bool)
+		 */
+		 
+		public virtual ITemplate editItemTemplate
+		{
+			get
+			{
+				return editItemTemplate;
+			}
+			set
+			{
+				editItemTemplate = value;
+			}
+		}
+
+		public virtual bool ExtractTemplateRows
+		{
+			get
+			{
+				return extractTemplateRows;
+			}
+			set
+			{
+				extractTemplateRows = value;
+			}
+		}
+		
+		public virtual TableItemStyle FooterStyle
+		{
+			get
+			{
+				return footerStyle;
+			}
+		}
+		
+		public virtual ITemplate FooterTemplate
+		{
+			get
+			{
+				return footerTemplate;
+			}
+			set
+			{
+				footerTemplate = value;
+			}
+		}
+	}
+}

+ 21 - 0
mcs/class/System.Web/System.Web.UI.WebControls/DayNameFormat.cs

@@ -0,0 +1,21 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     DayNameFormat
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum DayNameFormat
+	{
+		Full,
+		Short,
+		FirstLetter,
+		FirstTwoLetters
+	}
+}

+ 25 - 0
mcs/class/System.Web/System.Web.UI.WebControls/FirstDayOfWeek.cs

@@ -0,0 +1,25 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     FirstDayOfWeek
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum FirstDayOfWeek
+	{
+		Sunday,
+		Monday,
+		Tuesday,
+		Wednesday,
+		Thursday,
+		Friday,
+		Saturday,
+		Default
+	}
+}

+ 197 - 0
mcs/class/System.Web/System.Web.UI.WebControls/FontInfo.cs

@@ -0,0 +1,197 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     FontInfo
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  80%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Reflection;
+using System.Web;
+using System.Web.UI;
+using System.Drawing;
+
+namespace System.Web.UI.WebControls
+{
+	public sealed class FontInfo
+	{
+		private bool bold;
+		private bool italic;
+		private bool overline;
+		private bool strikeout;
+		private bool underline;
+		private string name;		//TODO: This will have the value of names[0] by default
+		private string[] names;		//TODO: How do get the list of fonts available?
+		private FontUnit size = FontUnit.Empty;
+		
+		internal FontInfo()
+		{
+			bold      = false;
+			italic    = false;
+			overline  = false;
+			strikeout = false;
+			underline = false;
+			name      = string.Empty;
+		}
+		
+		public bool Bold
+		{
+			get
+			{
+				return bold;
+			}
+			set
+			{
+				bold = value;
+			}
+		}
+		
+		public bool Italic
+		{
+			get
+			{
+				return italic;
+			}
+			set
+			{
+				italic = value;
+			}
+		}
+		
+		public bool Overline
+		{
+			get
+			{
+				return overline;
+			}
+			set
+			{
+				overline = value;
+			}
+		}
+		
+		public bool Strikeout
+		{
+			get
+			{
+				return strikeout;
+			}
+			set
+			{
+				strikeout = value;
+			}
+		}
+		
+		public bool Underline
+		{
+			get
+			{
+				return underline;
+			}
+			set
+			{
+				underline = value;
+			}
+		}
+		
+		public string Name
+		{
+			get
+			{
+				return name;
+			}
+			set
+			{
+				name = value;
+			}
+		}
+		
+		public string[] Names
+		{
+			get
+			{
+				return names;
+			}
+			set
+			{
+				names = value;
+				name = names[0];
+			}
+		}
+
+		//TODO: To throw exception if the index is negative
+		public FontUnit Size
+		{
+			get
+			{
+				return size;
+			}
+			set
+			{
+				size = value;
+			}
+		}
+		
+		public void CopyFrom(FontInfo from)
+		{
+			//TODO: What a rubbish way to accomplish the task
+			/*this.bold = from.Bold;
+			this.italic = from.Italic;
+			this.name = from.Name;
+			this.names = from.Names;
+			this.overline = from.Overline;
+			this.size = from.Size;*/
+			//TODO: Let me try Relflection
+			Type t = from.GetType();
+			MethodInfo[] fi = t.GetMethods();
+			foreach(MethodInfo f in fi)
+			{
+				//System.Console.WriteLine("Field: {0}", f.Name);
+				if(f.Name.StartsWith("get_"))
+				{
+					System.Console.WriteLine("\tStarts with get_");
+				}
+			}
+		}
+		
+		private void ListFields(FontInfo from)
+		{
+			Type t = from.GetType();
+			MethodInfo[] fi = t.GetMethods();
+			foreach(MethodInfo f in fi)
+			{
+				System.Console.WriteLine("Field: {0}", f.Name);
+				if(f.Name.StartsWith("get_"))
+				{
+					System.Console.WriteLine("\tStarts with get_");
+				}
+			}
+		}
+
+		//TODO: after CopyFrom is implemented
+		public void MergeWith(FontInfo with)
+		{
+		}
+
+		public override string ToString()
+		{
+			string retVal = this.name;
+			if(this.size != FontUnit.Empty)
+			{
+				this.name += ("," + this.size);
+			}
+			return retVal;
+		}
+
+		/*
+		protected object MemberwiseClone()
+		{
+		}
+//*/
+
+	}
+}

+ 28 - 0
mcs/class/System.Web/System.Web.UI.WebControls/FontSize.cs

@@ -0,0 +1,28 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     FontSize
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum FontSize
+	{
+		NotSet,
+		AsUnit,
+		Smaller,
+		Larger,
+		XXSmall,
+		XSmall,
+		Small,
+		Medium,
+		Large,
+		XLarge,
+		XXLarge
+	}
+}

+ 21 - 0
mcs/class/System.Web/System.Web.UI.WebControls/GridLines.cs

@@ -0,0 +1,21 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     GridLines
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum GridLines
+	{
+		None,
+		Horizontal,
+		Vertical,
+		Both
+	}
+}

+ 22 - 0
mcs/class/System.Web/System.Web.UI.WebControls/HorizontalAlign.cs

@@ -0,0 +1,22 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     HorizontalAlign
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum HorizontalAlign
+	{
+		NotSet,
+		Left,
+		Center,
+		Right,
+		Justify
+	}
+}

+ 77 - 0
mcs/class/System.Web/System.Web.UI.WebControls/HyperLink.cs

@@ -0,0 +1,77 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     HyperLink
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>
+ * Status:  10% (??)
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public class HyperLink: WebControl
+	{
+		string imageUrl;
+		string navigateUrl;
+		string target;
+		string text;
+		
+		public HyperLink()
+		{
+			imageUrl = string.Empty;
+			navigateUrl = string.Empty;
+			target = string.Empty;
+			text = string.Empty;
+		}
+		
+		public virtual string ImageUrl
+		{
+			get
+			{
+				return imageUrl;
+			}
+			set
+			{
+				imageUrl = value;
+			}
+		}
+		
+		public string NavigateUrl
+		{
+			get
+			{
+				return navigateUrl;
+			}
+			set
+			{
+				navigateUrl = value;
+			}
+		}
+		
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set
+			{
+				target = value;
+			}
+		}
+		
+		public virtual string Text
+		{
+			get
+			{
+				return text;
+			}
+			set
+			{
+				text = value;
+			}
+		}
+	}
+}

+ 25 - 0
mcs/class/System.Web/System.Web.UI.WebControls/IRepeatInfoUser.cs

@@ -0,0 +1,25 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Interface: IRepeatInfoUser
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Web;
+using System.Web.UI;
+
+namespace System.Web.UI.WebControls
+{
+	public interface IRepeatInfoUser
+	{
+		bool HasFooter { get; }
+		bool HasHeader { get; }
+		bool HasSeparators { get; }
+		int  RepeatedItemCount { get; }
+	}
+}

+ 27 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ImageAlign.cs

@@ -0,0 +1,27 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ImageAlign
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ImageAlign
+	{
+		NotSet,
+		Left,
+		Right,
+		BaseLine,
+		Top,
+		Middle,
+		Bottom,
+		AbsBottom,
+		AbsMiddle,
+		TextTop
+	}
+}

+ 25 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ListItemType.cs

@@ -0,0 +1,25 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ListItemType
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ListItemType
+	{
+		Header,
+		Footer,
+		Item,
+		AlternatingItem,
+		SelectedItem,
+		EditItem,
+		Separator,
+		Pager
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ListSelectionMode.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ListSelectionMode
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ListSelectionMode
+	{
+		Single,
+		Multiple
+	}
+}

+ 20 - 0
mcs/class/System.Web/System.Web.UI.WebControls/NextPrevFormat.cs

@@ -0,0 +1,20 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     NextPrevFormat
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum NextPrevFormat
+	{
+		CustomText,
+		ShortMonth,
+		FullMonth
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/PagerMode.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     PagerMode
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum PagerMode
+	{
+		NextPrev,
+		NumericPages
+	}
+}

+ 20 - 0
mcs/class/System.Web/System.Web.UI.WebControls/PagerPosition.cs

@@ -0,0 +1,20 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     PagerPosition
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum PagerPosition
+	{
+		Bottom,
+		Top,
+		TopAndBottom
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/RepeatDirection.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     RepeatDirection
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum RepeatDirection
+	{
+		Horizontal,
+		Vertical
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/RepeatLayout.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     RepeatLayout
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum RepeatLayout
+	{
+		Table,
+		Flow
+	}
+}

+ 35 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TODO

@@ -0,0 +1,35 @@
+Classes to be designed:
+
+AdCreatedEventArgs
+AdRotator
+BaseCompareValidator
+BaseDataList
+BaseValidator
+BoundColumn
+Button
+ButtonColumn
+Calendar
+CalendarDay
+CheckBox
+CheckBoxList
+CommandEventArgs
+CompareValidator
+CustomValidator
+DataGrid
+DataGridColumn
+DataGridColumnCollection
+DataGridCommandEventArgs
+DataGridItem
+DataGridItemCollection
+DataGridItemEventArgs
+DataGridPageChangedEventArgs
+DataGridPagerStyle
+DataGridSortCommandEventArgs
+DataKeyCollection
+DataList
+DataListCommandEventArgs
+DataListItem
+DataListItemCollection
+
+
+... I will list more later...

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TextAlign.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     TextAlign
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum TextAlign
+	{
+		Left = 1,
+		Right
+	}
+}

+ 20 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TextBoxMode.cs

@@ -0,0 +1,20 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     TextBoxMode
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum TextBoxMode
+	{
+		SingleLine,
+		MultiLine,
+		Password
+	}
+}

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TitleFormat.cs

@@ -0,0 +1,19 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     TitleFormat
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum TitleFormat
+	{
+		Month,
+		MonthYear
+	}
+}

+ 26 - 0
mcs/class/System.Web/System.Web.UI.WebControls/UnitType.cs

@@ -0,0 +1,26 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     UnitType
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum UnitType
+	{
+		Pixel = 1,
+		Point,
+		Pica,
+		Inch,
+		Mm,
+		Cm,
+		Percentage,
+		Em,
+		Ex
+	}
+}

+ 24 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ValidationCompareOperator.cs

@@ -0,0 +1,24 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ValidationCompareOperator
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ValidationCompareOperator
+	{
+		Equal,
+		NotEqual,
+		GreaterThan,
+		GreaterThanEqual,
+		LessThan,
+		LessThenEqual,
+		DataTypeCheck
+	}
+}

+ 22 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ValidationDataType.cs

@@ -0,0 +1,22 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ValidationDataType
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ValidationDataType
+	{
+		String,
+		Integer,
+		Double,
+		Date,
+		Currency
+	}
+}

+ 20 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ValidationSummaryDisplayMode.cs

@@ -0,0 +1,20 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ValidationSummaryDisplayMode
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ValidationSummaryDisplayMode
+	{
+		List,
+		BulletList,
+		SingleParagraph
+	}
+}

+ 20 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ValidatorDisplay.cs

@@ -0,0 +1,20 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     ValidatorDisplay
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum ValidatorDisplay
+	{
+		None,
+		Static,
+		Dynamic
+	}
+}

+ 21 - 0
mcs/class/System.Web/System.Web.UI.WebControls/VerticalAlign.cs

@@ -0,0 +1,21 @@
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Enumeration:     VerticalAlign
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  100%
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+namespace System.Web.UI.WebControls
+{
+	public enum VerticalAlign
+	{
+		NotSet,
+		Top,
+		Middle,
+		Bottom
+	}
+}

+ 225 - 225
mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs

@@ -1,225 +1,225 @@
-/**
- * Namespace: System.Web.UI.WebControls
- * Class:     WebControl
- * 
- * Author:  Gaurav Vaish
- * Contact: <[email protected]>, <[email protected]>
- * Status:  Unknown %
- * 
- * (C) Gaurav Vaish (2001)
- */
-
-using System;
-using System.Web;
-using System.Web.UI;
-using System.Drawing;
-using System.Collections.Specialized;
-
-namespace System.Web.UI.WebControls
-{
-	public class WebControl : Control, IAttributeAccessor
-	{
-		//TODO: A list of private members may be incomplete
-
-		private static int i = 0;
-		private string _accessKey = string.Empty;
-		private string _clientID;
-		private Color  _backColor    = Color.Empty;
-		private Color  _borderColor  = Color.Empty;
-		private BorderStyle _bStyle;
-		private Unit   _borderWidth  = Unit.Empty;
-		private Style  _controlStyle = null;			//TODO: What's initial value?
-		private string _cssClass     = string.Empty;
-		private bool   _enabled      = true;
-		private FontInfo _font;
-
-		// TODO: Should this have other methods called? or
-		// the values should be left blank - to be used up by the end-user?
-		private AttributeCollection _attributes = new AttributeCollection( new System.Web.UI.StateBag());
-
-		public virtual string AccessKey
-		{
-			get
-			{
-				return _accessKey;
-			}
-			set
-			{
-				_accessKey = value;
-			}
-		}
-
-		public virtual AttributeCollection Attributes
-		{
-			get
-			{
-				return _attributes;
-			}
-		}
-
-		public virtual Color BackColor
-		{
-			get
-			{
-					return _backColor;
-			}
-			set
-			{
-				_backColor = value;
-			}
-		}
-
-		public virtual Color BorderColor
-		{
-			get
-			{
-					return _borderColor;
-			}
-			set
-			{
-				_borderColor = value;
-			}
-		}
-
-		// TODO: Confused with the enum BorderStyle and variable BorderStyle
-		//public virtual BorderStyle BorderStyle { get; set; }
-
-		public virtual Unit BorderWidth
-		{
-			get
-			{
-				return _borderWidth;
-			}
-			set
-			{
-				_borderWidth = value;
-			}
-		}
-
-		public override string ClientID
-		{
-			get
-			{
-				_clientID = "WebControl" + i++;
-				return _clientID;
-			}
-		}
-
-		public Style ControlStyle
-		{
-			get
-			{
-				return _controlStyle;
-			}
-		}
-		
-		// TODO: The exact purpose of the field is not known
-		// public bool ControlStyleCreated { get; }
-
-		public virtual string CssClass
-		{
-			get
-			{
-				return _cssClass;
-			}
-			set
-			{
-				_cssClass = value;
-			}
-		}
-
-		public virtual bool Enabled
-		{
-			get
-			{
-				return _enabled;
-			}
-			set
-			{
-				_enabled = value;
-			}
-		}
-
-		public virtual FontInfo Font
-		{
-			get
-			{
-				return _font;
-			}
-		}
-
-		// TODO: The constructors definitions
-		protected WebControl()
-		{
-		}
-
-		public WebControl(HtmlTextWriterTag tag)
-		{
-		}
-
-		protected WebControl(string tag)
-		{
-		}
-
-		// Implemented procedures
-		
-		public string GetAttribute(string key)
-		{
-			return "";
-		}
-		
-		public void SetAttribute(string key, string val)
-		{
-			
-		}
-
-/*
-		// Properties
-		public ControlCollection Controls { virtual get; }
-		public Style ControlStyle { get; }
-		public bool ControlStyleCreated { get; }
-		public bool EnableViewState { virtual get; virtual set; }
-		public FontInfo Font { virtual get; }
-		public Color ForeColor { virtual get; virtual set; }
-		public Unit Height { virtual get; virtual set; }
-		public string ID { virtual get; virtual set; }
-		public Control NamingContainer { virtual get; }
-		public Page Page { virtual get; virtual set; }
-		public Control Parent { virtual get; }
-		public ISite Site { virtual get; virtual set; }
-		public CssStyleCollection Style { get; }
-		public short TabIndex { virtual get; virtual set; }
-		public string TemplateSourceDirectory { virtual get; }
-		public string ToolTip { virtual get; virtual set; }
-		public string UniqueID { virtual get; }
-		public bool Visible { virtual get; virtual set; }
-		public Unit Width { virtual get; virtual set; }
-
-		// Events
-		public event EventHandler DataBinding;
-		public event EventHandler Disposed;
-		public event EventHandler Init;
-		public event EventHandler Load;
-		public event EventHandler PreRender;
-		public event EventHandler Unload;
-
-		// Methods
-		public void ApplyStyle(System.Web.UI.WebControls.Style s);
-		public void CopyBaseAttributes(System.Web.UI.WebControls.WebControl controlSrc);
-		public virtual void DataBind();
-		public virtual void Dispose();
-		public virtual bool Equals(object obj);
-		public virtual System.Web.UI.Control FindControl(string id);
-		public virtual int GetHashCode();
-		public Type GetType();
-		public virtual bool HasControls();
-		public void MergeStyle(System.Web.UI.WebControls.Style s);
-		public virtual void RenderBeginTag(System.Web.UI.HtmlTextWriter writer);
-		public void RenderControl(System.Web.UI.HtmlTextWriter writer);
-		public virtual void RenderEndTag(System.Web.UI.HtmlTextWriter writer);
-		public string ResolveUrl(string relativeUrl);
-		public void SetRenderMethodDelegate(System.Web.UI.RenderMethod renderMethod);
-		public virtual string ToString();
-//*/
-	}
-}
+/**
+ * Namespace: System.Web.UI.WebControls
+ * Class:     WebControl
+ * 
+ * Author:  Gaurav Vaish
+ * Contact: <[email protected]>, <[email protected]>
+ * Status:  10%??
+ * 
+ * (C) Gaurav Vaish (2001)
+ */
+
+using System;
+using System.Web;
+using System.Web.UI;
+using System.Drawing;
+using System.Collections.Specialized;
+
+namespace System.Web.UI.WebControls
+{
+	public class WebControl : Control, IAttributeAccessor
+	{
+		//TODO: A list of private members may be incomplete
+
+		private static int i = 0;
+		private string _accessKey = string.Empty;
+		private string _clientID;
+		private Color  _backColor    = Color.Empty;
+		private Color  _borderColor  = Color.Empty;
+		//private BorderStyle _bStyle;
+		private Unit   _borderWidth  = Unit.Empty;
+		private Style  _controlStyle = null;			//TODO: What's initial value?
+		private string _cssClass     = string.Empty;
+		private bool   _enabled      = true;
+		private FontInfo _font = new FontInfo();
+
+		// TODO: Should this have other methods called? or
+		// the values should be left blank - to be used up by the end-user?
+		private AttributeCollection _attributes = new AttributeCollection( new System.Web.UI.StateBag());
+
+		public virtual string AccessKey
+		{
+			get
+			{
+				return _accessKey;
+			}
+			set
+			{
+				_accessKey = value;
+			}
+		}
+
+		public virtual AttributeCollection Attributes
+		{
+			get
+			{
+				return _attributes;
+			}
+		}
+
+		public virtual Color BackColor
+		{
+			get
+			{
+					return _backColor;
+			}
+			set
+			{
+				_backColor = value;
+			}
+		}
+
+		public virtual Color BorderColor
+		{
+			get
+			{
+					return _borderColor;
+			}
+			set
+			{
+				_borderColor = value;
+			}
+		}
+
+		// TODO: Confused with the enum BorderStyle and variable BorderStyle
+		//public virtual BorderStyle BorderStyle { get; set; }
+
+		public virtual Unit BorderWidth
+		{
+			get
+			{
+				return _borderWidth;
+			}
+			set
+			{
+				_borderWidth = value;
+			}
+		}
+
+		public override string ClientID
+		{
+			get
+			{
+				_clientID = "WebControl" + i++;
+				return _clientID;
+			}
+		}
+
+		public Style ControlStyle
+		{
+			get
+			{
+				return _controlStyle;
+			}
+		}
+		
+		// TODO: The exact purpose of the field is not known
+		// public bool ControlStyleCreated { get; }
+
+		public virtual string CssClass
+		{
+			get
+			{
+				return _cssClass;
+			}
+			set
+			{
+				_cssClass = value;
+			}
+		}
+
+		public virtual bool Enabled
+		{
+			get
+			{
+				return _enabled;
+			}
+			set
+			{
+				_enabled = value;
+			}
+		}
+
+		public virtual FontInfo Font
+		{
+			get
+			{
+				return _font;
+			}
+		}
+
+		// TODO: The constructors definitions
+		protected WebControl()
+		{
+		}
+
+		public WebControl(HtmlTextWriterTag tag)
+		{
+		}
+
+		protected WebControl(string tag)
+		{
+		}
+
+		// Implemented procedures
+		
+		public string GetAttribute(string key)
+		{
+			return "";
+		}
+		
+		public void SetAttribute(string key, string val)
+		{
+			
+		}
+
+/*
+		// Properties
+		public ControlCollection Controls { virtual get; }
+		public Style ControlStyle { get; }
+		public bool ControlStyleCreated { get; }
+		public bool EnableViewState { virtual get; virtual set; }
+		public FontInfo Font { virtual get; }
+		public Color ForeColor { virtual get; virtual set; }
+		public Unit Height { virtual get; virtual set; }
+		public string ID { virtual get; virtual set; }
+		public Control NamingContainer { virtual get; }
+		public Page Page { virtual get; virtual set; }
+		public Control Parent { virtual get; }
+		public ISite Site { virtual get; virtual set; }
+		public CssStyleCollection Style { get; }
+		public short TabIndex { virtual get; virtual set; }
+		public string TemplateSourceDirectory { virtual get; }
+		public string ToolTip { virtual get; virtual set; }
+		public string UniqueID { virtual get; }
+		public bool Visible { virtual get; virtual set; }
+		public Unit Width { virtual get; virtual set; }
+
+		// Events
+		public event EventHandler DataBinding;
+		public event EventHandler Disposed;
+		public event EventHandler Init;
+		public event EventHandler Load;
+		public event EventHandler PreRender;
+		public event EventHandler Unload;
+
+		// Methods
+		public void ApplyStyle(System.Web.UI.WebControls.Style s);
+		public void CopyBaseAttributes(System.Web.UI.WebControls.WebControl controlSrc);
+		public virtual void DataBind();
+		public virtual void Dispose();
+		public virtual bool Equals(object obj);
+		public virtual System.Web.UI.Control FindControl(string id);
+		public virtual int GetHashCode();
+		public Type GetType();
+		public virtual bool HasControls();
+		public void MergeStyle(System.Web.UI.WebControls.Style s);
+		public virtual void RenderBeginTag(System.Web.UI.HtmlTextWriter writer);
+		public void RenderControl(System.Web.UI.HtmlTextWriter writer);
+		public virtual void RenderEndTag(System.Web.UI.HtmlTextWriter writer);
+		public string ResolveUrl(string relativeUrl);
+		public void SetRenderMethodDelegate(System.Web.UI.RenderMethod renderMethod);
+		public virtual string ToString();
+//*/
+	}
+}