Преглед изворни кода

Implement new Dim/Pos capabilities, referencing the elements of another view

miguel пре 7 година
родитељ
комит
b296c920ac

+ 25 - 4
Example/demo.cs

@@ -92,12 +92,33 @@ static class Demo {
 
 
 		Application.MainLoop.AddTimeout (TimeSpan.FromMilliseconds (300), timer);
 		Application.MainLoop.AddTimeout (TimeSpan.FromMilliseconds (300), timer);
 
 
+
+		// A little convoluted, this is because I am using this to test the
+		// layout based on referencing elements of another view:
+
+		var login = new Label ("Login: ") { X = 3, Y = 6 };
+		var password = new Label ("Password: ") { 
+			X = Pos.Left (login), 
+			Y = Pos.Bottom (login) + 1 
+		};
+		var loginText = new TextField ("") { 
+			X = Pos.Right (password),  
+			Y = Pos.Top (login), 
+			Width = 40 
+		};
+		var passText = new TextField ("") {
+			Secret = true,
+			X = Pos.Left (loginText),
+			Y = Pos.Top (password),
+			Width = Dim.Width (loginText)
+		};
+
 		// Add some content
 		// Add some content
 		container.Add (
 		container.Add (
-			new Label (3, 6, "Login: "),
-			new TextField (14, 6, 40, ""),
-			new Label (3, 8, "Password: "),
-			new TextField (14, 8, 40, "") { Secret = true },
+			login,
+			loginText,
+			password,
+			passText,
 			new FrameView (new Rect (3, 10, 25, 6), "Options"){
 			new FrameView (new Rect (3, 10, 25, 6), "Options"){
 				new CheckBox (1, 0, "Remember me"),
 				new CheckBox (1, 0, "Remember me"),
 				new RadioGroup (1, 2, new [] { "_Personal", "_Company" }),
 				new RadioGroup (1, 2, new [] { "_Personal", "_Company" }),

+ 65 - 1
Terminal.Gui/Core.cs

@@ -1041,6 +1041,47 @@ namespace Terminal.Gui {
 			Frame = new Rect (_x, _y, w, h);
 			Frame = new Rect (_x, _y, w, h);
 		}
 		}
 
 
+		// https://en.wikipedia.org/wiki/Topological_sorting
+		static List<View> TopologicalSort (HashSet<View> nodes, HashSet<(View, View)> edges)
+		{
+			var result = new List<View> ();
+
+			// Set of all nodes with no incoming edges
+			var S = new HashSet<View> (nodes.Where (n => edges.All (e => e.Item2.Equals (n) == false)));
+
+			while (S.Any ()) {
+				//  remove a node n from S
+				var n = S.First ();
+				S.Remove (n);
+
+				// add n to tail of L
+				result.Add (n);
+
+				// for each node m with an edge e from n to m do
+				foreach (var e in edges.Where (e => e.Item1.Equals (n)).ToList ()) {
+					var m = e.Item2;
+
+					// remove edge e from the graph
+					edges.Remove (e);
+
+					// if m has no other incoming edges then
+					if (edges.All (me => me.Item2.Equals (m) == false)) {
+						// insert m into S
+						S.Add (m);
+					}
+				}
+			}
+
+			// if graph has edges then
+			if (edges.Any ()) {
+				// return error (graph has at least one cycle)
+				return null;
+			} else {
+				// return L (a topologically sorted order)
+				return result;
+			}
+		}
+
 		/// <summary>
 		/// <summary>
 		/// This virtual method is invoked when a view starts executing or 
 		/// This virtual method is invoked when a view starts executing or 
 		/// when the dimensions of the view have changed, for example in 
 		/// when the dimensions of the view have changed, for example in 
@@ -1050,8 +1091,31 @@ namespace Terminal.Gui {
 		{
 		{
 			if (!layoutNeeded)
 			if (!layoutNeeded)
 				return;
 				return;
-			
+
+			// Sort out the dependencies of the X, Y, Width, Height properties
+			var nodes = new HashSet<View> ();
+			var edges = new HashSet<(View, View)> ();
+
 			foreach (var v in Subviews) {
 			foreach (var v in Subviews) {
+				nodes.Add (v);
+				if (v.LayoutStyle == LayoutStyle.Computed) {
+					if (v.X is Pos.PosView)
+						edges.Add ((v, (v.X as Pos.PosView).Target));
+					if (v.Y is Pos.PosView)
+						edges.Add ((v, (v.Y as Pos.PosView).Target));
+					if (v.Width is Dim.DimView)
+						edges.Add ((v, (v.Width as Dim.DimView).Target));
+					if (v.Height is Dim.DimView)
+						edges.Add ((v, (v.Height as Dim.DimView).Target));
+				}
+			}
+
+			var ordered = TopologicalSort (nodes, edges);
+			ordered.Reverse ();
+			if (ordered == null)
+				throw new Exception ("There is a recursive cycle in the relative Pos/Dim in the views of " + this);
+
+			foreach (var v in ordered) {
 				if (v.LayoutStyle == LayoutStyle.Computed)
 				if (v.LayoutStyle == LayoutStyle.Computed)
 					v.RelativeLayout (Frame);
 					v.RelativeLayout (Frame);
 
 

+ 101 - 0
Terminal.Gui/Types/PosDim.cs

@@ -24,6 +24,11 @@ namespace Terminal.Gui {
 	///     to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
 	///     to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
 	///     of the view 3 characters to the left after centering for example.
 	///     of the view 3 characters to the left after centering for example.
 	///   </para>
 	///   </para>
+	///   <para>
+	///     It is possible to reference coordinates of another view by using the methods
+	///     Left(View), Right(View), Bottom(View), Top(View).   The X(View) and Y(View) are
+	///     aliases to Left(View) and Top(View) respectively.
+	///   </para>
 	/// </remarks>
 	/// </remarks>
 	public class Pos {
 	public class Pos {
 		internal virtual int Anchor (int width)
 		internal virtual int Anchor (int width)
@@ -195,6 +200,69 @@ namespace Terminal.Gui {
 		{
 		{
 			return new PosCombine (false, left, right);
 			return new PosCombine (false, left, right);
 		}
 		}
+
+		internal class PosView : Pos {
+			public View Target;
+			int side;
+			public PosView (View view, int side)
+			{
+				Target = view;
+				this.side = side;
+			}
+			internal override int Anchor (int width)
+			{
+				switch (side) {
+				case 0: return Target.Frame.X;
+				case 1: return Target.Frame.Y;
+				case 2: return Target.Frame.Right;
+				case 3: return Target.Frame.Bottom;
+				default:
+					return 0;
+				}
+			}
+		}
+
+		/// <summary>
+		/// Returns a Pos object tracks the Left (X) position of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos Left (View view) => new PosView (view, 0);
+
+		/// <summary>
+		/// Returns a Pos object tracks the Left (X) position of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos X (View view) => new PosView (view, 0);
+
+		/// <summary>
+		/// Returns a Pos object tracks the Top (Y) position of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos Top (View view) => new PosView (view, 1);
+
+		/// <summary>
+		/// Returns a Pos object tracks the Top (Y) position of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos Y (View view) => new PosView (view, 1);
+
+		/// <summary>
+		/// Returns a Pos object tracks the Right (X+Width) coordinate of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos Right (View view) => new PosView (view, 2);
+
+		/// <summary>
+		/// Returns a Pos object tracks the Bottom (Y+Height) coordinate of the specified view.
+		/// </summary>
+		/// <returns>The Position that depends on the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Pos Bottom (View view) => new PosView (view, 3);
 	}
 	}
 
 
 	/// <summary>
 	/// <summary>
@@ -347,5 +415,38 @@ namespace Terminal.Gui {
 		{
 		{
 			return new DimCombine (false, left, right);
 			return new DimCombine (false, left, right);
 		}
 		}
+
+		internal class DimView : Dim {
+			public View Target;
+			int side;
+			public DimView (View view, int side)
+			{
+				Target = view;
+				this.side = side;
+			}
+
+			internal override int Anchor (int width)
+			{
+				switch (side) {
+				case 0: return Target.Frame.Height;
+				case 1: return Target.Frame.Width;
+				default:
+					return 0;
+				}
+			}
+		}
+		/// <summary>
+		/// Returns a Dim object tracks the Width of the specified view.
+		/// </summary>
+		/// <returns>The dimension of the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Dim Width (View view) => new DimView (view, 1);
+
+		/// <summary>
+		/// Returns a Dim object tracks the Height of the specified view.
+		/// </summary>
+		/// <returns>The dimension of the other view.</returns>
+		/// <param name="view">The view that will be tracked.</param>
+		public static Dim Height (View view) => new DimView (view, 0);
 	}
 	}
 }
 }

+ 80 - 0
docfx/api/Terminal.Gui/Terminal.Gui.Dim.yml

@@ -5,10 +5,12 @@ items:
   children:
   children:
   - Terminal.Gui.Dim.#ctor
   - Terminal.Gui.Dim.#ctor
   - Terminal.Gui.Dim.Fill(System.Int32)
   - Terminal.Gui.Dim.Fill(System.Int32)
+  - Terminal.Gui.Dim.Height(Terminal.Gui.View)
   - Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   - Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   - Terminal.Gui.Dim.op_Implicit(System.Int32 to Terminal.Gui.Dim)
   - Terminal.Gui.Dim.op_Implicit(System.Int32 to Terminal.Gui.Dim)
   - Terminal.Gui.Dim.op_Subtraction(Terminal.Gui.Dim,Terminal.Gui.Dim)
   - Terminal.Gui.Dim.op_Subtraction(Terminal.Gui.Dim,Terminal.Gui.Dim)
   - Terminal.Gui.Dim.Percent(System.Single)
   - Terminal.Gui.Dim.Percent(System.Single)
+  - Terminal.Gui.Dim.Width(Terminal.Gui.View)
   langs:
   langs:
   - csharp
   - csharp
   name: Dim
   name: Dim
@@ -75,6 +77,30 @@ items:
       description: The Fill dimension.
       description: The Fill dimension.
   overload: Terminal.Gui.Dim.Fill*
   overload: Terminal.Gui.Dim.Fill*
   exceptions: []
   exceptions: []
+- uid: Terminal.Gui.Dim.Height(Terminal.Gui.View)
+  id: Height(Terminal.Gui.View)
+  parent: Terminal.Gui.Dim
+  langs:
+  - csharp
+  name: Height(View)
+  nameWithType: Dim.Height(View)
+  fullName: Dim.Height(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Dim object tracks the Height of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Dim Height (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Dim
+      description: The dimension of the other view.
+  overload: Terminal.Gui.Dim.Height*
+  exceptions: []
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   id: op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   id: op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   parent: Terminal.Gui.Dim
   parent: Terminal.Gui.Dim
@@ -177,6 +203,30 @@ items:
       description: The percent Dim object.
       description: The percent Dim object.
   overload: Terminal.Gui.Dim.Percent*
   overload: Terminal.Gui.Dim.Percent*
   exceptions: []
   exceptions: []
+- uid: Terminal.Gui.Dim.Width(Terminal.Gui.View)
+  id: Width(Terminal.Gui.View)
+  parent: Terminal.Gui.Dim
+  langs:
+  - csharp
+  name: Width(View)
+  nameWithType: Dim.Width(View)
+  fullName: Dim.Width(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Dim object tracks the Width of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Dim Width (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Dim
+      description: The dimension of the other view.
+  overload: Terminal.Gui.Dim.Width*
+  exceptions: []
 references:
 references:
 - uid: System.Object
 - uid: System.Object
   parent: System
   parent: System
@@ -208,6 +258,18 @@ references:
   name: Int32
   name: Int32
   nameWithType: Int32
   nameWithType: Int32
   fullName: System.Int32
   fullName: System.Int32
+- uid: Terminal.Gui.Dim.Height(Terminal.Gui.View)
+  parent: Terminal.Gui.Dim
+  isExternal: false
+  name: Height(View)
+  nameWithType: Dim.Height(View)
+  fullName: Dim.Height(View)
+- uid: Terminal.Gui.View
+  parent: Terminal.Gui
+  isExternal: false
+  name: View
+  nameWithType: View
+  fullName: Terminal.Gui.View
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   parent: Terminal.Gui.Dim
   parent: Terminal.Gui.Dim
   isExternal: false
   isExternal: false
@@ -238,6 +300,12 @@ references:
   name: Single
   name: Single
   nameWithType: Single
   nameWithType: Single
   fullName: System.Single
   fullName: System.Single
+- uid: Terminal.Gui.Dim.Width(Terminal.Gui.View)
+  parent: Terminal.Gui.Dim
+  isExternal: false
+  name: Width(View)
+  nameWithType: Dim.Width(View)
+  fullName: Dim.Width(View)
 - uid: Terminal.Gui.Dim.#ctor*
 - uid: Terminal.Gui.Dim.#ctor*
   parent: Terminal.Gui.Dim
   parent: Terminal.Gui.Dim
   isExternal: false
   isExternal: false
@@ -250,6 +318,12 @@ references:
   name: Fill
   name: Fill
   nameWithType: Dim.Fill
   nameWithType: Dim.Fill
   fullName: Dim.Fill
   fullName: Dim.Fill
+- uid: Terminal.Gui.Dim.Height*
+  parent: Terminal.Gui.Dim
+  isExternal: false
+  name: Height
+  nameWithType: Dim.Height
+  fullName: Dim.Height
 - uid: Terminal.Gui.Dim.op_Addition*
 - uid: Terminal.Gui.Dim.op_Addition*
   parent: Terminal.Gui.Dim
   parent: Terminal.Gui.Dim
   isExternal: false
   isExternal: false
@@ -274,3 +348,9 @@ references:
   name: Percent
   name: Percent
   nameWithType: Dim.Percent
   nameWithType: Dim.Percent
   fullName: Dim.Percent
   fullName: Dim.Percent
+- uid: Terminal.Gui.Dim.Width*
+  parent: Terminal.Gui.Dim
+  isExternal: false
+  name: Width
+  nameWithType: Dim.Width
+  fullName: Dim.Width

+ 233 - 0
docfx/api/Terminal.Gui/Terminal.Gui.Pos.yml

@@ -5,11 +5,17 @@ items:
   children:
   children:
   - Terminal.Gui.Pos.#ctor
   - Terminal.Gui.Pos.#ctor
   - Terminal.Gui.Pos.AnchorEnd(System.Int32)
   - Terminal.Gui.Pos.AnchorEnd(System.Int32)
+  - Terminal.Gui.Pos.Bottom(Terminal.Gui.View)
   - Terminal.Gui.Pos.Center
   - Terminal.Gui.Pos.Center
+  - Terminal.Gui.Pos.Left(Terminal.Gui.View)
   - Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   - Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   - Terminal.Gui.Pos.op_Implicit(System.Int32 to Terminal.Gui.Pos)
   - Terminal.Gui.Pos.op_Implicit(System.Int32 to Terminal.Gui.Pos)
   - Terminal.Gui.Pos.op_Subtraction(Terminal.Gui.Pos,Terminal.Gui.Pos)
   - Terminal.Gui.Pos.op_Subtraction(Terminal.Gui.Pos,Terminal.Gui.Pos)
   - Terminal.Gui.Pos.Percent(System.Single)
   - Terminal.Gui.Pos.Percent(System.Single)
+  - Terminal.Gui.Pos.Right(Terminal.Gui.View)
+  - Terminal.Gui.Pos.Top(Terminal.Gui.View)
+  - Terminal.Gui.Pos.X(Terminal.Gui.View)
+  - Terminal.Gui.Pos.Y(Terminal.Gui.View)
   langs:
   langs:
   - csharp
   - csharp
   name: Pos
   name: Pos
@@ -30,6 +36,11 @@ items:
                     to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                     to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                     of the view 3 characters to the left after centering for example.
                     of the view 3 characters to the left after centering for example.
                   </p>
                   </p>
+        <p>
+                    It is possible to reference coordinates of another view by using the methods
+                    Left(View), Right(View), Bottom(View), Top(View).   The X(View) and Y(View) are
+                    aliases to Left(View) and Top(View) respectively.
+                  </p>
   syntax:
   syntax:
     content: public class Pos
     content: public class Pos
   inheritance:
   inheritance:
@@ -77,6 +88,30 @@ items:
       description: The Pos object anchored to the end (the bottom or the right side).
       description: The Pos object anchored to the end (the bottom or the right side).
   overload: Terminal.Gui.Pos.AnchorEnd*
   overload: Terminal.Gui.Pos.AnchorEnd*
   exceptions: []
   exceptions: []
+- uid: Terminal.Gui.Pos.Bottom(Terminal.Gui.View)
+  id: Bottom(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: Bottom(View)
+  nameWithType: Pos.Bottom(View)
+  fullName: Pos.Bottom(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Bottom (Y+Height) coordinate of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos Bottom (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.Bottom*
+  exceptions: []
 - uid: Terminal.Gui.Pos.Center
 - uid: Terminal.Gui.Pos.Center
   id: Center
   id: Center
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
@@ -98,6 +133,30 @@ items:
       description: The center Pos.
       description: The center Pos.
   overload: Terminal.Gui.Pos.Center*
   overload: Terminal.Gui.Pos.Center*
   exceptions: []
   exceptions: []
+- uid: Terminal.Gui.Pos.Left(Terminal.Gui.View)
+  id: Left(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: Left(View)
+  nameWithType: Pos.Left(View)
+  fullName: Pos.Left(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Left (X) position of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos Left (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.Left*
+  exceptions: []
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   id: op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   id: op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
@@ -200,6 +259,102 @@ items:
       description: The percent Pos object.
       description: The percent Pos object.
   overload: Terminal.Gui.Pos.Percent*
   overload: Terminal.Gui.Pos.Percent*
   exceptions: []
   exceptions: []
+- uid: Terminal.Gui.Pos.Right(Terminal.Gui.View)
+  id: Right(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: Right(View)
+  nameWithType: Pos.Right(View)
+  fullName: Pos.Right(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Right (X+Width) coordinate of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos Right (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.Right*
+  exceptions: []
+- uid: Terminal.Gui.Pos.Top(Terminal.Gui.View)
+  id: Top(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: Top(View)
+  nameWithType: Pos.Top(View)
+  fullName: Pos.Top(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Top (Y) position of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos Top (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.Top*
+  exceptions: []
+- uid: Terminal.Gui.Pos.X(Terminal.Gui.View)
+  id: X(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: X(View)
+  nameWithType: Pos.X(View)
+  fullName: Pos.X(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Left (X) position of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos X (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.X*
+  exceptions: []
+- uid: Terminal.Gui.Pos.Y(Terminal.Gui.View)
+  id: Y(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  langs:
+  - csharp
+  name: Y(View)
+  nameWithType: Pos.Y(View)
+  fullName: Pos.Y(View)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Returns a Pos object tracks the Top (Y) position of the specified view.
+  syntax:
+    content: public static Terminal.Gui.Pos Y (Terminal.Gui.View view);
+    parameters:
+    - id: view
+      type: Terminal.Gui.View
+      description: The view that will be tracked.
+    return:
+      type: Terminal.Gui.Pos
+      description: The Position that depends on the other view.
+  overload: Terminal.Gui.Pos.Y*
+  exceptions: []
 references:
 references:
 - uid: System.Object
 - uid: System.Object
   parent: System
   parent: System
@@ -231,12 +386,30 @@ references:
   name: Int32
   name: Int32
   nameWithType: Int32
   nameWithType: Int32
   fullName: System.Int32
   fullName: System.Int32
+- uid: Terminal.Gui.Pos.Bottom(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Bottom(View)
+  nameWithType: Pos.Bottom(View)
+  fullName: Pos.Bottom(View)
+- uid: Terminal.Gui.View
+  parent: Terminal.Gui
+  isExternal: false
+  name: View
+  nameWithType: View
+  fullName: Terminal.Gui.View
 - uid: Terminal.Gui.Pos.Center
 - uid: Terminal.Gui.Pos.Center
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
   isExternal: false
   isExternal: false
   name: Center()
   name: Center()
   nameWithType: Pos.Center()
   nameWithType: Pos.Center()
   fullName: Pos.Center()
   fullName: Pos.Center()
+- uid: Terminal.Gui.Pos.Left(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Left(View)
+  nameWithType: Pos.Left(View)
+  fullName: Pos.Left(View)
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
   isExternal: false
   isExternal: false
@@ -267,6 +440,30 @@ references:
   name: Single
   name: Single
   nameWithType: Single
   nameWithType: Single
   fullName: System.Single
   fullName: System.Single
+- uid: Terminal.Gui.Pos.Right(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Right(View)
+  nameWithType: Pos.Right(View)
+  fullName: Pos.Right(View)
+- uid: Terminal.Gui.Pos.Top(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Top(View)
+  nameWithType: Pos.Top(View)
+  fullName: Pos.Top(View)
+- uid: Terminal.Gui.Pos.X(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: X(View)
+  nameWithType: Pos.X(View)
+  fullName: Pos.X(View)
+- uid: Terminal.Gui.Pos.Y(Terminal.Gui.View)
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Y(View)
+  nameWithType: Pos.Y(View)
+  fullName: Pos.Y(View)
 - uid: Terminal.Gui.Pos.#ctor*
 - uid: Terminal.Gui.Pos.#ctor*
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
   isExternal: false
   isExternal: false
@@ -279,12 +476,24 @@ references:
   name: AnchorEnd
   name: AnchorEnd
   nameWithType: Pos.AnchorEnd
   nameWithType: Pos.AnchorEnd
   fullName: Pos.AnchorEnd
   fullName: Pos.AnchorEnd
+- uid: Terminal.Gui.Pos.Bottom*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Bottom
+  nameWithType: Pos.Bottom
+  fullName: Pos.Bottom
 - uid: Terminal.Gui.Pos.Center*
 - uid: Terminal.Gui.Pos.Center*
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
   isExternal: false
   isExternal: false
   name: Center
   name: Center
   nameWithType: Pos.Center
   nameWithType: Pos.Center
   fullName: Pos.Center
   fullName: Pos.Center
+- uid: Terminal.Gui.Pos.Left*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Left
+  nameWithType: Pos.Left
+  fullName: Pos.Left
 - uid: Terminal.Gui.Pos.op_Addition*
 - uid: Terminal.Gui.Pos.op_Addition*
   parent: Terminal.Gui.Pos
   parent: Terminal.Gui.Pos
   isExternal: false
   isExternal: false
@@ -309,3 +518,27 @@ references:
   name: Percent
   name: Percent
   nameWithType: Pos.Percent
   nameWithType: Pos.Percent
   fullName: Pos.Percent
   fullName: Pos.Percent
+- uid: Terminal.Gui.Pos.Right*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Right
+  nameWithType: Pos.Right
+  fullName: Pos.Right
+- uid: Terminal.Gui.Pos.Top*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Top
+  nameWithType: Pos.Top
+  fullName: Pos.Top
+- uid: Terminal.Gui.Pos.X*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: X
+  nameWithType: Pos.X
+  fullName: Pos.X
+- uid: Terminal.Gui.Pos.Y*
+  parent: Terminal.Gui.Pos
+  isExternal: false
+  name: Y
+  nameWithType: Pos.Y
+  fullName: Pos.Y

+ 7 - 0
docfx/articles/overview.md

@@ -182,6 +182,7 @@ The `Pos` type on `X` and `Y` offers a few options:
 * Percentage of the parent's view size - `Pos.Percent(n)`
 * Percentage of the parent's view size - `Pos.Percent(n)`
 * Anchored from the end of the dimension - `AnchorEnd(int margin=0)`
 * Anchored from the end of the dimension - `AnchorEnd(int margin=0)`
 * Centered, using `Center()`
 * Centered, using `Center()`
+* Reference the Left (X), Top (Y), Bottom, Right positions of another view
 
 
 The `Pos` values can be added or subtracted, like this:
 The `Pos` values can be added or subtracted, like this:
 
 
@@ -193,6 +194,9 @@ view.Y = Pos.Percent (20);
 
 
 anotherView.X = AnchorEnd (10);
 anotherView.X = AnchorEnd (10);
 anotherView.Width = 9;
 anotherView.Width = 9;
+
+myView.X = Pos.X (view);
+myView.Y = Pos.Bottom (anotherView);
 ```
 ```
 
 
 ### The `Dim` Type
 ### The `Dim` Type
@@ -203,6 +207,7 @@ the following options:
 * Absolute size, by passing an integer
 * Absolute size, by passing an integer
 * Percentage of the parent's view size - `Dim.Percent(n)`
 * Percentage of the parent's view size - `Dim.Percent(n)`
 * Fill to the end - `Dim.Fill ()`
 * Fill to the end - `Dim.Fill ()`
+* Reference the Width or Height of another view
 
 
 Like, `Pos`, objects of type `Dim` can be added an subtracted, like this:
 Like, `Pos`, objects of type `Dim` can be added an subtracted, like this:
 
 
@@ -213,6 +218,8 @@ Like, `Pos`, objects of type `Dim` can be added an subtracted, like this:
 view.Width = Dim.Fill () - 10;
 view.Width = Dim.Fill () - 10;
 
 
 view.Height = Dim.Percent(20) - 1;
 view.Height = Dim.Percent(20) - 1;
+
+anotherView.Height = Dim.Height (view)+1
 ```
 ```
 
 
 # TopLevels, Windows and Dialogs.
 # TopLevels, Windows and Dialogs.

+ 90 - 0
docs/api/Terminal.Gui/Terminal.Gui.Dim.html

@@ -156,6 +156,51 @@
   </table>
   </table>
   
   
   
   
+  <a id="Terminal_Gui_Dim_Height_" data-uid="Terminal.Gui.Dim.Height*"></a>
+  <h4 id="Terminal_Gui_Dim_Height_Terminal_Gui_View_" data-uid="Terminal.Gui.Dim.Height(Terminal.Gui.View)">Height(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Dim object tracks the Height of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Dim Height (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Dim.html">Dim</a></td>
+        <td><p>The dimension of the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_Dim_Percent_" data-uid="Terminal.Gui.Dim.Percent*"></a>
   <a id="Terminal_Gui_Dim_Percent_" data-uid="Terminal.Gui.Dim.Percent*"></a>
   <h4 id="Terminal_Gui_Dim_Percent_System_Single_" data-uid="Terminal.Gui.Dim.Percent(System.Single)">Percent(Single)</h4>
   <h4 id="Terminal_Gui_Dim_Percent_System_Single_" data-uid="Terminal.Gui.Dim.Percent(System.Single)">Percent(Single)</h4>
   <div class="markdown level1 summary"><p>Creates a percentage Dim object</p>
   <div class="markdown level1 summary"><p>Creates a percentage Dim object</p>
@@ -199,6 +244,51 @@
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  
+  
+  <a id="Terminal_Gui_Dim_Width_" data-uid="Terminal.Gui.Dim.Width*"></a>
+  <h4 id="Terminal_Gui_Dim_Width_Terminal_Gui_View_" data-uid="Terminal.Gui.Dim.Width(Terminal.Gui.View)">Width(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Dim object tracks the Width of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Dim Width (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Dim.html">Dim</a></td>
+        <td><p>The dimension of the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="operators">Operators
   <h3 id="operators">Operators
   </h3>
   </h3>
   
   

+ 275 - 0
docs/api/Terminal.Gui/Terminal.Gui.Pos.html

@@ -99,6 +99,11 @@
                 integer value (via the implicit integer to Pos conversion), and they can be combined
                 integer value (via the implicit integer to Pos conversion), and they can be combined
                 to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                 to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                 of the view 3 characters to the left after centering for example.
                 of the view 3 characters to the left after centering for example.
+              </p>
+    <p>
+                It is possible to reference coordinates of another view by using the methods
+                Left(View), Right(View), Bottom(View), Top(View).   The X(View) and Y(View) are
+                aliases to Left(View) and Top(View) respectively.
               </p></div>
               </p></div>
   <h3 id="constructors">Constructors
   <h3 id="constructors">Constructors
   </h3>
   </h3>
@@ -162,6 +167,51 @@
   </table>
   </table>
   
   
   
   
+  <a id="Terminal_Gui_Pos_Bottom_" data-uid="Terminal.Gui.Pos.Bottom*"></a>
+  <h4 id="Terminal_Gui_Pos_Bottom_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.Bottom(Terminal.Gui.View)">Bottom(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Bottom (Y+Height) coordinate of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos Bottom (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_Pos_Center_" data-uid="Terminal.Gui.Pos.Center*"></a>
   <a id="Terminal_Gui_Pos_Center_" data-uid="Terminal.Gui.Pos.Center*"></a>
   <h4 id="Terminal_Gui_Pos_Center" data-uid="Terminal.Gui.Pos.Center">Center()</h4>
   <h4 id="Terminal_Gui_Pos_Center" data-uid="Terminal.Gui.Pos.Center">Center()</h4>
   <div class="markdown level1 summary"><p>Returns a Pos object that can be used to center the views.</p>
   <div class="markdown level1 summary"><p>Returns a Pos object that can be used to center the views.</p>
@@ -189,6 +239,51 @@
   </table>
   </table>
   
   
   
   
+  <a id="Terminal_Gui_Pos_Left_" data-uid="Terminal.Gui.Pos.Left*"></a>
+  <h4 id="Terminal_Gui_Pos_Left_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.Left(Terminal.Gui.View)">Left(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Left (X) position of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos Left (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_Pos_Percent_" data-uid="Terminal.Gui.Pos.Percent*"></a>
   <a id="Terminal_Gui_Pos_Percent_" data-uid="Terminal.Gui.Pos.Percent*"></a>
   <h4 id="Terminal_Gui_Pos_Percent_System_Single_" data-uid="Terminal.Gui.Pos.Percent(System.Single)">Percent(Single)</h4>
   <h4 id="Terminal_Gui_Pos_Percent_System_Single_" data-uid="Terminal.Gui.Pos.Percent(System.Single)">Percent(Single)</h4>
   <div class="markdown level1 summary"><p>Creates a percentage Pos object</p>
   <div class="markdown level1 summary"><p>Creates a percentage Pos object</p>
@@ -232,6 +327,186 @@
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  
+  
+  <a id="Terminal_Gui_Pos_Right_" data-uid="Terminal.Gui.Pos.Right*"></a>
+  <h4 id="Terminal_Gui_Pos_Right_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.Right(Terminal.Gui.View)">Right(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Right (X+Width) coordinate of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos Right (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_Pos_Top_" data-uid="Terminal.Gui.Pos.Top*"></a>
+  <h4 id="Terminal_Gui_Pos_Top_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.Top(Terminal.Gui.View)">Top(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Top (Y) position of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos Top (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_Pos_X_" data-uid="Terminal.Gui.Pos.X*"></a>
+  <h4 id="Terminal_Gui_Pos_X_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.X(Terminal.Gui.View)">X(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Left (X) position of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos X (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_Pos_Y_" data-uid="Terminal.Gui.Pos.Y*"></a>
+  <h4 id="Terminal_Gui_Pos_Y_Terminal_Gui_View_" data-uid="Terminal.Gui.Pos.Y(Terminal.Gui.View)">Y(View)</h4>
+  <div class="markdown level1 summary"><p>Returns a Pos object tracks the Top (Y) position of the specified view.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Terminal.Gui.Pos Y (Terminal.Gui.View view);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td><p>The view that will be tracked.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Pos.html">Pos</a></td>
+        <td><p>The Position that depends on the other view.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="operators">Operators
   <h3 id="operators">Operators
   </h3>
   </h3>
   
   

+ 7 - 0
docs/articles/overview.html

@@ -204,6 +204,7 @@ var label2 = new Label (new Rect (1, 2, 20, 1), &quot;World&quot;)
 <li>Percentage of the parent&#39;s view size - <code>Pos.Percent(n)</code></li>
 <li>Percentage of the parent&#39;s view size - <code>Pos.Percent(n)</code></li>
 <li>Anchored from the end of the dimension - <code>AnchorEnd(int margin=0)</code></li>
 <li>Anchored from the end of the dimension - <code>AnchorEnd(int margin=0)</code></li>
 <li>Centered, using <code>Center()</code></li>
 <li>Centered, using <code>Center()</code></li>
+<li>Reference the Left (X), Top (Y), Bottom, Right positions of another view</li>
 </ul>
 </ul>
 <p>The <code>Pos</code> values can be added or subtracted, like this:</p>
 <p>The <code>Pos</code> values can be added or subtracted, like this:</p>
 <pre><code class="lang-csharp">// Set the X coordinate to 10 characters left from the center
 <pre><code class="lang-csharp">// Set the X coordinate to 10 characters left from the center
@@ -213,6 +214,9 @@ view.Y = Pos.Percent (20);
 
 
 anotherView.X = AnchorEnd (10);
 anotherView.X = AnchorEnd (10);
 anotherView.Width = 9;
 anotherView.Width = 9;
+
+myView.X = Pos.X (view);
+myView.Y = Pos.Bottom (anotherView);
 </code></pre><h3 id="the-dim-type">The <code>Dim</code> Type</h3>
 </code></pre><h3 id="the-dim-type">The <code>Dim</code> Type</h3>
 <p>The <code>Dim</code> type is used for the <code>Width</code> and <code>Height</code> properties on the View and offers
 <p>The <code>Dim</code> type is used for the <code>Width</code> and <code>Height</code> properties on the View and offers
 the following options:</p>
 the following options:</p>
@@ -220,6 +224,7 @@ the following options:</p>
 <li>Absolute size, by passing an integer</li>
 <li>Absolute size, by passing an integer</li>
 <li>Percentage of the parent&#39;s view size - <code>Dim.Percent(n)</code></li>
 <li>Percentage of the parent&#39;s view size - <code>Dim.Percent(n)</code></li>
 <li>Fill to the end - <code>Dim.Fill ()</code></li>
 <li>Fill to the end - <code>Dim.Fill ()</code></li>
+<li>Reference the Width or Height of another view</li>
 </ul>
 </ul>
 <p>Like, <code>Pos</code>, objects of type <code>Dim</code> can be added an subtracted, like this:</p>
 <p>Like, <code>Pos</code>, objects of type <code>Dim</code> can be added an subtracted, like this:</p>
 <pre><code class="lang-csharp">// Set the Width to be 10 characters less than filling 
 <pre><code class="lang-csharp">// Set the Width to be 10 characters less than filling 
@@ -227,6 +232,8 @@ the following options:</p>
 view.Width = Dim.Fill () - 10;
 view.Width = Dim.Fill () - 10;
 
 
 view.Height = Dim.Percent(20) - 1;
 view.Height = Dim.Percent(20) - 1;
+
+anotherView.Height = Dim.Height (view)+1
 </code></pre><h1 id="toplevels-windows-and-dialogs">TopLevels, Windows and Dialogs.</h1>
 </code></pre><h1 id="toplevels-windows-and-dialogs">TopLevels, Windows and Dialogs.</h1>
 <p>Among the many kinds of views, you typically will create a <a href="../api/Terminal.Gui/Terminal.Gui.Toplevel.html">Toplevel</a> view (or any of its subclasses,
 <p>Among the many kinds of views, you typically will create a <a href="../api/Terminal.Gui/Terminal.Gui.Toplevel.html">Toplevel</a> view (or any of its subclasses,
 like <a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Window</a> or <a href="../api/Terminal.Gui/Terminal.Gui.Dialog.html">Dialog</a> which is special kind of views
 like <a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Window</a> or <a href="../api/Terminal.Gui/Terminal.Gui.Dialog.html">Dialog</a> which is special kind of views

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
docs/manifest.json


+ 80 - 0
docs/xrefmap.yml

@@ -2106,6 +2106,16 @@ references:
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Fill_
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Fill_
   fullName: Dim.Fill
   fullName: Dim.Fill
   nameWithType: Dim.Fill
   nameWithType: Dim.Fill
+- uid: Terminal.Gui.Dim.Height(Terminal.Gui.View)
+  name: Height(View)
+  href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Height_Terminal_Gui_View_
+  fullName: Dim.Height(View)
+  nameWithType: Dim.Height(View)
+- uid: Terminal.Gui.Dim.Height*
+  name: Height
+  href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Height_
+  fullName: Dim.Height
+  nameWithType: Dim.Height
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
 - uid: Terminal.Gui.Dim.op_Addition(Terminal.Gui.Dim,Terminal.Gui.Dim)
   name: op_Addition(Dim, Dim)
   name: op_Addition(Dim, Dim)
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_op_Addition_Terminal_Gui_Dim_Terminal_Gui_Dim_
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_op_Addition_Terminal_Gui_Dim_Terminal_Gui_Dim_
@@ -2146,6 +2156,16 @@ references:
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Percent_
   href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Percent_
   fullName: Dim.Percent
   fullName: Dim.Percent
   nameWithType: Dim.Percent
   nameWithType: Dim.Percent
+- uid: Terminal.Gui.Dim.Width(Terminal.Gui.View)
+  name: Width(View)
+  href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Width_Terminal_Gui_View_
+  fullName: Dim.Width(View)
+  nameWithType: Dim.Width(View)
+- uid: Terminal.Gui.Dim.Width*
+  name: Width
+  href: api/Terminal.Gui/Terminal.Gui.Dim.html#Terminal_Gui_Dim_Width_
+  fullName: Dim.Width
+  nameWithType: Dim.Width
 - uid: Terminal.Gui.FileDialog
 - uid: Terminal.Gui.FileDialog
   name: FileDialog
   name: FileDialog
   href: api/Terminal.Gui/Terminal.Gui.FileDialog.html
   href: api/Terminal.Gui/Terminal.Gui.FileDialog.html
@@ -3506,6 +3526,16 @@ references:
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_AnchorEnd_
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_AnchorEnd_
   fullName: Pos.AnchorEnd
   fullName: Pos.AnchorEnd
   nameWithType: Pos.AnchorEnd
   nameWithType: Pos.AnchorEnd
+- uid: Terminal.Gui.Pos.Bottom(Terminal.Gui.View)
+  name: Bottom(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Bottom_Terminal_Gui_View_
+  fullName: Pos.Bottom(View)
+  nameWithType: Pos.Bottom(View)
+- uid: Terminal.Gui.Pos.Bottom*
+  name: Bottom
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Bottom_
+  fullName: Pos.Bottom
+  nameWithType: Pos.Bottom
 - uid: Terminal.Gui.Pos.Center
 - uid: Terminal.Gui.Pos.Center
   name: Center()
   name: Center()
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Center
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Center
@@ -3516,6 +3546,16 @@ references:
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Center_
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Center_
   fullName: Pos.Center
   fullName: Pos.Center
   nameWithType: Pos.Center
   nameWithType: Pos.Center
+- uid: Terminal.Gui.Pos.Left(Terminal.Gui.View)
+  name: Left(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Left_Terminal_Gui_View_
+  fullName: Pos.Left(View)
+  nameWithType: Pos.Left(View)
+- uid: Terminal.Gui.Pos.Left*
+  name: Left
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Left_
+  fullName: Pos.Left
+  nameWithType: Pos.Left
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
 - uid: Terminal.Gui.Pos.op_Addition(Terminal.Gui.Pos,Terminal.Gui.Pos)
   name: op_Addition(Pos, Pos)
   name: op_Addition(Pos, Pos)
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_op_Addition_Terminal_Gui_Pos_Terminal_Gui_Pos_
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_op_Addition_Terminal_Gui_Pos_Terminal_Gui_Pos_
@@ -3556,6 +3596,46 @@ references:
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Percent_
   href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Percent_
   fullName: Pos.Percent
   fullName: Pos.Percent
   nameWithType: Pos.Percent
   nameWithType: Pos.Percent
+- uid: Terminal.Gui.Pos.Right(Terminal.Gui.View)
+  name: Right(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Right_Terminal_Gui_View_
+  fullName: Pos.Right(View)
+  nameWithType: Pos.Right(View)
+- uid: Terminal.Gui.Pos.Right*
+  name: Right
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Right_
+  fullName: Pos.Right
+  nameWithType: Pos.Right
+- uid: Terminal.Gui.Pos.Top(Terminal.Gui.View)
+  name: Top(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Top_Terminal_Gui_View_
+  fullName: Pos.Top(View)
+  nameWithType: Pos.Top(View)
+- uid: Terminal.Gui.Pos.Top*
+  name: Top
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Top_
+  fullName: Pos.Top
+  nameWithType: Pos.Top
+- uid: Terminal.Gui.Pos.X(Terminal.Gui.View)
+  name: X(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_X_Terminal_Gui_View_
+  fullName: Pos.X(View)
+  nameWithType: Pos.X(View)
+- uid: Terminal.Gui.Pos.X*
+  name: X
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_X_
+  fullName: Pos.X
+  nameWithType: Pos.X
+- uid: Terminal.Gui.Pos.Y(Terminal.Gui.View)
+  name: Y(View)
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Y_Terminal_Gui_View_
+  fullName: Pos.Y(View)
+  nameWithType: Pos.Y(View)
+- uid: Terminal.Gui.Pos.Y*
+  name: Y
+  href: api/Terminal.Gui/Terminal.Gui.Pos.html#Terminal_Gui_Pos_Y_
+  fullName: Pos.Y
+  nameWithType: Pos.Y
 - uid: Terminal.Gui.ProgressBar
 - uid: Terminal.Gui.ProgressBar
   name: ProgressBar
   name: ProgressBar
   href: api/Terminal.Gui/Terminal.Gui.ProgressBar.html
   href: api/Terminal.Gui/Terminal.Gui.ProgressBar.html

+ 44 - 0
ecmadocs/en/Terminal.Gui/Dim.xml

@@ -59,6 +59,28 @@
         <remarks>To be added.</remarks>
         <remarks>To be added.</remarks>
       </Docs>
       </Docs>
     </Member>
     </Member>
+    <Member MemberName="Height">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Dim Height (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Dim Height(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Dim</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Dim object tracks the Height of the specified view.
+            </summary>
+        <returns>The dimension of the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="op_Addition">
     <Member MemberName="op_Addition">
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Dim op_Addition (Terminal.Gui.Dim left, Terminal.Gui.Dim right);" />
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Dim op_Addition (Terminal.Gui.Dim left, Terminal.Gui.Dim right);" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Terminal.Gui.Dim op_Addition(class Terminal.Gui.Dim left, class Terminal.Gui.Dim right) cil managed" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Terminal.Gui.Dim op_Addition(class Terminal.Gui.Dim left, class Terminal.Gui.Dim right) cil managed" />
@@ -151,5 +173,27 @@
         <remarks>To be added.</remarks>
         <remarks>To be added.</remarks>
       </Docs>
       </Docs>
     </Member>
     </Member>
+    <Member MemberName="Width">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Dim Width (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Dim Width(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Dim</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Dim object tracks the Width of the specified view.
+            </summary>
+        <returns>The dimension of the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
   </Members>
   </Members>
 </Type>
 </Type>

+ 137 - 0
ecmadocs/en/Terminal.Gui/Pos.xml

@@ -27,6 +27,11 @@
                 to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                 to produce more useful layouts, like: Pos.Center - 3, which would shift the postion
                 of the view 3 characters to the left after centering for example.
                 of the view 3 characters to the left after centering for example.
               </para>
               </para>
+      <para>
+                It is possible to reference coordinates of another view by using the methods
+                Left(View), Right(View), Bottom(View), Top(View).   The X(View) and Y(View) are
+                aliases to Left(View) and Top(View) respectively.
+              </para>
     </remarks>
     </remarks>
   </Docs>
   </Docs>
   <Members>
   <Members>
@@ -66,6 +71,28 @@
         <remarks>To be added.</remarks>
         <remarks>To be added.</remarks>
       </Docs>
       </Docs>
     </Member>
     </Member>
+    <Member MemberName="Bottom">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Bottom (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Bottom(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Bottom (Y+Height) coordinate of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="Center">
     <Member MemberName="Center">
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Center ();" />
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Center ();" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Center() cil managed" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Center() cil managed" />
@@ -85,6 +112,28 @@
         <remarks>To be added.</remarks>
         <remarks>To be added.</remarks>
       </Docs>
       </Docs>
     </Member>
     </Member>
+    <Member MemberName="Left">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Left (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Left(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Left (X) position of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="op_Addition">
     <Member MemberName="op_Addition">
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos op_Addition (Terminal.Gui.Pos left, Terminal.Gui.Pos right);" />
       <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos op_Addition (Terminal.Gui.Pos left, Terminal.Gui.Pos right);" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Terminal.Gui.Pos op_Addition(class Terminal.Gui.Pos left, class Terminal.Gui.Pos right) cil managed" />
       <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Terminal.Gui.Pos op_Addition(class Terminal.Gui.Pos left, class Terminal.Gui.Pos right) cil managed" />
@@ -177,5 +226,93 @@
         <remarks>To be added.</remarks>
         <remarks>To be added.</remarks>
       </Docs>
       </Docs>
     </Member>
     </Member>
+    <Member MemberName="Right">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Right (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Right(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Right (X+Width) coordinate of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Top">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Top (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Top(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Top (Y) position of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="X">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos X (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos X(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Left (X) position of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Y">
+      <MemberSignature Language="C#" Value="public static Terminal.Gui.Pos Y (Terminal.Gui.View view);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class Terminal.Gui.Pos Y(class Terminal.Gui.View view) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Pos</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="view" Type="Terminal.Gui.View" />
+      </Parameters>
+      <Docs>
+        <param name="view">The view that will be tracked.</param>
+        <summary>
+            Returns a Pos object tracks the Top (Y) position of the specified view.
+            </summary>
+        <returns>The Position that depends on the other view.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
   </Members>
   </Members>
 </Type>
 </Type>

Неке датотеке нису приказане због велике количине промена