DVUI

Parameters

#
self:*FloatingTooltipWidget
*FloatingTooltipWidget

Source

Implementation

#
pub fn install(self: *FloatingTooltipWidget) void {
    self.installed = true;

    self.data().register();
    dvui.parentSet(self.widget());

    // standard subwindow stuff
    {
        const rs = self.data().rectScale();
        self.render_ftb.initReset();
        self.prev_windowInfo = dvui.subwindowCurrentSet(self.data().id, null);
        dvui.subwindowAdd(self.data().id, self.data().rect, rs.r, false, self.prev_windowInfo.id, true);
        dvui.captureMouseMaintain(.{ .id = self.data().id, .rect = rs.r, .subwindow_id = self.data().id });
        self.prevClip = dvui.clipGet();
        dvui.clipSet(dvui.windowRectPixels()); // break out of whatever clipping we were in
        self.prev_scroll = dvui.ScrollContainerWidget.scrollSet(null);
    }

    self.parent_tooltip = tooltipSet(self);

    if (self.init_options.delay) |delay| {
        self.animate = @as(dvui.AnimateWidget, undefined);
        self.animate.?.init(@src(), .{ .duration = delay, .kind = .alpha, .easing = easing }, .{});
    }
    // scaler is what is drawing our background/border/box_shadow
    self.scaler.init(@src(), .{ .scale = &self.scale_val }, self.options.override(.{ .expand = .both }));
}