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

Function Clay__OpenElement

include/clay.h:2041–2062  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2039#endif
2040
2041void Clay__OpenElement(void) {
2042 Clay_Context* context = Clay_GetCurrentContext();
2043 if (context->layoutElements.length == context->layoutElements.capacity - 1 || context->booleanWarnings.maxElementsExceeded) {
2044 context->booleanWarnings.maxElementsExceeded = true;
2045 return;
2046 }
2047 Clay_LayoutElement layoutElement = CLAY__DEFAULT_STRUCT;
2048 Clay_LayoutElement* openLayoutElement = Clay_LayoutElementArray_Add(&context->layoutElements, layoutElement);
2049 Clay__int32_tArray_Add(&context->openLayoutElementStack, context->layoutElements.length - 1);
2050 // Generate an ID
2051 Clay_LayoutElement *parentElement = Clay_LayoutElementArray_Get(&context->layoutElements, Clay__int32_tArray_GetValue(&context->openLayoutElementStack, context->openLayoutElementStack.length - 2));
2052 uint32_t offset = parentElement->children.length + parentElement->floatingChildrenCount;
2053 Clay_ElementId elementId = Clay__HashNumber(offset, parentElement->id);
2054 openLayoutElement->id = elementId.id;
2055 Clay__AddHashMapItem(elementId, openLayoutElement);
2056 Clay__StringArray_Add(&context->layoutElementIdStrings, elementId.stringId);
2057 if (context->openClipElementStack.length > 0) {
2058 Clay__int32_tArray_Set(&context->layoutElementClipElementIds, context->layoutElements.length - 1, Clay__int32_tArray_GetValue(&context->openClipElementStack, (int)context->openClipElementStack.length - 1));
2059 } else {
2060 Clay__int32_tArray_Set(&context->layoutElementClipElementIds, context->layoutElements.length - 1, 0);
2061 }
2062}
2063
2064void Clay__OpenElementWithId(Clay_ElementId elementId) {
2065 Clay_Context* context = Clay_GetCurrentContext();

Callers 1

Calls 3

Clay_GetCurrentContextFunction · 0.85
Clay__HashNumberFunction · 0.85
Clay__AddHashMapItemFunction · 0.85

Tested by

no test coverage detected