From f534c2e7eb87d4d9c5c455c778bc2fffe88a9890 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 8 May 2022 23:02:47 +0100 Subject: [PATCH] Added color tailoring into scenario --- UICatalog/Scenarios/TreeViewFileSystem.cs | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/UICatalog/Scenarios/TreeViewFileSystem.cs b/UICatalog/Scenarios/TreeViewFileSystem.cs index d3510209b..f823690bb 100644 --- a/UICatalog/Scenarios/TreeViewFileSystem.cs +++ b/UICatalog/Scenarios/TreeViewFileSystem.cs @@ -24,6 +24,7 @@ namespace UICatalog.Scenarios { private MenuItem miUnicodeSymbols; private MenuItem miFullPaths; private MenuItem miLeaveLastRow; + private MenuItem miCustomColors; private Terminal.Gui.Attribute green; private Terminal.Gui.Attribute red; @@ -52,6 +53,7 @@ namespace UICatalog.Scenarios { miInvertSymbols = new MenuItem ("_InvertSymbols", "", () => InvertExpandableSymbols()){Checked = false, CheckType = MenuItemCheckStyle.Checked}, miFullPaths = new MenuItem ("_FullPaths", "", () => SetFullName()){Checked = false, CheckType = MenuItemCheckStyle.Checked}, miLeaveLastRow = new MenuItem ("_LeaveLastRow", "", () => SetLeaveLastRow()){Checked = true, CheckType = MenuItemCheckStyle.Checked}, + miCustomColors = new MenuItem ("C_ustomColors", "", () => SetCustomColors()){Checked = false, CheckType = MenuItemCheckStyle.Checked}, }), }); Top.Add (menu); @@ -209,6 +211,28 @@ namespace UICatalog.Scenarios { miLeaveLastRow.Checked = !miLeaveLastRow.Checked; treeViewFiles.Style.LeaveLastRow = miLeaveLastRow.Checked; } + private void SetCustomColors() + { + var yellow = new ColorScheme + { + Focus = new Terminal.Gui.Attribute(Color.BrightYellow,treeViewFiles.ColorScheme.Focus.Background), + Normal = new Terminal.Gui.Attribute (Color.BrightYellow,treeViewFiles.ColorScheme.Normal.Background), + }; + + miCustomColors.Checked = !miCustomColors.Checked; + + if(miCustomColors.Checked) + { + treeViewFiles.ColorGetter = (m)=> + { + return m is DirectoryInfo ? yellow : null; + }; + } + else + { + treeViewFiles.ColorGetter = null; + } + } private IEnumerable GetChildren (FileSystemInfo model)