mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	[Bindings/Odin] Updated odin bindings with new clip config (#397)
Great work, thanks for moving on this so quickly! 😁
			
			
This commit is contained in:
		
							parent
							
								
									90b45f059c
								
							
						
					
					
						commit
						e4e7b113a9
					
				| 
						 | 
				
			
			@ -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) ---
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -451,7 +451,7 @@ createLayout :: proc(lerpValue: f32) -> clay.ClayArray(clay.RenderCommand) {
 | 
			
		|||
        if clay.UI()({ id = clay.ID("TopBorder5"), layout = { sizing = { clay.SizingGrow({ }), clay.SizingFixed(4) } }, backgroundColor = COLOR_TOP_BORDER_1 } ) {}
 | 
			
		||||
        if clay.UI()({
 | 
			
		||||
            id = clay.ID("ScrollContainerBackgroundRectangle"),
 | 
			
		||||
            scroll = { vertical = true },
 | 
			
		||||
            clip = { vertical = true, childOffset = clay.GetScrollOffset() },
 | 
			
		||||
            layout = { sizing = { clay.SizingGrow({ }), clay.SizingGrow({ }) }, layoutDirection = clay.LayoutDirection.TopToBottom },
 | 
			
		||||
            backgroundColor = COLOR_LIGHT,
 | 
			
		||||
            border = { COLOR_RED, { betweenChildren = 2} },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue