diff --git a/bindings/odin/clay-odin/clay.odin b/bindings/odin/clay-odin/clay.odin index 9d7a73a..461a454 100644 --- a/bindings/odin/clay-odin/clay.odin +++ b/bindings/odin/clay-odin/clay.odin @@ -103,7 +103,7 @@ TextAlignment :: enum EnumBackingType { } TextElementConfig :: struct { - userData: rawptr, + userData: rawptr, textColor: Color, fontId: u16, fontSize: u16, @@ -135,9 +135,10 @@ BorderElementConfig :: struct { width: BorderWidth, } -ScrollElementConfig :: struct { - horizontal: bool, - vertical: bool, +ClipElementConfig :: struct { + horizontal: bool, // clip overflowing elements on the "X" axis + vertical: bool, // clip overflowing elements on the "Y" axis + childOffset: Vector2, // offsets the [X,Y] positions of all child elements, primarily for scrolling containers } FloatingAttachPointType :: enum EnumBackingType { @@ -235,7 +236,7 @@ ScrollContainerData :: struct { scrollPosition: ^Vector2, scrollContainerDimensions: Dimensions, contentDimensions: Dimensions, - config: ScrollElementConfig, + config: ClipElementConfig, // Indicates whether an actual scroll container matched the provided ID or if the default struct was returned. found: bool, } @@ -329,16 +330,16 @@ ClayArray :: struct($type: typeid) { } ElementDeclaration :: struct { - id: ElementId, - layout: LayoutConfig, + id: ElementId, + layout: LayoutConfig, backgroundColor: Color, - cornerRadius: CornerRadius, - image: ImageElementConfig, - floating: FloatingElementConfig, - custom: CustomElementConfig, - scroll: ScrollElementConfig, - border: BorderElementConfig, - userData: rawptr, + cornerRadius: CornerRadius, + image: ImageElementConfig, + floating: FloatingElementConfig, + custom: CustomElementConfig, + clip: ClipElementConfig, + border: BorderElementConfig, + userData: rawptr, } ErrorType :: enum EnumBackingType { @@ -385,6 +386,7 @@ foreign Clay { Hovered :: proc() -> bool --- OnHover :: proc(onHoverFunction: proc "c" (id: ElementId, pointerData: PointerData, userData: rawptr), userData: rawptr) --- PointerOver :: proc(id: ElementId) -> bool --- + GetScrollOffset :: proc() -> Vector2 --- GetScrollContainerData :: proc(id: ElementId) -> ScrollContainerData --- SetMeasureTextFunction :: proc(measureTextFunction: proc "c" (text: StringSlice, config: ^TextElementConfig, userData: rawptr) -> Dimensions, userData: rawptr) --- SetQueryScrollOffsetFunction :: proc(queryScrollOffsetFunction: proc "c" (elementId: u32, userData: rawptr) -> Vector2, userData: rawptr) --- diff --git a/bindings/odin/clay-odin/linux/clay.a b/bindings/odin/clay-odin/linux/clay.a index 8352290..f0f2fa5 100644 Binary files a/bindings/odin/clay-odin/linux/clay.a and b/bindings/odin/clay-odin/linux/clay.a differ diff --git a/bindings/odin/clay-odin/macos-arm64/clay.a b/bindings/odin/clay-odin/macos-arm64/clay.a index 8c91161..c0baa34 100644 Binary files a/bindings/odin/clay-odin/macos-arm64/clay.a and b/bindings/odin/clay-odin/macos-arm64/clay.a differ diff --git a/bindings/odin/clay-odin/macos/clay.a b/bindings/odin/clay-odin/macos/clay.a index e56ff15..17720d5 100644 Binary files a/bindings/odin/clay-odin/macos/clay.a and b/bindings/odin/clay-odin/macos/clay.a differ diff --git a/bindings/odin/clay-odin/wasm/clay.o b/bindings/odin/clay-odin/wasm/clay.o index fc3cf41..fd18cd9 100644 Binary files a/bindings/odin/clay-odin/wasm/clay.o and b/bindings/odin/clay-odin/wasm/clay.o differ diff --git a/bindings/odin/clay-odin/windows/clay.lib b/bindings/odin/clay-odin/windows/clay.lib index 8bc2215..4dfd4fe 100644 Binary files a/bindings/odin/clay-odin/windows/clay.lib and b/bindings/odin/clay-odin/windows/clay.lib differ