DVUI

captureMouseCustom

In most cases, use captureMouse but if you want to customize the "capture zone" you can use this function instead.

Only valid between Window.beginand Window.end.

Parameters

#
cm:?CaptureMouse
?CaptureMouse
event_num:u16
u16

Source

Implementation

#
pub fn captureMouseCustom(cm: ?CaptureMouse, event_num: u16) void {
    const cw = currentWindow();
    defer cw.capture = cm;
    if (cm) |capture| {
        // log.debug("Mouse capture (event {d}): {any}", .{ event_num, cm });
        cw.captured_last_frame = true;
        cw.captureEvents(event_num, capture.id);
    } else {
        // Unmark all following mouse events
        cw.captureEvents(event_num, null);
        // log.debug("Mouse uncapture (event {d}): {?any}", .{ event_num, cw.capture });
        // for (dvui.events()) |*e| {
        //     if (e.evt == .mouse) {
        //         log.debug("{s}: win {?x}, widget {?x}", .{ @tagName(e.evt.mouse.action), e.target_windowId, e.target_widgetId });
        //     }
        // }
    }
}