5 implementations of IKeyboardToolTip
System.Windows.Forms (5)
System\Windows\Forms\Control.cs (1)
47
IKeyboardToolTip
,
System\Windows\Forms\Controls\DataGridView\DataGridViewCell.cs (1)
17
public abstract partial class DataGridViewCell : DataGridViewElement, ICloneable, IDisposable,
IKeyboardToolTip
System\Windows\Forms\Controls\ListView\ListViewItem.IKeyboardToolTip.cs (1)
8
public partial class ListViewItem :
IKeyboardToolTip
System\Windows\Forms\Controls\ToolStrips\ToolStripItem.cs (1)
27
IKeyboardToolTip
System\Windows\Forms\Controls\TreeView\TreeNode.IKeyboardToolTip.cs (1)
8
public partial class TreeNode :
IKeyboardToolTip
188 references to IKeyboardToolTip
System.Windows.Forms (108)
System\Windows\Forms\Control.cs (19)
5302
ToolStripControlHost is
IKeyboardToolTip
host
5580
=> ((
IKeyboardToolTip
?)ToolStripControlHost)?.GetNeighboringToolsRectangles() ?? GetOwnNeighboringToolsRectangles();
12807
bool
IKeyboardToolTip
.CanShowToolTipsNow() =>
12808
IsHandleCreated && Visible && (ToolStripControlHost is not
IKeyboardToolTip
toolTip || toolTip.CanShowToolTipsNow());
12810
Rectangle
IKeyboardToolTip
.GetNativeScreenRectangle() => GetToolNativeScreenRectangle();
12812
IList<Rectangle>
IKeyboardToolTip
.GetNeighboringToolsRectangles() => GetNeighboringToolsRectangles();
12814
bool
IKeyboardToolTip
.IsHoveredWithMouse() => IsHoveredWithMouse();
12816
bool
IKeyboardToolTip
.HasRtlModeEnabled() =>
12819
bool
IKeyboardToolTip
.AllowsToolTip() =>
12820
(ToolStripControlHost is not
IKeyboardToolTip
toolTip || toolTip.AllowsToolTip()) && AllowsKeyboardToolTip();
12822
IWin32Window
IKeyboardToolTip
.GetOwnerWindow() => this;
12824
void
IKeyboardToolTip
.OnHooked(ToolTip toolTip) => OnKeyboardToolTipHook(toolTip);
12826
void
IKeyboardToolTip
.OnUnhooked(ToolTip toolTip) => OnKeyboardToolTipUnhook(toolTip);
12828
string?
IKeyboardToolTip
.GetCaptionForTool(ToolTip toolTip) => GetCaptionForTool(toolTip);
12830
bool
IKeyboardToolTip
.ShowsOwnToolTip() =>
12831
(ToolStripControlHost is not
IKeyboardToolTip
toolTip || toolTip.ShowsOwnToolTip()) && ShowsOwnKeyboardToolTip();
12833
bool
IKeyboardToolTip
.IsBeingTabbedTo() => AreCommonNavigationalKeysDown();
12835
bool
IKeyboardToolTip
.AllowsChildrenToShowToolTips() => AllowsChildrenToShowToolTips();
12862
neighboringControlsRectangles.Add(((
IKeyboardToolTip
)control).GetNativeScreenRectangle());
System\Windows\Forms\Controls\DataGridView\DataGridViewCell.cs (14)
51
/// Used in <see cref="
IKeyboardToolTip
.GetNeighboringToolsRectangles"/> method.
289
bool
IKeyboardToolTip
.CanShowToolTipsNow() => Visible && DataGridView is not null;
291
Rectangle
IKeyboardToolTip
.GetNativeScreenRectangle() => AccessibilityObject.Bounds;
302
IList<Rectangle>
IKeyboardToolTip
.GetNeighboringToolsRectangles()
333
bool
IKeyboardToolTip
.IsHoveredWithMouse() => false;
335
bool
IKeyboardToolTip
.HasRtlModeEnabled() => DataGridView is not null && DataGridView.RightToLeft == RightToLeft.Yes;
337
bool
IKeyboardToolTip
.AllowsToolTip() => true;
339
IWin32Window?
IKeyboardToolTip
.GetOwnerWindow() => DataGridView;
341
void
IKeyboardToolTip
.OnHooked(ToolTip toolTip) => OnKeyboardToolTipHook(toolTip);
345
void
IKeyboardToolTip
.OnUnhooked(ToolTip toolTip) => OnKeyboardToolTipUnhook(toolTip);
349
string?
IKeyboardToolTip
.GetCaptionForTool(ToolTip toolTip)
359
bool
IKeyboardToolTip
.ShowsOwnToolTip() => true;
361
bool
IKeyboardToolTip
.IsBeingTabbedTo() => IsBeingTabbedTo();
365
bool
IKeyboardToolTip
.AllowsChildrenToShowToolTips() => true;
System\Windows\Forms\Controls\ListView\ListViewItem.IKeyboardToolTip.cs (13)
12
bool
IKeyboardToolTip
.AllowsChildrenToShowToolTips() => AllowsToolTips;
14
bool
IKeyboardToolTip
.AllowsToolTip() => true;
16
bool
IKeyboardToolTip
.CanShowToolTipsNow() => AllowsToolTips;
18
string
IKeyboardToolTip
.GetCaptionForTool(ToolTip toolTip) => ToolTipText;
20
Rectangle
IKeyboardToolTip
.GetNativeScreenRectangle() => GetNativeRectangle(Index);
22
IList<Rectangle>
IKeyboardToolTip
.GetNeighboringToolsRectangles()
64
IWin32Window?
IKeyboardToolTip
.GetOwnerWindow() => _listView;
66
bool
IKeyboardToolTip
.HasRtlModeEnabled() => _listView?.RightToLeft == RightToLeft.Yes;
68
bool
IKeyboardToolTip
.IsBeingTabbedTo() => Control.AreCommonNavigationalKeysDown();
70
bool
IKeyboardToolTip
.IsHoveredWithMouse() => _listView?.AccessibilityObject.Bounds.Contains(Control.MousePosition) ?? false;
72
void
IKeyboardToolTip
.OnHooked(ToolTip toolTip) => OnKeyboardToolTipHook(toolTip);
74
void
IKeyboardToolTip
.OnUnhooked(ToolTip toolTip) => OnKeyboardToolTipUnhook(toolTip);
76
bool
IKeyboardToolTip
.ShowsOwnToolTip() => AllowsToolTips;
System\Windows\Forms\Controls\ToolStrips\ToolStripItem.cs (19)
3544
bool
IKeyboardToolTip
.CanShowToolTipsNow()
3545
=> Visible && _parent is not null && ((
IKeyboardToolTip
)_parent).AllowsChildrenToShowToolTips();
3547
Rectangle
IKeyboardToolTip
.GetNativeScreenRectangle() => AccessibilityObject.Bounds;
3549
IList<Rectangle>
IKeyboardToolTip
.GetNeighboringToolsRectangles()
3565
neighbors.Add(((
IKeyboardToolTip
)items[previousIndex]).GetNativeScreenRectangle());
3571
neighbors.Add(((
IKeyboardToolTip
)items[nextIndex]).GetNativeScreenRectangle());
3585
neighbors.Add(((
IKeyboardToolTip
)dropDown.OwnerItem).GetNativeScreenRectangle());
3591
bool
IKeyboardToolTip
.IsHoveredWithMouse()
3592
=> ((
IKeyboardToolTip
)this).GetNativeScreenRectangle().Contains(Control.MousePosition);
3594
bool
IKeyboardToolTip
.HasRtlModeEnabled()
3595
=> _parent is not null && ((
IKeyboardToolTip
)_parent).HasRtlModeEnabled();
3597
bool
IKeyboardToolTip
.AllowsToolTip() => true;
3599
IWin32Window
IKeyboardToolTip
.GetOwnerWindow()
3605
void
IKeyboardToolTip
.OnHooked(ToolTip toolTip) => OnKeyboardToolTipHook(toolTip);
3607
void
IKeyboardToolTip
.OnUnhooked(ToolTip toolTip) => OnKeyboardToolTipUnhook(toolTip);
3609
string?
IKeyboardToolTip
.GetCaptionForTool(ToolTip toolTip) => ToolTipText;
3611
bool
IKeyboardToolTip
.ShowsOwnToolTip() => true;
3613
bool
IKeyboardToolTip
.IsBeingTabbedTo() => IsBeingTabbedTo();
3615
bool
IKeyboardToolTip
.AllowsChildrenToShowToolTips() => true;
System\Windows\Forms\Controls\ToolStrips\ToolStripManager.ModalMenuFilter.cs (3)
46
private readonly WeakReference<
IKeyboardToolTip
?> _lastFocusedTool = new(null);
165
IKeyboardToolTip
? lastFocusedTool = KeyboardToolTipStateMachine.Instance.LastFocusedTool;
213
if (_lastFocusedTool.TryGetTarget(out
IKeyboardToolTip
? tool) && tool is not null)
System\Windows\Forms\Controls\TreeView\TreeNode.IKeyboardToolTip.cs (13)
10
bool
IKeyboardToolTip
.AllowsChildrenToShowToolTips() => AllowToolTips;
12
bool
IKeyboardToolTip
.AllowsToolTip() => true;
14
bool
IKeyboardToolTip
.CanShowToolTipsNow() => AllowToolTips;
16
string
IKeyboardToolTip
.GetCaptionForTool(ToolTip toolTip) => ToolTipText;
18
Rectangle
IKeyboardToolTip
.GetNativeScreenRectangle() => RectangleToScreen(Bounds);
20
IList<Rectangle>
IKeyboardToolTip
.GetNeighboringToolsRectangles()
39
IWin32Window?
IKeyboardToolTip
.GetOwnerWindow() => TreeView;
41
bool
IKeyboardToolTip
.HasRtlModeEnabled() => TreeView?.RightToLeft == RightToLeft.Yes;
43
bool
IKeyboardToolTip
.IsBeingTabbedTo() => Control.AreCommonNavigationalKeysDown();
45
bool
IKeyboardToolTip
.IsHoveredWithMouse() => TreeView?.AccessibilityObject.Bounds.Contains(Control.MousePosition) ?? false;
47
void
IKeyboardToolTip
.OnHooked(ToolTip toolTip) => OnKeyboardToolTipHook(toolTip);
49
void
IKeyboardToolTip
.OnUnhooked(ToolTip toolTip) => OnKeyboardToolTipUnhook(toolTip);
51
bool
IKeyboardToolTip
.ShowsOwnToolTip() => AllowToolTips;
System\Windows\Forms\ToolTip\KeyboardToolTipStateMachine.cs (20)
45
private
IKeyboardToolTip
? _currentTool;
49
private readonly WeakReference<
IKeyboardToolTip
?> _lastFocusedTool = new(null);
55
private SmState Transition(
IKeyboardToolTip
tool, ToolTip tooltip, SmEvent @event)
85
public void Hook(
IKeyboardToolTip
tool, ToolTip toolTip)
94
public void NotifyAboutMouseEnter(
IKeyboardToolTip
sender)
102
private bool IsToolTracked(
IKeyboardToolTip
sender)
107
public void NotifyAboutLostFocus(
IKeyboardToolTip
sender)
119
public void NotifyAboutGotFocus(
IKeyboardToolTip
sender)
131
public void Unhook(
IKeyboardToolTip
tool, ToolTip toolTip)
145
internal
IKeyboardToolTip
? LastFocusedTool
149
if (_lastFocusedTool.TryGetTarget(out
IKeyboardToolTip
? tool))
158
private SmState HideAndStartWaitingForRefocus(
IKeyboardToolTip
tool, ToolTip toolTip)
168
private SmState StartWaitingForRefocus(
IKeyboardToolTip
tool)
177
Transit(SmEvent.RefocusWaitDelayExpired, (
IKeyboardToolTip
)toolObject);
184
private SmState SetupReshowTimer(
IKeyboardToolTip
tool, ToolTip toolTip)
193
private SmState ShowToolTip(
IKeyboardToolTip
tool, ToolTip toolTip)
221
private SmState SetupInitShowTimer(
IKeyboardToolTip
tool, ToolTip toolTip)
250
private void Transit(SmEvent @event,
IKeyboardToolTip
source)
328
private void StartTracking(
IKeyboardToolTip
tool, ToolTip toolTip)
333
private void StopTracking(
IKeyboardToolTip
tool, ToolTip toolTip)
System\Windows\Forms\ToolTip\KeyboardToolTipStateMachine.ToolToTipDictionary.cs (3)
12
private readonly ConditionalWeakTable<
IKeyboardToolTip
, WeakReference<ToolTip?>> _table = [];
14
public ToolTip? this[
IKeyboardToolTip
tool]
43
public void Remove(
IKeyboardToolTip
tool, ToolTip toolTip)
System\Windows\Forms\ToolTip\ToolTip.cs (4)
123
internal void HideToolTip(
IKeyboardToolTip
currentTool)
1474
internal void ShowKeyboardToolTip(string? text,
IKeyboardToolTip
tool, int duration)
1547
private Point GetOptimalToolTipPosition(
IKeyboardToolTip
tool, Rectangle toolRectangle, int width, int height)
1595
Rectangle topContainerBounds = ((
IKeyboardToolTip
?)TopLevelControl)?.GetNativeScreenRectangle() ?? Rectangle.Empty;
System.Windows.Forms.Tests (77)
KeyboardTooltipStateMachineTests.cs (4)
16
Mock<
IKeyboardToolTip
> mock = new(MockBehavior.Strict);
17
IKeyboardToolTip
keyboardToolTip = mock.Object;
74
IKeyboardToolTip
currentTool = instance.TestAccessor().Dynamic._currentTool;
106
IKeyboardToolTip
currentTool = instance.TestAccessor().Dynamic._currentTool;
System\Windows\Forms\ContainerControlTests.cs (2)
1329
IKeyboardToolTip
currentTool = instance.TestAccessor().Dynamic._currentTool;
1354
IKeyboardToolTip
currentTool = instance.TestAccessor().Dynamic._currentTool;
System\Windows\Forms\DataGridViewCellTests.cs (3)
4810
IList<Rectangle> neighbors00 = ((
IKeyboardToolTip
)control.Rows[0].Cells[0]).GetNeighboringToolsRectangles();
4815
IList<Rectangle> neighbors21 = ((
IKeyboardToolTip
)control.Rows[2].Cells[1]).GetNeighboringToolsRectangles();
4822
IList<Rectangle> neighbors33 = ((
IKeyboardToolTip
)control.Rows[3].Cells[3]).GetNeighboringToolsRectangles();
System\Windows\Forms\ListViewItem.IKeyboardToolTipTests.cs (40)
28
Assert.True(((
IKeyboardToolTip
)listViewItem).AllowsToolTip());
50
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)listViewItem).AllowsChildrenToShowToolTips());
72
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)listViewItem).CanShowToolTipsNow());
95
Assert.Equal(toolTipText, ((
IKeyboardToolTip
)listViewItem).GetCaptionForTool(toolTip));
114
Assert.Equal(rectangleIsEmpty, ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().IsEmpty);
133
Assert.Equal(rectangleIsEmpty, ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().IsEmpty);
154
Assert.Equal(expectedWidth, ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().Width);
171
int actualWidth = ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().Width;
173
Assert.True(columnWidth > ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().Width);
189
Assert.Equal(expectedWidth, ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().Width);
205
Assert.Equal(expectedWidth, ((
IKeyboardToolTip
)listViewItem).GetNativeScreenRectangle().Width);
213
Assert.Empty(((
IKeyboardToolTip
)listViewItem).GetNeighboringToolsRectangles());
224
Assert.Empty(((
IKeyboardToolTip
)listViewItem).GetNeighboringToolsRectangles());
233
Assert.Empty(((
IKeyboardToolTip
)listViewItem).GetNeighboringToolsRectangles());
248
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[0]).GetNeighboringToolsRectangles();
266
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[1]).GetNeighboringToolsRectangles();
285
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[2]).GetNeighboringToolsRectangles();
303
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[3]).GetNeighboringToolsRectangles();
322
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[4]).GetNeighboringToolsRectangles();
342
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[5]).GetNeighboringToolsRectangles();
361
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[6]).GetNeighboringToolsRectangles();
379
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[7]).GetNeighboringToolsRectangles();
398
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[8]).GetNeighboringToolsRectangles();
417
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[0]).GetNeighboringToolsRectangles();
436
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[1]).GetNeighboringToolsRectangles();
457
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[2]).GetNeighboringToolsRectangles();
477
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[3]).GetNeighboringToolsRectangles();
498
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[4]).GetNeighboringToolsRectangles();
520
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[5]).GetNeighboringToolsRectangles();
541
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[6]).GetNeighboringToolsRectangles();
561
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[7]).GetNeighboringToolsRectangles();
581
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[8]).GetNeighboringToolsRectangles();
597
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[0]).GetNeighboringToolsRectangles();
614
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[1]).GetNeighboringToolsRectangles();
632
IList<Rectangle> neighboringToolsRectangles = ((
IKeyboardToolTip
)listView.Items[2]).GetNeighboringToolsRectangles();
657
Assert.Equal(expectedOwner, ((
IKeyboardToolTip
)listViewItem).GetOwnerWindow());
682
Assert.Equal(expected, ((
IKeyboardToolTip
)listViewItem).HasRtlModeEnabled());
720
Assert.Equal(expected, ((
IKeyboardToolTip
)listViewItem).IsHoveredWithMouse());
747
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)listViewItem).ShowsOwnToolTip());
827
return ((
IKeyboardToolTip
)listView).GetNativeScreenRectangle();
System\Windows\Forms\TabPageTests.cs (5)
4910
string actual = ((
IKeyboardToolTip
)control).GetCaptionForTool(toolTip);
4927
string actual = ((
IKeyboardToolTip
)control).GetCaptionForTool(toolTip);
4938
string actual = ((
IKeyboardToolTip
)control).GetCaptionForTool(toolTip);
4948
IList<Rectangle> actual = ((
IKeyboardToolTip
)control).GetNeighboringToolsRectangles();
4970
IList<Rectangle> neighborsRectangles = ((
IKeyboardToolTip
)testedTab).GetNeighboringToolsRectangles();
System\Windows\Forms\TestAccessors.KeyboardToolTipStateMachineTestAccessor.cs (1)
15
internal bool IsToolTracked(
IKeyboardToolTip
sender) => (bool)Dynamic.IsToolTracked(sender);
System\Windows\Forms\TreeNode.IKeyboardToolTipTests.cs (22)
27
Assert.True(((
IKeyboardToolTip
)treeNode).AllowsToolTip());
48
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)treeNode).AllowsChildrenToShowToolTips());
69
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)treeNode).CanShowToolTipsNow());
91
Assert.Equal(toolTipText, ((
IKeyboardToolTip
)treeNode).GetCaptionForTool(toolTip));
113
Assert.Equal(expectedBounds, ((
IKeyboardToolTip
)treeNode).GetNativeScreenRectangle());
126
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)firstTreeNode).GetNeighboringToolsRectangles();
142
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)middleTreeNode).GetNeighboringToolsRectangles();
159
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)lastTreeNode).GetNeighboringToolsRectangles();
177
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)firstSubNode).GetNeighboringToolsRectangles();
196
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)middleSubNode).GetNeighboringToolsRectangles();
215
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)lastSubNode).GetNeighboringToolsRectangles();
236
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)subSubNode).GetNeighboringToolsRectangles();
255
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)middleNode).GetNeighboringToolsRectangles();
276
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)middleNode).GetNeighboringToolsRectangles();
296
IList<Rectangle> neighboringRectangles = ((
IKeyboardToolTip
)lastSubNode).GetNeighboringToolsRectangles();
308
Assert.Empty(((
IKeyboardToolTip
)treeNodesList[0]).GetNeighboringToolsRectangles());
309
Assert.Empty(((
IKeyboardToolTip
)treeNodesList[1]).GetNeighboringToolsRectangles());
310
Assert.Empty(((
IKeyboardToolTip
)treeNodesList[2]).GetNeighboringToolsRectangles());
328
Assert.Equal(expectedOwner, ((
IKeyboardToolTip
)treeNode).GetOwnerWindow());
351
Assert.Equal(expected, ((
IKeyboardToolTip
)treeNode).HasRtlModeEnabled());
391
Assert.Equal(expected, ((
IKeyboardToolTip
)treeNode).IsHoveredWithMouse());
417
Assert.Equal(expectedResult, ((
IKeyboardToolTip
)treeNode).ShowsOwnToolTip());
System.Windows.Forms.UI.IntegrationTests (3)
TabControlTests.cs (3)
70
bool result = ((
IKeyboardToolTip
)tabControl).IsHoveredWithMouse();
71
bool resultOfPage1 = ((
IKeyboardToolTip
)tabControl.TabPages[0]).IsHoveredWithMouse();
72
bool resultOfPage2 = ((
IKeyboardToolTip
)tabControl.TabPages[1]).IsHoveredWithMouse();