X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FManaged.Windows.Forms%2FSystem.Windows.Forms%2FTextBox.cs;h=3be7be3a8024bd1c9eb768a96f594b627d81a67d;hb=11f44454a64fa66b008d683bbb33f6085abcc1a9;hp=2434131f1de5ff39911045ed2b286abfff304729;hpb=0390a8660ed1be060c1b482a97be2abdde9df979;p=mono.git diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs index 2434131f1de..3be7be3a802 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs @@ -17,7 +17,7 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -// Copyright (c) 2004 Novell, Inc. (http://www.novell.com) +// Copyright (c) 2004-2005 Novell, Inc. (http://www.novell.com) // // Authors: // Peter Bartok pbartok@novell.com @@ -27,29 +27,38 @@ // NOT COMPLETE using System; +using System.ComponentModel; +using System.ComponentModel.Design; using System.Drawing; namespace System.Windows.Forms { public class TextBox : TextBoxBase { #region Local Variables - internal bool accepts_return; - internal CharacterCasing character_casing; internal char password_char; - internal ScrollBars scrollbars; - internal HorizontalAlignment alignment; #endregion // Local Variables #region Public Constructors public TextBox() { accepts_return = false; - character_casing = CharacterCasing.Normal; password_char = '\u25cf'; - scrollbars = ScrollBars.None; + scrollbars = RichTextBoxScrollBars.None; alignment = HorizontalAlignment.Left; + this.LostFocus +=new EventHandler(TextBox_LostFocus); + this.BackColor = ThemeEngine.Current.ColorWindow; + this.ForeColor = ThemeEngine.Current.ColorWindowText; } #endregion // Public Constructors + + #region Private & Internal Methods + private void TextBox_LostFocus(object sender, EventArgs e) { + has_focus = false; + Invalidate(); + } + #endregion // Private & Internal Methods + #region Public Instance Properties + [DefaultValue(false)] public bool AcceptsReturn { get { return accepts_return; @@ -62,6 +71,7 @@ namespace System.Windows.Forms { } } + [DefaultValue(CharacterCasing.Normal)] public CharacterCasing CharacterCasing { get { return character_casing; @@ -74,6 +84,8 @@ namespace System.Windows.Forms { } } + [Localizable(true)] + [DefaultValue("")] public char PasswordChar { get { return password_char; @@ -86,18 +98,33 @@ namespace System.Windows.Forms { } } + [DefaultValue(ScrollBars.None)] + [Localizable(true)] public ScrollBars ScrollBars { get { - return scrollbars; + return (ScrollBars)scrollbars; } set { - if (value != scrollbars) { - scrollbars = value; + if (value != (ScrollBars)scrollbars) { + scrollbars = (RichTextBoxScrollBars)value; + base.CalculateScrollBars(); } } } + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public override int SelectionLength { + get { + return base.SelectionLength; + } + set { + base.SelectionLength = value; + } + } + + public override string Text { get { return base.Text; @@ -108,6 +135,8 @@ namespace System.Windows.Forms { } } + [DefaultValue(HorizontalAlignment.Left)] + [Localizable(true)] public HorizontalAlignment TextAlign { get { return alignment; @@ -116,6 +145,20 @@ namespace System.Windows.Forms { set { if (value != alignment) { alignment = value; + + // MS word-wraps if alignment isn't left + if (multiline) { + if (alignment != HorizontalAlignment.Left) { + document.Wrap = true; + } else { + document.Wrap = word_wrap; + } + } + + for (int i = 1; i <= document.Lines; i++) { + document.GetLine(i).Alignment = value; + } + document.RecalculateDocument(CreateGraphics()); OnTextAlignChanged(EventArgs.Empty); } } @@ -142,6 +185,8 @@ namespace System.Windows.Forms { } protected override void OnGotFocus(EventArgs e) { + has_focus=true; + Invalidate(); base.OnGotFocus (e); } @@ -159,13 +204,13 @@ namespace System.Windows.Forms { } } - protected virtual void WndProc(ref Message m) { + protected override void WndProc(ref Message m) { base.WndProc(ref m); } #endregion // Protected Instance Methods #region Events public event EventHandler TextAlignChanged; - #endregion // Events + #endregion // Events } }