mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-30 17:57:57 +01:00
Change TreeView default cursor to invisible and force invisible only when not MultiSelect
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user