Jelajahi Sumber

Added a HorizontalSpace property.

BDisp 5 tahun lalu
induk
melakukan
8a241b1cf8
1 mengubah file dengan 16 tambahan dan 1 penghapusan
  1. 16 1
      Terminal.Gui/Views/RadioGroup.cs

+ 16 - 1
Terminal.Gui/Views/RadioGroup.cs

@@ -11,6 +11,7 @@ namespace Terminal.Gui {
 		int selected = -1;
 		int cursor;
 		DisplayModeLayout displayMode;
+		int horizontalSpace = 2;
 		List<(int pos, int length)> horizontal;
 
 		void Init (Rect rect, ustring [] radioLabels, int selected)
@@ -78,6 +79,20 @@ namespace Terminal.Gui {
 			}
 		}
 
+		/// <summary>
+		/// Gets or sets the horizontal space for this <see cref="RadioGroup"/> if the <see cref="DisplayMode"/> is <see cref="DisplayModeLayout.Horizontal"/>
+		/// </summary>
+		public int HorizontalSpace {
+			get { return horizontalSpace; }
+			set {
+				if (horizontalSpace != value && displayMode == DisplayModeLayout.Horizontal) {
+					horizontalSpace = value;
+					SetWidthHeight (radioLabels);
+					SetNeedsDisplay ();
+				}
+			}
+		}
+
 		void SetWidthHeight (List<ustring> radioLabels)
 		{
 			switch (displayMode) {
@@ -147,7 +162,7 @@ namespace Terminal.Gui {
 				int length = 0;
 				for (int i = 0; i < radioLabels.Count; i++) {
 					start += length;
-					length = radioLabels [i].RuneCount + 2;
+					length = radioLabels [i].RuneCount + horizontalSpace;
 					horizontal.Add ((start, length));
 				}
 			}