// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Drawing;
namespace System.Windows.Forms;
internal interface IKeyboardToolTip
{
/// <summary>
/// Returns true if a keyboard ToolTip can be shown for the tool or its
/// descendants at this moment.
/// </summary>
bool CanShowToolTipsNow();
/// <summary>
/// Returns the tool's native screen rectangle.
/// </summary>
Rectangle GetNativeScreenRectangle();
/// <summary>
/// Returns a list of neighboring tools' native screen rectangles.
/// They are used to minimize the intersection between them and a keyboard ToolTip.
/// </summary>
IList<Rectangle> GetNeighboringToolsRectangles();
/// <summary>
/// Returns true if the tool is being hovered by a mouse pointer.
/// </summary>
bool IsHoveredWithMouse();
/// <summary>
/// Returns true if the tool has the Right-To-Left mode enabled
/// </summary>
bool HasRtlModeEnabled();
/// <summary>
/// Returns true if a keyboard ToolTip is allowed for this tool.
/// </summary>
bool AllowsToolTip();
/// <summary>
/// Returns the tool owner's native window.
/// The tool can return its own native window if it exists.
/// </summary>
IWin32Window? GetOwnerWindow();
/// <summary>
/// Notifies this tool that it was hooked to a keyboard ToolTip
/// </summary>
void OnHooked(ToolTip toolTip);
/// <summary>
/// Notifies this tool that it was unhooked from a keyboard ToolTip
/// </summary>
void OnUnhooked(ToolTip toolTip);
/// <summary>
/// Returns a caption set for this tool by the provided ToolTip
/// </summary>
string? GetCaptionForTool(ToolTip toolTip);
/// <summary>
/// Returns false if this tool's own keyboard tooltip is not expected to be shown (e.g. it is just a container for other tools)
/// </summary>
bool ShowsOwnToolTip();
/// <summary>
/// Returns true when the tool is being tabbed to
/// </summary>
bool IsBeingTabbedTo();
/// <summary>
/// Returns false if the tool disables keyboard tooltips for it's children
/// </summary>
bool AllowsChildrenToShowToolTips();
}
|