From 6f9fb1a68d7fbae612fd1d9da7de0203fb247a21 Mon Sep 17 00:00:00 2001 From: Tig Date: Sat, 20 Jul 2024 15:16:56 -0600 Subject: [PATCH] Trying to debug @bdisp's About box issue --- Terminal.Gui/Text/TextFormatter.cs | 7 ++++--- UICatalog/UICatalog.cs | 20 +++++++++---------- UnitTests/Text/TextFormatterTests.cs | 29 ++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/Terminal.Gui/Text/TextFormatter.cs b/Terminal.Gui/Text/TextFormatter.cs index a9d73ebb6..d29b855b2 100644 --- a/Terminal.Gui/Text/TextFormatter.cs +++ b/Terminal.Gui/Text/TextFormatter.cs @@ -580,11 +580,9 @@ public class TextFormatter public List GetLines () { string text = _text!; - int width = _constrainToWidth.GetValueOrDefault (); - int height = _constrainToHeight.GetValueOrDefault (); // With this check, we protect against subclasses with overrides of Text - if (string.IsNullOrEmpty (Text) || width == 0 || height == 0) + if (string.IsNullOrEmpty (Text) || ConstrainToWidth is 0 || ConstrainToHeight is 0) { _lines = [string.Empty]; NeedsFormat = false; @@ -597,6 +595,9 @@ public class TextFormatter return _lines; } + int width = ConstrainToWidth ?? int.MaxValue; + int height = ConstrainToHeight ?? int.MaxValue; + if (FindHotKey (_text!, HotKeySpecifier, out _hotKeyPos, out Key newHotKey)) { HotKey = newHotKey; diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs index b063e15bc..0cf9a5c90 100644 --- a/UICatalog/UICatalog.cs +++ b/UICatalog/UICatalog.cs @@ -382,17 +382,15 @@ internal class UICatalogApp _themeMenuBarItem = new ("_Themes", _themeMenuItems); _aboutMessage = new (); - _aboutMessage.AppendLine (@"UI Catalog: A comprehensive sample library for"); - _aboutMessage.AppendLine ( - """ - _______ _ _ _____ _ - |__ __| (_) | | / ____| (_) - | | ___ _ __ _ __ ___ _ _ __ __ _| || | __ _ _ _ - | |/ _ \ '__| '_ ` _ \| | '_ \ / _` | || | |_ | | | | | - | | __/ | | | | | | | | | | | (_| | || |__| | |_| | | - |_|\___|_| |_| |_| |_|_|_| |_|\__,_|_(_)_____|\__,_|_| - """); - _aboutMessage.AppendLine (@""); + _aboutMessage.AppendLine ($"UI Catalog: A comprehensive sample library for"); + _aboutMessage.AppendLine (@" + _______ _ _ _____ _ +|__ __| (_) | | / ____| (_) + | | ___ _ __ _ __ ___ _ _ __ __ _| || | __ _ _ _ + | |/ _ \ '__| '_ ` _ \| | '_ \ / _` | || | |_ | | | | | + | | __/ | | | | | | | | | | | (_| | || |__| | |_| | | + |_|\___|_| |_| |_| |_|_|_| |_|\__,_|_(_)_____|\__,_|_| +"); _aboutMessage.AppendLine (@"v2 - Pre-Alpha"); _aboutMessage.AppendLine (@""); _aboutMessage.AppendLine (@"https://github.com/gui-cs/Terminal.Gui"); diff --git a/UnitTests/Text/TextFormatterTests.cs b/UnitTests/Text/TextFormatterTests.cs index a83b7205c..0ec438820 100644 --- a/UnitTests/Text/TextFormatterTests.cs +++ b/UnitTests/Text/TextFormatterTests.cs @@ -7193,4 +7193,33 @@ B ")] } #endregion + + [Fact] + public void UICatalog_AboutBox_Text () + { + StringBuilder _aboutMessage = new (); + _aboutMessage.AppendLine ($"UI Catalog: A comprehensive sample library for"); + _aboutMessage.AppendLine (@" + _______ _ _ _____ _ +|__ __| (_) | | / ____| (_) + | | ___ _ __ _ __ ___ _ _ __ __ _| || | __ _ _ _ + | |/ _ \ '__| '_ ` _ \| | '_ \ / _` | || | |_ | | | | | + | | __/ | | | | | | | | | | | (_| | || |__| | |_| | | + |_|\___|_| |_| |_| |_|_|_| |_|\__,_|_(_)_____|\__,_|_| +"); + _aboutMessage.AppendLine (@"v2 - Pre-Alpha"); + _aboutMessage.AppendLine (@""); + _aboutMessage.AppendLine (@"https://github.com/gui-cs/Terminal.Gui"); + + TextFormatter tf = new () + { + Text = _aboutMessage.ToString(), + WordWrap = false, + MultiLine = true, + HotKeySpecifier = (Rune)0xFFFF + }; + + Size tfSize = tf.FormatAndGetSize (); + Assert.Equal (new Size (58, 13), tfSize); + } }