diff options
Diffstat (limited to 'src/GraphicObjects')
| -rw-r--r-- | src/GraphicObjects/Label.cs | 12 | ||||
| -rw-r--r-- | src/GraphicObjects/TextBox.cs | 9 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/GraphicObjects/Label.cs b/src/GraphicObjects/Label.cs index ee7dd045..d8d214c7 100644 --- a/src/GraphicObjects/Label.cs +++ b/src/GraphicObjects/Label.cs @@ -271,7 +271,17 @@ namespace Crow CurrentColumn += str.Length; NotifyValueChanged ("Text", Text); } - + /// <summary> + /// Insert a line break. + /// </summary> + protected void InsertLineBreak() + { + lines.Insert(CurrentLine + 1, lines[CurrentLine].Substring(CurrentColumn)); + lines [CurrentLine] = lines [CurrentLine].Substring (0, CurrentColumn); + CurrentLine++; + CurrentColumn = 0; + NotifyValueChanged ("Text", Text); + } #region GraphicObject overrides [XmlAttributeAttribute()][DefaultValue(-1)] public override int Width { diff --git a/src/GraphicObjects/TextBox.cs b/src/GraphicObjects/TextBox.cs index d9003b61..143d148f 100644 --- a/src/GraphicObjects/TextBox.cs +++ b/src/GraphicObjects/TextBox.cs @@ -97,7 +97,10 @@ namespace Crow break; case Key.Enter: case Key.KeypadEnter: - OnTextChanged(this,new TextChangeEventArgs(Text)); + if (Multiline) + this.InsertLineBreak (); + else + OnTextChanged(this,new TextChangeEventArgs(Text)); break; case Key.Escape: Text = ""; @@ -195,6 +198,10 @@ namespace Crow break; } + if (Width < 0) + RegisterForLayouting ((int)LayoutingType.Width); + if (Height < 0) + RegisterForLayouting ((int)LayoutingType.Height); registerForGraphicUpdate(); } #endregion |