mirror of
https://github.com/nicbarker/clay.git
synced 2025-09-18 12:36:17 +00:00
Compare commits
3 commits
b19de4686d
...
9e3bdebf63
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9e3bdebf63 | ||
![]() |
a9576fff82 | ||
![]() |
983bd95f2d |
12
clay.h
12
clay.h
|
@ -1134,6 +1134,7 @@ typedef struct {
|
||||||
Clay__LayoutElementChildren children;
|
Clay__LayoutElementChildren children;
|
||||||
Clay__TextElementData *textElementData;
|
Clay__TextElementData *textElementData;
|
||||||
} childrenOrTextContent;
|
} childrenOrTextContent;
|
||||||
|
uint16_t floatingChildrenCount;
|
||||||
Clay_Dimensions dimensions;
|
Clay_Dimensions dimensions;
|
||||||
Clay_Dimensions minDimensions;
|
Clay_Dimensions minDimensions;
|
||||||
Clay_LayoutConfig *layoutConfig;
|
Clay_LayoutConfig *layoutConfig;
|
||||||
|
@ -1771,7 +1772,8 @@ Clay_LayoutElementHashMapItem *Clay__GetHashMapItem(uint32_t id) {
|
||||||
Clay_ElementId Clay__GenerateIdForAnonymousElement(Clay_LayoutElement *openLayoutElement) {
|
Clay_ElementId Clay__GenerateIdForAnonymousElement(Clay_LayoutElement *openLayoutElement) {
|
||||||
Clay_Context* context = Clay_GetCurrentContext();
|
Clay_Context* context = Clay_GetCurrentContext();
|
||||||
Clay_LayoutElement *parentElement = Clay_LayoutElementArray_Get(&context->layoutElements, Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 2));
|
Clay_LayoutElement *parentElement = Clay_LayoutElementArray_Get(&context->layoutElements, Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 2));
|
||||||
Clay_ElementId elementId = Clay__HashNumber(parentElement->childrenOrTextContent.children.length, parentElement->id);
|
uint32_t offset = parentElement->childrenOrTextContent.children.length + parentElement->floatingChildrenCount;
|
||||||
|
Clay_ElementId elementId = Clay__HashNumber(offset, parentElement->id);
|
||||||
openLayoutElement->id = elementId.id;
|
openLayoutElement->id = elementId.id;
|
||||||
Clay__AddHashMapItem(elementId, openLayoutElement, 0);
|
Clay__AddHashMapItem(elementId, openLayoutElement, 0);
|
||||||
Clay__StringArray_Add(&context->layoutElementIdStrings, elementId.stringId);
|
Clay__StringArray_Add(&context->layoutElementIdStrings, elementId.stringId);
|
||||||
|
@ -1908,9 +1910,15 @@ void Clay__CloseElement(void) {
|
||||||
|
|
||||||
// Close the currently open element
|
// Close the currently open element
|
||||||
int32_t closingElementIndex = Clay__int32_tArray_RemoveSwapback(&context->openLayoutElementStack, (int)context->openLayoutElementStack.length - 1);
|
int32_t closingElementIndex = Clay__int32_tArray_RemoveSwapback(&context->openLayoutElementStack, (int)context->openLayoutElementStack.length - 1);
|
||||||
|
|
||||||
|
// Get the currently open parent
|
||||||
openLayoutElement = Clay__GetOpenLayoutElement();
|
openLayoutElement = Clay__GetOpenLayoutElement();
|
||||||
|
|
||||||
if (!elementIsFloating && context->openLayoutElementStack.length > 1) {
|
if (context->openLayoutElementStack.length > 1) {
|
||||||
|
if(elementIsFloating) {
|
||||||
|
openLayoutElement->floatingChildrenCount++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
openLayoutElement->childrenOrTextContent.children.length++;
|
openLayoutElement->childrenOrTextContent.children.length++;
|
||||||
Clay__int32_tArray_Add(&context->layoutElementChildrenBuffer, closingElementIndex);
|
Clay__int32_tArray_Add(&context->layoutElementChildrenBuffer, closingElementIndex);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue