mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	Fix issue with multiple translation units and add a test
This commit is contained in:
		
							parent
							
								
									e463d04408
								
							
						
					
					
						commit
						e3dacd9370
					
				
							
								
								
									
										2
									
								
								clay.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								clay.h
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -76,7 +76,7 @@
 | 
			
		|||
 | 
			
		||||
#define CLAY_STRING(string) (Clay_String) { .length = CLAY__STRING_LENGTH(string), .chars = (string) }
 | 
			
		||||
 | 
			
		||||
int CLAY__ELEMENT_DEFINITION_LATCH = 0;
 | 
			
		||||
static int CLAY__ELEMENT_DEFINITION_LATCH = 0;
 | 
			
		||||
 | 
			
		||||
#define CLAY__ELEMENT_INTERNAL(open, close, ...) \
 | 
			
		||||
	for (\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@ FetchContent_MakeAvailable(raylib)
 | 
			
		|||
 | 
			
		||||
set(CMAKE_C_STANDARD 99)
 | 
			
		||||
 | 
			
		||||
add_executable(clay_examples_raylib_sidebar_scrolling_container main.c)
 | 
			
		||||
add_executable(clay_examples_raylib_sidebar_scrolling_container main.c multi-compilation-unit.c)
 | 
			
		||||
 | 
			
		||||
target_compile_options(clay_examples_raylib_sidebar_scrolling_container PUBLIC -Wall -Werror -Wno-unknown-pragmas)
 | 
			
		||||
target_include_directories(clay_examples_raylib_sidebar_scrolling_container PUBLIC .)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ Clay_RenderCommandArray CreateLayout() {
 | 
			
		|||
        }
 | 
			
		||||
        Clay_ScrollContainerData scrollData = Clay_GetScrollContainerData(CLAY_ID("MainContent"));
 | 
			
		||||
        CLAY_FLOATING_CONTAINER(CLAY_ID("ScrollBar"), &CLAY_LAYOUT_DEFAULT, CLAY_FLOATING_CONFIG(.offset = { .y = -(scrollData.scrollPosition->y / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height }, .zIndex = 1, .parentId = CLAY_ID("MainContent").id, .attachment = {.element = CLAY_ATTACH_POINT_RIGHT_TOP, .parent = CLAY_ATTACH_POINT_RIGHT_TOP})) {
 | 
			
		||||
            CLAY_RECTANGLE(CLAY_ID("ScrollBarButton"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(12), CLAY_SIZING_FIXED((scrollData.scrollContainerDimensions.height / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height)}), CLAY_RECTANGLE_CONFIG(.cornerRadius = 6, .color = Clay_PointerOver(CLAY_ID("ScrollBar")) ? (Clay_Color){100, 100, 140, 150} : (Clay_Color){120, 120, 160, 150})) {}
 | 
			
		||||
            CLAY_RECTANGLE(CLAY_ID("ScrollBarButton"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(12), CLAY_SIZING_FIXED((scrollData.scrollContainerDimensions.height / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height)}), CLAY_RECTANGLE_CONFIG(.cornerRadius = {6}, .color = Clay_PointerOver(CLAY_ID("ScrollBar")) ? (Clay_Color){100, 100, 140, 150} : (Clay_Color){120, 120, 160, 150})) {}
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    return Clay_EndLayout();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
#include "../../clay.h"
 | 
			
		||||
 | 
			
		||||
// NOTE: This file only exists to make sure that clay works when included in multiple translation units.
 | 
			
		||||
 | 
			
		||||
void SatisfyCompiler() {
 | 
			
		||||
    CLAY_CONTAINER(CLAY_ID("SatisfyCompiler"), CLAY_LAYOUT()) {}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in a new issue