ソースを参照

Add test for marking event Handled and demo how to do custom drawing

tznind 2 年 前
コミット
4dbf2f4cfd
1 ファイル変更41 行追加0 行削除
  1. 41 0
      UnitTests/Views/TreeViewTests.cs

+ 41 - 0
UnitTests/Views/TreeViewTests.cs

@@ -1123,6 +1123,47 @@ oot two
 			Assert.Equal ("root two", eventArgs [2].Model.Text);
 		}
 
+		[Fact, AutoInitShutdown]
+		public void TestTreeView_DrawLineEvent_Handled ()
+		{
+			var tv = new TreeView { Width = 20, Height = 10 };
+
+			tv.DrawLine += (s, e) => {
+				if(e.Model.Text.Equals("leaf 1")) {
+					e.Handled = true;
+
+					for (int i = 0; i < 10; i++) {
+
+						e.Tree.AddRune (i,e.Y,new System.Text.Rune('F'));
+					}
+				}
+			};
+
+			var n1 = new TreeNode ("root one");
+			var n1_1 = new TreeNode ("leaf 1");
+			var n1_2 = new TreeNode ("leaf 2");
+			n1.Children.Add (n1_1);
+			n1.Children.Add (n1_2);
+
+			var n2 = new TreeNode ("root two");
+			tv.AddObject (n1);
+			tv.AddObject (n2);
+			tv.Expand (n1);
+
+			tv.ColorScheme = new ColorScheme ();
+			tv.LayoutSubviews ();
+			tv.Draw ();
+
+			// Normal drawing of the tree view
+			TestHelpers.AssertDriverContentsAre (
+@"
+├-root one
+FFFFFFFFFF
+│ └─leaf 2
+└─root two
+", output);
+		}
+
 		[Fact, AutoInitShutdown]
 		public void TestTreeView_Filter ()
 		{