install
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 }));
}