Add descriptor for creating node
This commit is contained in:
@@ -385,7 +385,7 @@ BzUIKey bzUIGetUniqueKey(BzUI *ui) {
|
||||
return ui->keyIdCount++;
|
||||
}
|
||||
|
||||
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags) {
|
||||
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, const BzUINodeDesc *desc) {
|
||||
BzUINode *node = NULL;
|
||||
if (key != bzUIKeyNull())
|
||||
node = hmget(ui->nodeMap, key);
|
||||
@@ -412,7 +412,15 @@ BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags) {
|
||||
}
|
||||
|
||||
node->parent = parent;
|
||||
node->flags = flags;
|
||||
|
||||
node->layout = desc->layout;
|
||||
node->style = desc->style;
|
||||
node->flags = desc->flags;
|
||||
node->string = desc->string;
|
||||
|
||||
bzMemCpy(node->semanticSize, desc->semanticSize, sizeof(node->semanticSize));
|
||||
bzMemCpy(node->padding, desc->padding, sizeof(node->padding));
|
||||
bzMemCpy(node->margin, desc->margin, sizeof(node->margin));
|
||||
|
||||
return node;
|
||||
}
|
||||
@@ -458,9 +466,11 @@ bool bzUIButton(BzUI *ui, const char *string, BzUIStyle *style) {
|
||||
s = *style;
|
||||
}
|
||||
BzUINode *node = bzUINodeMake(ui, bzUIKeyFromString(string),
|
||||
BZ_UI_CLICKABLE | BZ_UI_DRAW_TEXT |
|
||||
BZ_UI_DRAW_BACKGROUND |
|
||||
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER);
|
||||
&(BzUINodeDesc) {
|
||||
.flags = BZ_UI_CLICKABLE | BZ_UI_DRAW_TEXT |
|
||||
BZ_UI_DRAW_BACKGROUND |
|
||||
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER
|
||||
});
|
||||
node->string = string;
|
||||
node->semanticSize[BZ_UI_AXIS_X] = (BzUISize) {
|
||||
.kind = BZ_UI_SIZE_FIT,
|
||||
|
||||
Reference in New Issue
Block a user