diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-02-23 14:05:46 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-02-23 14:05:46 +0000 |
commit | eae9a03adbefd12de7881d0cb933f4d2330d3b11 (patch) | |
tree | 3d90ecb76c706af1615a24412d82ada204fb4350 | |
parent | 65bfa11da0a8b03f289d574d7e38a1ab59d007da (diff) | |
download | fpGUI-eae9a03adbefd12de7881d0cb933f4d2330d3b11.tar.xz |
* Applied textwrap label patch from Jean-Marc.
-rw-r--r-- | src/gui/gui_label.pas | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/gui_label.pas b/src/gui/gui_label.pas index 93f5da46..c03ea524 100644 --- a/src/gui/gui_label.pas +++ b/src/gui/gui_label.pas @@ -125,6 +125,7 @@ begin FWrappedText.Clear; repeat if UTF8Pos(' ', AText) > 0 then + begin if Font.TextWidth(UTF8Copy(AText, 1, UTF8Pos(' ', AText))) < MaxLength then begin if FWrappedText.Count > 0 then @@ -138,12 +139,20 @@ begin FWrappedText.Add(UTF8Copy(AText, 1, Pred(UTF8Pos(' ', AText)))); AText := UTF8Copy(AText, Succ(UTF8Pos(' ', AText)), UTF8Length(AText) - Pred(UTF8Pos(' ', AText))); end; + end + else + begin + FWrappedText.Add(AText); + AText:= ''; + end; until UTF8Pos(' ', AText) = 0; - if FWrappedText.Count > 1 then + if FWrappedText.Count > 0 then + begin if (Font.TextWidth(FWrappedText[Pred(FWrappedText.Count)] + ' ' + AText)) < MaxLength then FWrappedText[Pred(FWrappedText.Count)] := FWrappedText[Pred(FWrappedText.Count)] + ' ' + AText else FWrappedText.Add(AText); + end; Height := FWrappedText.Count * (Font.Height + 2); end; |