transpiling all the attributes (rough pass)
This commit is contained in:
@@ -6,10 +6,110 @@
|
||||
int main()
|
||||
{
|
||||
{
|
||||
printf("%s", "should layout node with alignItems: flex-start\n");
|
||||
printf("%s", "should layout a single node with width and height\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with children\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 3);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
node = &outer_node->children[2];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with nested children\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
node->style.dimensions[CSS_WIDTH] = 500;
|
||||
node->style.dimensions[CSS_HEIGHT] = 500;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with several children\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
node->style.margin[CSS_LEFT] = 10;
|
||||
node->style.margin[CSS_TOP] = 10;
|
||||
node->style.margin[CSS_RIGHT] = 10;
|
||||
node->style.margin[CSS_BOTTOM] = 10;
|
||||
init_css_node_children(node, 3);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
node = &outer_node->children[2];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with row flex direction\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.flex_direction = CSS_FLEX_DIRECTION_ROW;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
@@ -22,33 +122,639 @@ int main()
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node based on children main dimensions\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.flex_direction = CSS_FLEX_DIRECTION_ROW;
|
||||
node->style.dimensions[CSS_WIDTH] = 100;
|
||||
|
||||
init_css_node_children(node, 3);
|
||||
node->style.dimensions[CSS_WIDTH] = 300;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node = &outer_node->children[0];
|
||||
node->style.dimensions[CSS_HEIGHT] = 50;
|
||||
node->style.align_items = CSS_ALIGN_STRETCH;
|
||||
init_css_node_children(node, 3);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node = &outer_node->children[0];
|
||||
node->style.dimensions[CSS_WIDTH] = 50;
|
||||
}
|
||||
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with flex\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with flex recursively\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node->style.flex = CSS_FLEX_ONE;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node->style.flex = CSS_FLEX_ONE;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with targeted margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
node->style.margin[CSS_LEFT] = 5;
|
||||
node->style.margin[CSS_TOP] = 10;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with justifyContent: flex-start\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_FLEX_START;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with justifyContent: flex-end\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_FLEX_END;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with justifyContent: space-between\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_SPACE_AROUND;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with justifyContent: space-around\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_SPACE_BETWEEN;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with justifyContent: center\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_CENTER;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with flex override height\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with alignItems: flex-start\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_FLEX_START;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with alignItems: center\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_CENTER;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with alignItems: flex-end\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_FLEX_END;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with alignSelf overrides alignItems\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_FLEX_END;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with alignItem: stretch\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_STRETCH;
|
||||
node->style.dimensions[CSS_WIDTH] = 1000;
|
||||
node->style.dimensions[CSS_HEIGHT] = 1000;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout empty node\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout child with margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should not shrink children if not enough space\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.dimensions[CSS_HEIGHT] = 100;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout for center\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout flex-end taking into account margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_FLEX_END;
|
||||
node->style.dimensions[CSS_HEIGHT] = 100;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout alignItems with margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node->style.align_items = CSS_ALIGN_FLEX_END;
|
||||
init_css_node_children(node, 2);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node = &outer_node->children[1];
|
||||
}
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout flex inside of an empty element\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout alignItems stretch and margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.align_items = CSS_ALIGN_STRETCH;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with padding\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with padding and a child\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.padding[CSS_LEFT] = 5;
|
||||
node->style.padding[CSS_TOP] = 5;
|
||||
node->style.padding[CSS_RIGHT] = 5;
|
||||
node->style.padding[CSS_BOTTOM] = 5;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with padding and a child with margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.padding[CSS_LEFT] = 5;
|
||||
node->style.padding[CSS_TOP] = 5;
|
||||
node->style.padding[CSS_RIGHT] = 5;
|
||||
node->style.padding[CSS_BOTTOM] = 5;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with padding and stretch\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with inner & outer padding and stretch\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.padding[CSS_LEFT] = 50;
|
||||
node->style.padding[CSS_TOP] = 50;
|
||||
node->style.padding[CSS_RIGHT] = 50;
|
||||
node->style.padding[CSS_BOTTOM] = 50;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with stretch and child with margin\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
node->style.align_self = CSS_ALIGN_STRETCH;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with top and left\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with height, padding and space-around\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
node->style.justify_content = CSS_JUSTIFY_SPACE_BETWEEN;
|
||||
node->style.dimensions[CSS_HEIGHT] = 10;
|
||||
node->style.padding[CSS_TOP] = 5;
|
||||
init_css_node_children(node, 1);
|
||||
css_node_t *outer_node = node;
|
||||
{
|
||||
css_node_t *node;
|
||||
node = &outer_node->children[0];
|
||||
}
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with bottom\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
|
||||
{
|
||||
printf("%s", "should layout node with both top and bottom\n");
|
||||
css_node_t *root_node = new_css_node();
|
||||
|
||||
css_node_t *node = root_node;
|
||||
layoutNode(root_node);
|
||||
print_style(root_node, 0);
|
||||
print_layout(root_node, 0);
|
||||
free_css_node(root_node);
|
||||
}
|
||||
}
|
||||
|
@@ -60,8 +60,69 @@ function printLayout(test) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function addEnum(node, js_key, c_key, dict) {
|
||||
if (js_key in node.style) {
|
||||
add('node->style' + '.' + c_key + ' = ' + dict[node.style[js_key]] + ';');
|
||||
}
|
||||
}
|
||||
|
||||
function addFloat(node, js_key, c_key) {
|
||||
if (js_key in node.style) {
|
||||
add('node->style' + '.' + c_key + ' = ' + node.style[js_key] + ';');
|
||||
}
|
||||
}
|
||||
|
||||
function addSpacing(node, spacing) {
|
||||
addFloat(node, spacing, spacing + '[CSS_LEFT]');
|
||||
addFloat(node, spacing, spacing + '[CSS_TOP]');
|
||||
addFloat(node, spacing, spacing + '[CSS_RIGHT]');
|
||||
addFloat(node, spacing, spacing + '[CSS_BOTTOM]');
|
||||
|
||||
addFloat(node, spacing + 'Left', spacing + '[CSS_LEFT]');
|
||||
addFloat(node, spacing + 'Top', spacing + '[CSS_TOP]');
|
||||
addFloat(node, spacing + 'Right', spacing + '[CSS_RIGHT]');
|
||||
addFloat(node, spacing + 'Bottom', spacing + '[CSS_BOTTOM]');
|
||||
}
|
||||
|
||||
function rec(node) {
|
||||
if (node.children) {
|
||||
addEnum(node, 'flexDirection', 'flex_direction', {
|
||||
'row': 'CSS_FLEX_DIRECTION_ROW',
|
||||
'column': 'CSS_FLEX_DIRECTION_COLUMN'
|
||||
});
|
||||
addEnum(node, 'justifyContent', 'justify_content', {
|
||||
'flex-start': 'CSS_JUSTIFY_FLEX_START',
|
||||
'center': 'CSS_JUSTIFY_CENTER',
|
||||
'flex-end': 'CSS_JUSTIFY_FLEX_END',
|
||||
'space-between': 'CSS_JUSTIFY_SPACE_AROUND',
|
||||
'space-around': 'CSS_JUSTIFY_SPACE_BETWEEN'
|
||||
});
|
||||
addEnum(node, 'alignItems', 'align_items', {
|
||||
'flex-start': 'CSS_ALIGN_FLEX_START',
|
||||
'center': 'CSS_ALIGN_CENTER',
|
||||
'flex-end': 'CSS_ALIGN_FLEX_END',
|
||||
'stretch': 'CSS_ALIGN_STRETCH'
|
||||
});
|
||||
addEnum(node, 'alignSelf', 'align_self', {
|
||||
'flex-start': 'CSS_ALIGN_FLEX_START',
|
||||
'center': 'CSS_ALIGN_CENTER',
|
||||
'flex-end': 'CSS_ALIGN_FLEX_END',
|
||||
'stretch': 'CSS_ALIGN_STRETCH'
|
||||
});
|
||||
addEnum(node, 'flex', 'flex', {
|
||||
'none': 'CSS_FLEX_NONE',
|
||||
'1': 'CSS_FLEX_ONE'
|
||||
});
|
||||
addFloat(node, 'width', 'dimensions[CSS_WIDTH]');
|
||||
addFloat(node, 'height', 'dimensions[CSS_HEIGHT]');
|
||||
addSpacing(node, 'margin');
|
||||
addSpacing(node, 'padding');
|
||||
addFloat(node, 'left', 'position[CSS_LEFT]');
|
||||
addFloat(node, 'top', 'position[CSS_TOP]');
|
||||
addFloat(node, 'right', 'position[CSS_RIGHT]');
|
||||
addFloat(node, 'bottom', 'position[CSS_BOTTOM]');
|
||||
|
||||
add('init_css_node_children(node, ' + node.children.length + ');');
|
||||
add('css_node_t *outer_node = node;');
|
||||
add('{');
|
||||
|
Reference in New Issue
Block a user