DVUI

tooltip

Show a floating text tooltip as long as the mouse is inside init_opts.active_rect.

Use init_opts.interactive = true to allow mouse interaction with the tooltip contents.

Only valid between Window.beginand Window.end.

Parameters

#
src:std.builtin.SourceLocation
std.builtin.SourceLocation
init_opts:FloatingTooltipWidget.InitOptions
FloatingTooltipWidget.InitOptions
fmt:[]const u8
[]const u8
fmt_args:anytype
anytype
opts:Options
Options

Source

Implementation

#
pub fn tooltip(src: std.builtin.SourceLocation, init_opts: FloatingTooltipWidget.InitOptions, comptime fmt: []const u8, fmt_args: anytype, opts: Options) void {
    var tt: dvui.FloatingTooltipWidget = undefined;
    const defaults: Options = .{
        .role = .tooltip,
        .padding = Rect.all(6),
    };
    const options = defaults.override(opts);
    tt.init(src, init_opts, options);
    if (tt.shown()) {
        var tl2 = dvui.textLayout(@src(), .{}, options.strip());
        tl2.format(fmt, fmt_args, .{});
        tl2.deinit();
        if (tt.data().accesskit_node()) |ak_node| {
            var str_builder: std.Io.Writer.Allocating = .init(currentWindow().arena());
            str_builder.writer.print(fmt, fmt_args) catch {};
            AccessKit.nodeSetLabel(ak_node, str_builder.toOwnedSliceSentinel(0) catch "");
        }
    }
    tt.deinit();
}