Expand description
RichTooltipWidget — rich tooltip content surface.
Renders a TooltipContent entry (body + optional shortcut hint +
optional “more” disclosure) inside the existing tooltip rounded-rect
chrome. Body and long-form text go through TextWidget with inline
markup enabled, so [label](url) / *italic* / **bold** render
correctly and inline links participate in the nested-tooltip
cascade.
This widget is the content of a tooltip overlay — the anchor /
hover trigger / overlay lifetime live in the surrounding attach
API. A caller (the owning widget’s build) wraps a RichTooltipWidget
into an OverlayRequest or attaches it via the tooltip attach API
(attach_rich_tooltip and its
_content / _source siblings).
Sticky-on-dwell:
- At t=0 the tooltip is shown by the normal hover path.
- The widget tracks visible-paint time via
paint()interior mutability and, every 500 ms, advances aSignal<u32>step counter from 0 to 4. - The top-right
DwellIndicatorreads the step signal and paints an empty circle filling progressively in 4 wedges. - At step 4 the indicator flips to a pin icon and the widget’s
stickysignal goes true. The widget tree (viaattach_tooltip_with_sticky) auto-promotes the overlay on the same 2 s timer: flags the entry sticky so the hover tracker no longer auto-dismisses it, and swaps the dismiss behavior toEscapeOrClickOutside(the entry itself stays, so a later dismissal can re-show the tooltip from scratch). The widget’s a11y role flips fromTooltiptoDialogand aFocusaction is advertised on the node. Promotion does not move keyboard focus into the panel — the user Tabs in. This is the correct pattern for a non-modal sticky panel (it never steals focus from whatever the user was doing). - Cascade children (tooltips opened from a
[label](:key)link viaRichTooltipWidget::cascade_child) omit the indicator entirely: they’re shown by an explicit click and are already persistent, so there’s no hover dwell-to-sticky path to visualize. They also skip straight to the persistent a11y treatment — a non-modalDialogadvertisingFocus, same as a dwell-promoted tooltip — rather than reading as an ephemeralTooltip.
Structs§
- Rich
Tooltip Widget - Rich tooltip content widget.