Change TreeView default cursor to invisible and force invisible only when not MultiSelect

This commit is contained in:
Thomas
2022-10-22 19:30:28 +01:00
parent 8ccfdd9311
commit ff3a1326ba
2 changed files with 20 additions and 8 deletions

View File

@@ -219,19 +219,23 @@ namespace Terminal.Gui {
/// <value></value>
public AspectGetterDelegate<T> AspectGetter { get; set; } = (o) => o.ToString () ?? "";
CursorVisibility desiredCursorVisibility = CursorVisibility.Default;
CursorVisibility desiredCursorVisibility = CursorVisibility.Invisible;
/// <summary>
/// Get / Set the wished cursor when the tree is focused
/// Get / Set the wished cursor when the tree is focused.
/// Only applies when <see cref="MultiSelect"/> is true.
/// Defaults to <see cref="CursorVisibility.Invisible"/>
/// </summary>
public CursorVisibility DesiredCursorVisibility {
get => desiredCursorVisibility;
get {
return MultiSelect ? desiredCursorVisibility : CursorVisibility.Invisible;
}
set {
if (desiredCursorVisibility != value && HasFocus) {
Application.Driver.SetCursorVisibility (value);
}
desiredCursorVisibility = value;
if (desiredCursorVisibility != value && HasFocus) {
Application.Driver.SetCursorVisibility (DesiredCursorVisibility);
}
}
}

View File

@@ -26,6 +26,7 @@ namespace UICatalog.Scenarios {
private MenuItem miLeaveLastRow;
private MenuItem miCustomColors;
private MenuItem miCursor;
private MenuItem miMultiSelect;
private Terminal.Gui.Attribute green;
private Terminal.Gui.Attribute red;
@@ -55,7 +56,8 @@ namespace UICatalog.Scenarios {
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},
miCursor = new MenuItem ("Curs_or", "", () => SetCursor()){Checked = true, CheckType = MenuItemCheckStyle.Checked},
miCursor = new MenuItem ("Curs_or (MultiSelect only)", "", () => SetCursor()){Checked = false, CheckType = MenuItemCheckStyle.Checked},
miMultiSelect = new MenuItem ("_MultiSelect", "", () => SetMultiSelect()){Checked = true, CheckType = MenuItemCheckStyle.Checked},
}),
});
Top.Add (menu);
@@ -276,6 +278,12 @@ namespace UICatalog.Scenarios {
miCursor.Checked = !miCursor.Checked;
treeViewFiles.DesiredCursorVisibility = miCursor.Checked ? CursorVisibility.Default : CursorVisibility.Invisible;
}
private void SetMultiSelect()
{
miMultiSelect.Checked = !miMultiSelect.Checked;
treeViewFiles.MultiSelect = miMultiSelect.Checked;
}
private void SetCustomColors()
{