File: System\Windows\Forms\ToolTip\IKeyboardToolTip.cs
Web Access
Project: src\src\System.Windows.Forms\src\System.Windows.Forms.csproj (System.Windows.Forms)
// 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();
}