Răsfoiți Sursa

Fixed collapse scrolling and color for expand/collapse

tznind 4 ani în urmă
părinte
comite
64042132ed

+ 2 - 1
Terminal.Gui/Views/TreeView.cs

@@ -591,6 +591,7 @@ namespace Terminal.Gui {
 				var parent = GetParent(SelectedObject);
 				if(parent != null){
 					SelectedObject = parent;
+					AdjustSelection(0);
 					SetNeedsDisplay();
 				}
 			}
@@ -624,7 +625,7 @@ namespace Terminal.Gui {
 		/// </summary>
 		/// <remarks>If nothing is currently selected the first root is selected.  If the selected object is no longer in the tree the first object is selected</remarks>
 		/// <param name="offset"></param>
-		private void AdjustSelection (int offset)
+		public void AdjustSelection (int offset)
 		{
 			if(SelectedObject == null){
 				SelectedObject = roots.Keys.FirstOrDefault();

+ 10 - 4
UICatalog/Scenarios/TreeViewFileSystem.cs

@@ -28,6 +28,8 @@ namespace UICatalog.Scenarios {
 		private MenuItem miArrowSymbols;
 		private MenuItem miNoSymbols;
 		private MenuItem miColoredSymbols;
+		private Terminal.Gui.Attribute green;
+		private Terminal.Gui.Attribute red;
 
 		public override void Setup ()
 		{
@@ -91,6 +93,9 @@ namespace UICatalog.Scenarios {
 			SetupNodeTree();
 
 			Win.Add(treeViewNodes);
+
+			green = Application.Driver.MakeAttribute (Color.Green, Color.Blue);			
+			red = Application.Driver.MakeAttribute (Color.Red, Color.Blue);
 		}
 
 		private void SetupNodeTree ()
@@ -145,22 +150,23 @@ namespace UICatalog.Scenarios {
 		}
 		private void ShowColoredExpandableSymbols()
 		{
-			ShowColoredExpandableSymbols(treeViewNodes);
+			miColoredSymbols.Checked = !miColoredSymbols.Checked;
+
 			ShowColoredExpandableSymbols(treeViewFiles);
+			ShowColoredExpandableSymbols(treeViewNodes);
 		}
 
 		private void ShowColoredExpandableSymbols (ITreeView treeView)
 		{
-			miColoredSymbols.Checked = !miColoredSymbols.Checked;
 			// Toggle Green expand symbols
 			if(miColoredSymbols.Checked)
-				treeView.Style.ExpandableSymbolColor =  new Terminal.Gui.Attribute(Color.Green,Win.ColorScheme.Normal.Background);
+				treeView.Style.ExpandableSymbolColor =  green;
 			else
 				treeView.Style.ExpandableSymbolColor =  null; //clear it
 
 			// Toggle Red collapse symbols
 			if(miColoredSymbols.Checked)
-				treeView.Style.CollapseableSymbolColor =  new Terminal.Gui.Attribute(Color.Red,Win.ColorScheme.Normal.Background);
+				treeView.Style.CollapseableSymbolColor =  red;
 			else
 				treeView.Style.CollapseableSymbolColor =  null; //clear it