From f186024e748ca7614b9db0eb5f05d1fb472afffc Mon Sep 17 00:00:00 2001
From: Nic Barker <contact+github@nicbarker.com>
Date: Thu, 9 Jan 2025 12:21:20 +1300
Subject: [PATCH] Expose getter for max element counts

---
 clay.h                                            | 15 ++++++++++++++-
 .../raylib-sidebar-scrolling-container/main.c     |  4 ++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/clay.h b/clay.h
index 3668650..c6bbcfb 100644
--- a/clay.h
+++ b/clay.h
@@ -3975,9 +3975,22 @@ void Clay_SetExternalScrollHandlingEnabled(bool enabled) {
     context->externalScrollHandlingEnabled = enabled;
 }
 
+CLAY_WASM_EXPORT("Clay_GetMaxElementCount")
+int32_t Clay_GetMaxElementCount(void) {
+    Clay_Context* context = Clay_GetCurrentContext();
+    return context->maxElementCount;
+}
+
 CLAY_WASM_EXPORT("Clay_SetMaxElementCount")
 void Clay_SetMaxElementCount(int32_t maxElementCount) {
-    Clay__currentContext->maxElementCount = maxElementCount;
+    Clay_Context* context = Clay_GetCurrentContext();
+    context->maxElementCount = maxElementCount;
+}
+
+CLAY_WASM_EXPORT("Clay_GetMaxMeasureTextCacheWordCount")
+int32_t Clay_GetMaxMeasureTextCacheWordCount(void) {
+    Clay_Context* context = Clay_GetCurrentContext();
+    return context->maxMeasureTextCacheWordCount;
 }
 
 CLAY_WASM_EXPORT("Clay_SetMaxMeasureTextCacheWordCount")
diff --git a/examples/raylib-sidebar-scrolling-container/main.c b/examples/raylib-sidebar-scrolling-container/main.c
index 01fcd60..9418cc3 100644
--- a/examples/raylib-sidebar-scrolling-container/main.c
+++ b/examples/raylib-sidebar-scrolling-container/main.c
@@ -208,10 +208,10 @@ void HandleClayErrors(Clay_ErrorData errorData) {
     printf("%s", errorData.errorText.chars);
     if (errorData.errorType == CLAY_ERROR_TYPE_ELEMENTS_CAPACITY_EXCEEDED) {
         reinitializeClay = true;
-//        Clay_SetMaxElementCount(Clay_SetMaxElementCount() * 2);
+        Clay_SetMaxElementCount(Clay_GetMaxElementCount() * 2);
     } else if (errorData.errorType == CLAY_ERROR_TYPE_TEXT_MEASUREMENT_CAPACITY_EXCEEDED) {
         reinitializeClay = true;
-//        Clay_SetMaxMeasureTextCacheWordCount(Clay__maxMeasureTextCacheWordCount * 2);
+        Clay_SetMaxMeasureTextCacheWordCount(Clay_GetMaxMeasureTextCacheWordCount() * 2);
     }
 }