MCPcopy Create free account
hub / github.com/ErrorAtLine0/infinipaint / Clay__OpenTextElement

Function Clay__OpenTextElement

include/clay.h:2083–2110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2081}
2082
2083void 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
2112void Clay__ConfigureOpenElementPtr(const Clay_ElementDeclaration *declaration) {
2113 Clay_Context* context = Clay_GetCurrentContext();

Callers

nothing calls this directly

Calls 5

Clay_GetCurrentContextFunction · 0.85
Clay__MeasureTextCachedFunction · 0.85
Clay__HashNumberFunction · 0.85
Clay__AddHashMapItemFunction · 0.85

Tested by

no test coverage detected