DVUI

Parameters

#
self:*CacheSizeWidget
*CacheSizeWidget

Source

Implementation

#
pub fn deinit(self: *CacheSizeWidget) void {
    defer if (dvui.widgetIsAllocated(self)) dvui.widgetFree(self);
    defer self.* = undefined;

    if (!self.stable and dvui.currentWindow().extra_frames_needed == 0) {
        // mark we had a stable frame, we will use this frame's min size going forward
        self.stable = true;
    } else {
        // use min size from last frame
        if (dvui.minSizeGet(self.data().id)) |ms| self.data().minSizeMax(ms);
    }

    dvui.dataSet(null, self.data().id, "stable", self.stable);

    const cw = dvui.currentWindow();
    cw.extra_frames_needed = @max(cw.extra_frames_needed, self.refresh_prev_value);

    self.data().minSizeSetAndRefresh();
    self.data().minSizeReportToParent();
    dvui.parentReset(self.data().id, self.data().parent);
}