You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			260 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="TextBox.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>                                                                
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| using System;
 | |
| using System.Collections;
 | |
| using System.Collections.Specialized;
 | |
| using System.ComponentModel;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Drawing;
 | |
| using System.Web;
 | |
| using System.Web.UI;
 | |
| using System.Web.UI.Design.WebControls;
 | |
| using System.Web.UI.HtmlControls;
 | |
| using System.Security.Permissions;
 | |
| 
 | |
| namespace System.Web.UI.MobileControls
 | |
| {
 | |
| 
 | |
|     /*
 | |
|      * Mobile TextBox class.
 | |
|      *
 | |
|      * Copyright (c) 2000 Microsoft Corporation
 | |
|      */
 | |
|     /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox"]/*' />
 | |
|     [
 | |
|         ControlBuilderAttribute(typeof(TextBoxControlBuilder)),
 | |
|         DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, " + AssemblyRef.SystemDesign),
 | |
|         DefaultEvent("TextChanged"),
 | |
|         DefaultProperty("Text"),
 | |
|         Designer(typeof(System.Web.UI.Design.MobileControls.TextBoxDesigner)),
 | |
|         DesignerAdapter(typeof(System.Web.UI.Design.MobileControls.Adapters.DesignerTextBoxAdapter)),
 | |
|         ToolboxData("<{0}:TextBox runat=\"server\"></{0}:TextBox>"),
 | |
|         ToolboxItem("System.Web.UI.Design.WebControlToolboxItem, " + AssemblyRef.SystemDesign),
 | |
|         ValidationProperty("Text")
 | |
|     ]
 | |
|     [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
 | |
|     [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
 | |
|     [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
 | |
|     public class TextBox : TextControl, IPostBackDataHandler
 | |
|     {
 | |
|         private static readonly Object EventTextChanged = new Object();
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.IPostBackDataHandler.LoadPostData"]/*' />
 | |
|         /// <internalonly/>
 | |
|         protected bool LoadPostData(String key, NameValueCollection data)
 | |
|         {
 | |
|             bool dataChanged = false;
 | |
|             bool handledByAdapter =
 | |
|                 Adapter.LoadPostData(key, data, null, out dataChanged);
 | |
| 
 | |
|             if (!handledByAdapter)
 | |
|             {
 | |
|                 String value = data[key];
 | |
|                 if (Text != value)
 | |
|                 {
 | |
|                     Text = value;
 | |
|                     dataChanged = true;    // this will cause a RaisePostDataChangedEvent()
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             return dataChanged;
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.IPostBackDataHandler.RaisePostDataChangedEvent"]/*' />
 | |
|         /// <internalonly/>
 | |
|         protected void RaisePostDataChangedEvent()
 | |
|         {
 | |
|             OnTextChanged(EventArgs.Empty);
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.OnTextChanged"]/*' />
 | |
|         protected virtual void OnTextChanged(EventArgs e)
 | |
|         {
 | |
|             EventHandler onTextChangedHandler = (EventHandler)Events[EventTextChanged];
 | |
|             if (onTextChangedHandler != null)
 | |
|             {
 | |
|                 onTextChangedHandler(this,e);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Password"]/*' />
 | |
|         [
 | |
|             Bindable(true),
 | |
|             Browsable(true),
 | |
|             DefaultValue(false),
 | |
|             MobileCategory(SR.Category_Behavior),
 | |
|             MobileSysDescription(SR.TextBox_Password)
 | |
|         ]
 | |
|         public bool Password
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 Object b = ViewState["Password"];
 | |
|                 return (b != null) ? (bool)b : false;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["Password"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Numeric"]/*' />
 | |
|         [
 | |
|             Bindable(true),
 | |
|             Browsable(true),
 | |
|             DefaultValue(false),
 | |
|             MobileCategory(SR.Category_Behavior),
 | |
|             MobileSysDescription(SR.TextBox_Numeric)
 | |
|         ]
 | |
|         public bool Numeric
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 Object b = ViewState["Numeric"];
 | |
|                 return (b != null) ? (bool)b : false;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["Numeric"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Size"]/*' />
 | |
|         [
 | |
|             Bindable(true),
 | |
|             DefaultValue(0),
 | |
|             MobileCategory(SR.Category_Behavior),
 | |
|             MobileSysDescription(SR.TextBox_Size)
 | |
|         ]
 | |
|         public int Size
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 Object i = ViewState["Size"];
 | |
|                 return((i != null) ? (int)i : 0);
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 if (value < 0)
 | |
|                 {
 | |
|                     throw new ArgumentOutOfRangeException("Size", value,
 | |
|                         SR.GetString(SR.TextBox_NotNegativeNumber));
 | |
|                 }
 | |
|                 ViewState["Size"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.MaxLength"]/*' />
 | |
|         [
 | |
|             Bindable(true),
 | |
|             DefaultValue(0),
 | |
|             MobileCategory(SR.Category_Behavior),
 | |
|             MobileSysDescription(SR.TextBox_MaxLength)
 | |
|         ]
 | |
|         public int MaxLength
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 Object i = ViewState["MaxLength"];
 | |
|                 return((i != null) ? (int)i : 0);
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 if (value < 0)
 | |
|                 {
 | |
|                     throw new ArgumentOutOfRangeException("MaxLength", value,
 | |
|                         SR.GetString(SR.TextBox_NotNegativeNumber));
 | |
|                 }
 | |
|                 ViewState["MaxLength"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.TextChanged"]/*' />
 | |
|         [
 | |
|             MobileSysDescription(SR.TextBox_OnTextChanged)
 | |
|         ]
 | |
|         public event EventHandler TextChanged
 | |
|         {
 | |
|             add
 | |
|             {
 | |
|                 Events.AddHandler(EventTextChanged, value);
 | |
|             }
 | |
|             remove
 | |
|             {
 | |
|                 Events.RemoveHandler(EventTextChanged, value);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBox.Title"]/*' />
 | |
|         [
 | |
|             Bindable(true),
 | |
|             DefaultValue(""),
 | |
|             MobileCategory(SR.Category_Appearance),
 | |
|             MobileSysDescription(SR.Input_Title)
 | |
|         ]
 | |
|         public String Title
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return ToString(ViewState["Title"]);
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["Title"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         internal override bool TrimInnerText
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return false;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         internal override bool TrimNewlines
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return true;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #region IPostBackDataHandler implementation
 | |
|         bool IPostBackDataHandler.LoadPostData(String key, NameValueCollection data) {
 | |
|             return LoadPostData(key, data);
 | |
|         }
 | |
| 
 | |
|         void IPostBackDataHandler.RaisePostDataChangedEvent() {
 | |
|             RaisePostDataChangedEvent();
 | |
|         }
 | |
|         #endregion 
 | |
|     }
 | |
| 
 | |
|     /*
 | |
|      * TextBox Control Builder
 | |
|      *
 | |
|      * Copyright (c) 2000 Microsoft Corporation
 | |
|      */
 | |
| 
 | |
|     /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBoxControlBuilder"]/*' />
 | |
|     [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
 | |
|     [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
 | |
|     [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
 | |
|     public class TextBoxControlBuilder : MobileControlBuilder
 | |
|     {
 | |
|         // Textbox allows whitespace inside text.
 | |
| 
 | |
|         /// <include file='doc\TextBox.uex' path='docs/doc[@for="TextBoxControlBuilder.AllowWhitespaceLiterals"]/*' />
 | |
|         public override bool AllowWhitespaceLiterals()
 | |
|         {
 | |
|             return true;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 |