| 2081 | } |
| 2082 | |
| 2083 | void Clay__OpenTextElement(Clay_String text, Clay_TextElementConfig textConfig) { |
| 2084 | Clay_Context* context = Clay_GetCurrentContext(); |
| 2085 | if (context->layoutElements.length == context->layoutElements.capacity - 1 || context->booleanWarnings.maxElementsExceeded) { |
| 2086 | context->booleanWarnings.maxElementsExceeded = true; |
| 2087 | return; |
| 2088 | } |
| 2089 | Clay_LayoutElement *parentElement = Clay__GetOpenLayoutElement(); |
| 2090 | |
| 2091 | Clay_LayoutElement layoutElement = { .textConfig = textConfig, .isTextElement = true }; |
| 2092 | Clay_LayoutElement *textElement = Clay_LayoutElementArray_Add(&context->layoutElements, layoutElement); |
| 2093 | if (context->openClipElementStack.length > 0) { |
| 2094 | Clay__int32_tArray_Set(&context->layoutElementClipElementIds, context->layoutElements.length - 1, Clay__int32_tArray_GetValue(&context->openClipElementStack, (int)context->openClipElementStack.length - 1)); |
| 2095 | } else { |
| 2096 | Clay__int32_tArray_Set(&context->layoutElementClipElementIds, context->layoutElements.length - 1, 0); |
| 2097 | } |
| 2098 | |
| 2099 | Clay__int32_tArray_Add(&context->layoutElementChildrenBuffer, context->layoutElements.length - 1); |
| 2100 | Clay__MeasureTextCacheItem *textMeasured = Clay__MeasureTextCached(&text, &textConfig); |
| 2101 | Clay_ElementId elementId = Clay__HashNumber(parentElement->children.length + parentElement->floatingChildrenCount, parentElement->id); |
| 2102 | textElement->id = elementId.id; |
| 2103 | Clay__AddHashMapItem(elementId, textElement); |
| 2104 | Clay__StringArray_Add(&context->layoutElementIdStrings, elementId.stringId); |
| 2105 | Clay_Dimensions textDimensions = { .width = textMeasured->unwrappedDimensions.width, .height = textConfig.lineHeight > 0 ? (float)textConfig.lineHeight : textMeasured->unwrappedDimensions.height }; |
| 2106 | textElement->dimensions = textDimensions; |
| 2107 | textElement->minDimensions = CLAY__INIT(Clay_Dimensions) { .width = textMeasured->minWidth, .height = textDimensions.height }; |
| 2108 | textElement->textElementData = CLAY__INIT(Clay__TextElementData) { .text = text, .preferredDimensions = textMeasured->unwrappedDimensions }; |
| 2109 | parentElement->children.length++; |
| 2110 | } |
| 2111 | |
| 2112 | void Clay__ConfigureOpenElementPtr(const Clay_ElementDeclaration *declaration) { |
| 2113 | Clay_Context* context = Clay_GetCurrentContext(); |
nothing calls this directly
no test coverage detected