Commit graph

164 commits

Author SHA1 Message Date
João Matos 286b177205
Merge d6ed6cb5c2 into 89ce22e894 2025-05-31 22:57:39 +02:00
Boreal 89ce22e894
[Core] Fix sign comparison warning (#427) 2025-05-29 13:10:05 +10:00
Nic Barker ce2475ba73 [Compilers] Add missing struct name for image element config 2025-05-26 10:10:24 +10:00
Johann Muszynski 34ff7e1bea
[Compilers] Add struct names to public structs (#336) 2025-05-26 10:03:07 +10:00
Simon Oelerich efbd680685
[Core] restore compatibility with C99 (#412) 2025-05-14 13:29:12 +12:00
Patrick Doane b656dc5253
[Core] Add Clay_FloatingClipToElement (#413) 2025-05-14 13:24:42 +12:00
João Matos b78fd66da8
[Core] Add Clay_GetPointerOverIds function to the public API. (#389) 2025-05-14 12:39:56 +12:00
João Matos 52759cd028
[Debug] Update Clay__RenderDebugLayoutSizing to handle more sizing types. (#392) 2025-05-05 12:27:55 +12:00
Nic Barker 90b45f059c [Core] Fix a bug with the implementation of clip .childOffset 2025-05-01 17:21:09 +12:00
Nic Barker 970919e1fb
[Core] Replace .scroll config with .clip (#376) 2025-05-01 14:11:31 +12:00
Nic Barker a21b0665fe [Core] Correctly throw an error when using attach to element id with an invalid id 2025-04-29 12:31:54 +12:00
tritao d6ed6cb5c2 [Core] Add cascading property support for text element configs.
This change introduces an "inheritance" mechanism for all text-related
properties, enabling developers to define base styles once and have
child elements automatically pick up defaults unless explicitly
overridden, much like CSS’s cascade model.

By providing individual sentinel values (`CLAY_COLOR_INHERIT`,
`CLAY_TEXT_INHERIT_U16`, `CLAY_TEXT_WRAP_INHERIT`, and
`CLAY_TEXT_ALIGN_INHERIT`), or `CLAY_TEXT_CONFIG_INHERIT_ALL`, we can
now defer resolution of properties,

Backward compatibility is preserved: if no `_INHERIT` values are used,
behavior remains identical to previous versions.

Previously, Clay used the presence of `CLAY__ELEMENT_CONFIG_TYPE_TEXT`
in `Clay_LayoutElement.elementConfigs` to distinguish between a text and
non-text element. This is not possible to use anymore, since parent
non-text elements may have a `CLAY__ELEMENT_CONFIG_TYPE_TEXT` with text
properties.

I introduced a `hasTextElementData`, but I can understand if this design
is considered to not be acceptable due to the higher memory usage in
this core struct, perhaps in alternative a new
`CLAY__ELEMENT_CONFIG_TYPE_TEXT_STRING` element config can be
introduced?
2025-04-24 19:10:33 +01:00
Nic Barker b33ba4ff62
[Core] Fix a string hash bug with single characters (#384) 2025-04-16 20:16:05 +12:00
Nic Barker 06167b4f4b [Core] Fix a potential null pointer deref in scroll GetScrollContainerData 2025-04-12 11:27:10 +12:00
Nic Barker a9e94e3be0 [Core] Fix onHover reference not being reset for identical IDs between frames 2025-04-04 13:05:31 +13:00
Nic Barker 50aad568fa [Core] Remove unused variable in arm simd and inline rotate function' 2025-04-01 10:43:11 +13:00
Nic Barker b4dc02c73a [Core] Fix a bug with how element string ids were stored when using Clay_Hovered 2025-04-01 10:40:04 +13:00
Nic Barker 1204ac400b [Compilers] Fix implicit typecast in simd hash function 2025-03-28 11:52:20 +13:00
Nic Barker 6a7ce77024 [Core] Fix implicit simd typecast on arm architectures 2025-03-28 11:47:57 +13:00
Piggybank Studios 7c9506bc31
[Core] Fix CLAY__ELEMENT_DEFINITION_LATCH overflow in CLAY macro if 256 loops end at the same time 2025-03-27 10:14:17 +13:00
Nic Barker 08e4c5b198 [Core] Fix a bug where ID aliases werent copied on hash collision 2025-03-26 09:35:15 +13:00
Igor Karatayev aee4baee1c
[Core] Guard against hashmap item null dereference (#338) 2025-03-26 09:19:50 +13:00
Nic Barker 47d1d84bc8
[Core] Switch text content hashing to default behaviour (#335) 2025-03-25 10:13:04 +13:00
Nic Barker ad49977f1b [Core] Apply minimum width for single words and fix some minimum sizing bugs 2025-03-21 11:22:48 +13:00
Nic Barker 982ade4cf9 [Compilers] Add a dummy function to suppress unused variable warning in GCC 2025-03-18 11:21:23 +13:00
Nic Barker 1f8cab8d72 [Core] Fix a bug where floating elements could be clipped incorrectly 2025-03-18 11:05:06 +13:00
Nic Barker 39fdd0e906
[Compilers] Fix integer truncation warnings with explicit casts 2025-03-13 09:40:31 +13:00
Nic Barker c06e01c1af
Merge pull request #319 from emoon/pass-declaration-by-pointer
Support passing declaration by pointer as well
2025-03-11 09:39:40 +13:00
Nic Barker fabdad43f6 [Documentation] Update internal version number to 0.13 in clay.h 2025-03-10 14:39:18 +13:00
Daniel Collin 19a27b39f2
[Compilers] Fixed SIMD related compile error on some ARM compilers (#316) 2025-03-09 10:28:09 +13:00
Daniel Collin 33b8e76903 Support passing declaration by pointer as well 2025-03-08 15:17:36 +01:00
Johann Muszynski ad4d00be33 Fix integer truncation warnings with explicit casts 2025-03-08 14:53:30 +02:00
Michael Savage 8e6640f7a2
[Core] Add a userData pointer to Clay_TextElementConfig (#274) 2025-03-08 11:01:26 +13:00
Ethan McCue 4f8957d5d2
[Documentation] Fix typo (#315) 2025-03-07 21:45:27 +13:00
Nic Barker 02bce89d17
[Core] Improve & streamline grow / shrink handling (#296) 2025-03-04 10:56:38 +13:00
FintasticMan b5b086af13
[Macros] Add versions of the CLAY_ID macros that take Clay_String (#285) 2025-03-04 10:30:53 +13:00
Nic Barker 5571c00a21 [Core] Convert capacity from uint32_t to size_t in Clay_CreateArenaWithCapacityAndMemory 2025-03-03 11:36:12 +13:00
Joram Vandemoortele 4ee501019c
[Compilers] Added DLL macro to support .dll building (#278) 2025-02-26 15:37:51 +13:00
Nic Barker 1fa8684e47 [Core] Fix bug where hover state didnt take clip rectangles into account 2025-02-25 08:55:14 +13:00
mizmar 766325c395
[Core] Fix inverted condition for setting booleanWarnings.maxTextMeasureCacheExceeded (#275) 2025-02-20 09:22:35 +13:00
Alex Pedley 5afdf3f8c9
[Core] Make fakeContext use correct value from currentContext (#269) 2025-02-20 09:21:14 +13:00
Nic Barker a60b977946 [Core] Fix a bug where floating elements would be incorrectly configured 2025-02-18 09:41:06 +13:00
Nic Barker d9e02ab1d3 [Core] Fix aspect ratio scaling of images when only one sizing axis was specified 2025-02-14 10:05:16 +13:00
Nic Barker e35bba079e [Core] Update debug tools to include text alignment 2025-02-12 13:05:48 +13:00
Nic Barker 82ca328ae2 [Core] Add .textAlignment field to text element config 2025-02-12 10:43:32 +13:00
Nic Barker 72af2a4020 [Compilers] Fix missing initializer warnings under -Wextra 2025-02-12 09:12:11 +13:00
Nic Barker 3961720ef0 [Core & Documentation] Cleanup public / private API and internal document public API via comments 2025-02-11 17:11:03 +13:00
Nic Barker dd1f018444 [Documentation] Add inline documentation comments for subfields of Clay_ElementDeclaration 2025-02-11 14:14:55 +13:00
Harrison Lambeth 3030390038
Define CLAY_IMPLEMENTATION in Jetbrains IDE (#236) 2025-02-11 10:11:42 +13:00
Nic Barker 92582f66d8 [DebugTools] Fix a bug with display of border widths in debug tools 2025-02-11 10:11:15 +13:00