private SmState ShowToolTip(IKeyboardToolTip tool, ToolTip toolTip)
        {
            string toolTipText  = tool.GetCaptionForTool(toolTip);
            int    autoPopDelay = toolTip.GetDelayTime(ComCtl32.TTDT.AUTOPOP);

            if (!_currentTool.IsHoveredWithMouse())
            {
                toolTip.ShowKeyboardToolTip(toolTipText, _currentTool, autoPopDelay);
            }
            StartTimer(autoPopDelay,
                       GetOneRunTickHandler((Timer sender) => Transit(SmEvent.AutoPopupDelayTimerExpired, _currentTool)));
            return(SmState.Shown);
        }