static void measureNodes(enum LayoutType type, struct Node* node)
		{
			while (node) {
				measureNode(type, &node->properties, &node->element);

				if (node->firstChild) {
					measureNodes(node->element.layoutType, node->firstChild);
				}

				node = node->next;
			}
		}
static void measureNodes(enum LayoutType type, struct Node* node) {
    while(node) {
        // TODO(josh): Clear this flag during layout pass.
        node->flags &= ~FLAG_REQ_LAYOUT;

        if ((node->flags & FLAG_INVALID) == FLAG_INVALID) {
            node->flags &= ~FLAG_INVALID;
            measureNode(type, &node->properties, &node->element);
        }

        if (node->firstChild) {
            measureNodes(node->element._layoutType, node->firstChild);
        }

        node = node->next;
    }
}