updated onHover function
This commit is contained in:
parent
3e4ce58fbc
commit
1c4d5a8b42
1 changed files with 27 additions and 3 deletions
30
src/root.zig
30
src/root.zig
|
@ -21,11 +21,11 @@ pub const cdefs = struct {
|
||||||
pub extern fn Clay_GetElementId(idString: String) ElementId;
|
pub extern fn Clay_GetElementId(idString: String) ElementId;
|
||||||
pub extern fn Clay_GetElementIdWithIndex(idString: String, index: u32) ElementId;
|
pub extern fn Clay_GetElementIdWithIndex(idString: String, index: u32) ElementId;
|
||||||
pub extern fn Clay_Hovered() bool;
|
pub extern fn Clay_Hovered() bool;
|
||||||
pub extern fn Clay_OnHover(onHoverFunction: *const fn (ElementId, PointerData, *anyopaque) callconv(.c) void, userData: *anyopaque) void;
|
pub extern fn Clay_OnHover(onHoverFunction: *const fn (ElementId, PointerData, usize) callconv(.c) void, userData: usize) void;
|
||||||
pub extern fn Clay_PointerOver(elementId: ElementId) bool;
|
pub extern fn Clay_PointerOver(elementId: ElementId) bool;
|
||||||
pub extern fn Clay_GetScrollContainerData(id: ElementId) ScrollContainerData;
|
pub extern fn Clay_GetScrollContainerData(id: ElementId) ScrollContainerData;
|
||||||
pub extern fn Clay_SetMeasureTextFunction(measureTextFunction: *const fn (*String, *TextElementConfig) callconv(.c) Dimensions) void;
|
pub extern fn Clay_SetMeasureTextFunction(measureTextFunction: *const fn (*String, *TextElementConfig) callconv(.c) Dimensions) void;
|
||||||
pub extern fn Clay_SetQueryScrollOffsetFunction(queryScrollOffsetFunction: ?*const fn (u32) callconv(.c) Vector2) void;
|
pub extern fn Clay_SetQueryScrollOffsetFunction(queryScrollOffsetFunction: *const fn (u32) callconv(.c) Vector2) void;
|
||||||
pub extern fn Clay_RenderCommandArray_Get(array: *ClayArray(RenderCommand), index: i32) *RenderCommand;
|
pub extern fn Clay_RenderCommandArray_Get(array: *ClayArray(RenderCommand), index: i32) *RenderCommand;
|
||||||
pub extern fn Clay_SetDebugModeEnabled(enabled: bool) void;
|
pub extern fn Clay_SetDebugModeEnabled(enabled: bool) void;
|
||||||
pub extern fn Clay_IsDebugModeEnabled() bool;
|
pub extern fn Clay_IsDebugModeEnabled() bool;
|
||||||
|
@ -495,7 +495,6 @@ pub const setLayoutDimensions = cdefs.Clay_SetLayoutDimensions;
|
||||||
pub const beginLayout = cdefs.Clay_BeginLayout;
|
pub const beginLayout = cdefs.Clay_BeginLayout;
|
||||||
pub const endLayout = cdefs.Clay_EndLayout;
|
pub const endLayout = cdefs.Clay_EndLayout;
|
||||||
pub const hovered = cdefs.Clay_Hovered;
|
pub const hovered = cdefs.Clay_Hovered;
|
||||||
pub const onHover = cdefs.Clay_OnHover;
|
|
||||||
pub const pointerOver = cdefs.Clay_PointerOver;
|
pub const pointerOver = cdefs.Clay_PointerOver;
|
||||||
pub const getScrollContainerData = cdefs.Clay_GetScrollContainerData;
|
pub const getScrollContainerData = cdefs.Clay_GetScrollContainerData;
|
||||||
pub const setQueryScrollOffsetFunction = cdefs.Clay_SetQueryScrollOffsetFunction;
|
pub const setQueryScrollOffsetFunction = cdefs.Clay_SetQueryScrollOffsetFunction;
|
||||||
|
@ -509,6 +508,31 @@ pub const getMaxMeasureTextCacheWordCount = cdefs.Clay_GetMaxMeasureTextCacheWor
|
||||||
pub const setMaxMeasureTextCacheWordCount = cdefs.Clay_SetMaxMeasureTextCacheWordCount;
|
pub const setMaxMeasureTextCacheWordCount = cdefs.Clay_SetMaxMeasureTextCacheWordCount;
|
||||||
pub const resetMeasureTextCache = cdefs.Clay_ResetMeasureTextCache;
|
pub const resetMeasureTextCache = cdefs.Clay_ResetMeasureTextCache;
|
||||||
|
|
||||||
|
/// `context` must be of same size as a pointer
|
||||||
|
pub fn onHover(
|
||||||
|
context: anytype,
|
||||||
|
comptime onHoverFunction: fn (
|
||||||
|
context: @TypeOf(context),
|
||||||
|
element_id: ElementId,
|
||||||
|
pointer_data: PointerData,
|
||||||
|
) void,
|
||||||
|
) void {
|
||||||
|
if (@sizeOf(@TypeOf(context)) != @sizeOf(usize)) @compileError("`context` must be of same size as a pointer");
|
||||||
|
const ContextType = @TypeOf(context);
|
||||||
|
cdefs.Clay_OnHover(struct {
|
||||||
|
pub fn f(element_id: ElementId, pointer_data: PointerData, data: usize) callconv(.C) void {
|
||||||
|
onHoverFunction(
|
||||||
|
if (@typeInfo(ContextType) == .pointer)
|
||||||
|
@ptrFromInt(@as(usize, @bitCast(data)))
|
||||||
|
else
|
||||||
|
@bitCast(data),
|
||||||
|
element_id,
|
||||||
|
pointer_data,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}.f, context);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn createArenaWithCapacityAndMemory(buffer: []u8) Arena {
|
pub fn createArenaWithCapacityAndMemory(buffer: []u8) Arena {
|
||||||
return cdefs.Clay_CreateArenaWithCapacityAndMemory(@intCast(buffer.len), buffer.ptr);
|
return cdefs.Clay_CreateArenaWithCapacityAndMemory(@intCast(buffer.len), buffer.ptr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue