Browse Source

prep for Dialog to use Dim.Auto - Simplify unit tests

Tig Kindel 1 year ago
parent
commit
83c59318e3
1 changed files with 23 additions and 24 deletions
  1. 23 24
      Terminal.Gui/Views/MessageBox.cs

+ 23 - 24
Terminal.Gui/Views/MessageBox.cs

@@ -284,42 +284,41 @@ namespace Terminal.Gui {
 			}
 
 			var messageLabel = new Label () {
-				AutoSize = false,//wrapMessage ? false : true,
+				AutoSize = wrapMessage ? false : true,
 				Text = message,
 				TextAlignment = TextAlignment.Centered,
 				X = 0,
 				Y = 0,
 				Width = Dim.Fill (0),
 				Height = Dim.Fill (1),
-				ColorScheme = Colors.Base
 			};
 			messageLabel.TextFormatter.WordWrap = wrapMessage;
 			messageLabel.TextFormatter.MultiLine = wrapMessage ? false : true;
 			d.Add (messageLabel);
 
-			//d.Loaded += (s, e) => {
-			//	if (width != 0 || height != 0) {
-			//		return;
-			//	}
-			//	// TODO: replace with Dim.Fit when implemented
-			//	var maxBounds = d.SuperView?.Bounds ?? Application.Top.Bounds;
-			//	if (wrapMessage) {
-			//		messageLabel.TextFormatter.Size = new Size (maxBounds.Size.Width - d.GetFramesThickness ().Horizontal, maxBounds.Size.Height - d.GetFramesThickness ().Vertical);
-			//	} 
-			//	var msg = messageLabel.TextFormatter.Format ();
-			//	var messageSize = messageLabel.TextFormatter.GetFormattedSize ();
+			d.Loaded += (s, e) => {
+				if (width != 0 || height != 0) {
+					return;
+				}
+				// TODO: replace with Dim.Fit when implemented
+				var maxBounds = d.SuperView?.Bounds ?? Application.Top.Bounds;
+				if (wrapMessage) {
+					messageLabel.TextFormatter.Size = new Size (maxBounds.Size.Width - d.GetFramesThickness ().Horizontal, maxBounds.Size.Height - d.GetFramesThickness ().Vertical);
+				}
+				var msg = messageLabel.TextFormatter.Format ();
+				var messageSize = messageLabel.TextFormatter.GetFormattedSize ();
 
-			//	// Ensure the width fits the text + buttons
-			//	var newWidth = Math.Max (width, Math.Max (messageSize.Width + d.GetFramesThickness ().Horizontal,
-			//					d.GetButtonsWidth () + d.buttons.Count + d.GetFramesThickness ().Horizontal));
-			//	if (newWidth > d.Frame.Width) {
-			//		d.Width = newWidth;
-			//	}
-			//	// Ensure height fits the text + vspace + buttons
-			//	var lastLine = messageLabel.TextFormatter.Lines [^1];
-			//	d.Height = Math.Max (height, messageSize.Height + (lastLine.EndsWith ("\r\n") || lastLine.EndsWith ('\n') ? 1 : 2) + d.GetFramesThickness ().Vertical);
-			//	d.SetRelativeLayout (d.SuperView?.Frame ?? Application.Top.Frame);
-			//};
+				// Ensure the width fits the text + buttons
+				var newWidth = Math.Max (width, Math.Max (messageSize.Width + d.GetFramesThickness ().Horizontal,
+								d.GetButtonsWidth () + d.buttons.Count + d.GetFramesThickness ().Horizontal));
+				if (newWidth > d.Frame.Width) {
+					d.Width = newWidth;
+				}
+				// Ensure height fits the text + vspace + buttons
+				var lastLine = messageLabel.TextFormatter.Lines [^1];
+				d.Height = Math.Max (height, messageSize.Height + (lastLine.EndsWith ("\r\n") || lastLine.EndsWith ('\n') ? 1 : 2) + d.GetFramesThickness ().Vertical);
+				d.SetRelativeLayout (d.SuperView?.Frame ?? Application.Top.Frame);
+			};
 
 			// Setup actions
 			Clicked = -1;