void uiTextNode::validateCache (uiNode_t* node) { int v; if (EXTRADATA(node).dataID == TEXT_NULL || node->text != nullptr) return; v = UI_GetDataVersion(EXTRADATA(node).dataID); if (v != EXTRADATA(node).versionId) { updateCache(node); } }
/** * @brief Return the first option of the node * @todo check versionId and update cached data, and fire events */ static uiNode_t* UI_OptionTreeNodeGetFirstOption (uiNode_t * node) { if (node->firstChild) { /** @todo FIXME it MUST be an option behaviour */ assert(node->firstChild->behaviour == ui_optionBehaviour); return node->firstChild; } else { const int v = UI_GetDataVersion(EXTRADATA(node).dataId); uiNode_t *option = UI_GetOption(EXTRADATA(node).dataId); if (v != EXTRADATA(node).versionId) { EXTRADATA(node).versionId = v; UI_OptionTreeNodeUpdateCache(node); } return option; } }
/** * @brief Return the first option of the node * @todo check versionId and update cached data, and fire events */ uiNode_t* UI_AbstractOptionGetFirstOption (uiNode_t * node) { if (node->firstChild && node->firstChild->behaviour == ui_optionBehaviour) { return node->firstChild; } else { const int v = UI_GetDataVersion(EXTRADATA(node).dataId); if (v != EXTRADATA(node).versionId) { int count = 0; uiNode_t *option = UI_GetOption(EXTRADATA(node).dataId); while (option) { if (!option->invis) count++; option = option->next; } EXTRADATA(node).count = count; EXTRADATA(node).versionId = v; } return UI_GetOption(EXTRADATA(node).dataId); } }