Add descriptor for creating node
This commit is contained in:
@@ -28,9 +28,9 @@ void *bzResize(void *ptr, size_t newSize) {
|
|||||||
void *bzMemSet(void *ptr, int value, size_t numBytes) {
|
void *bzMemSet(void *ptr, int value, size_t numBytes) {
|
||||||
return memset(ptr, value, numBytes);
|
return memset(ptr, value, numBytes);
|
||||||
}
|
}
|
||||||
void *bzMemMove(void *dst, void *src, size_t numBytes) {
|
void *bzMemMove(void *dst, const void *src, size_t numBytes) {
|
||||||
return memmove(dst, src, numBytes);
|
return memmove(dst, src, numBytes);
|
||||||
}
|
}
|
||||||
void *bzMemCpy(void *dst, void *src, size_t numBytes) {
|
void *bzMemCpy(void *dst, const void *src, size_t numBytes) {
|
||||||
return memcpy(dst, src, numBytes);
|
return memcpy(dst, src, numBytes);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ void *bzCalloc(size_t numBytes, size_t count);
|
|||||||
void *bzResize(void *ptr, size_t newSize);
|
void *bzResize(void *ptr, size_t newSize);
|
||||||
|
|
||||||
void *bzMemSet(void *ptr, int value, size_t numBytes);
|
void *bzMemSet(void *ptr, int value, size_t numBytes);
|
||||||
void *bzMemMove(void *dst, void *src, size_t numBytes);
|
void *bzMemMove(void *dst, const void *src, size_t numBytes);
|
||||||
void *bzMemCpy(void *dst, void *src, size_t numBytes);
|
void *bzMemCpy(void *dst, const void *src, size_t numBytes);
|
||||||
|
|
||||||
|
|
||||||
#endif //BREEZE_MEMORY_H
|
#endif //BREEZE_MEMORY_H
|
||||||
|
|||||||
@@ -385,7 +385,7 @@ BzUIKey bzUIGetUniqueKey(BzUI *ui) {
|
|||||||
return ui->keyIdCount++;
|
return ui->keyIdCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags) {
|
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, const BzUINodeDesc *desc) {
|
||||||
BzUINode *node = NULL;
|
BzUINode *node = NULL;
|
||||||
if (key != bzUIKeyNull())
|
if (key != bzUIKeyNull())
|
||||||
node = hmget(ui->nodeMap, key);
|
node = hmget(ui->nodeMap, key);
|
||||||
@@ -412,7 +412,15 @@ BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
node->parent = parent;
|
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;
|
return node;
|
||||||
}
|
}
|
||||||
@@ -458,9 +466,11 @@ bool bzUIButton(BzUI *ui, const char *string, BzUIStyle *style) {
|
|||||||
s = *style;
|
s = *style;
|
||||||
}
|
}
|
||||||
BzUINode *node = bzUINodeMake(ui, bzUIKeyFromString(string),
|
BzUINode *node = bzUINodeMake(ui, bzUIKeyFromString(string),
|
||||||
BZ_UI_CLICKABLE | BZ_UI_DRAW_TEXT |
|
&(BzUINodeDesc) {
|
||||||
BZ_UI_DRAW_BACKGROUND |
|
.flags = BZ_UI_CLICKABLE | BZ_UI_DRAW_TEXT |
|
||||||
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER);
|
BZ_UI_DRAW_BACKGROUND |
|
||||||
|
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER
|
||||||
|
});
|
||||||
node->string = string;
|
node->string = string;
|
||||||
node->semanticSize[BZ_UI_AXIS_X] = (BzUISize) {
|
node->semanticSize[BZ_UI_AXIS_X] = (BzUISize) {
|
||||||
.kind = BZ_UI_SIZE_FIT,
|
.kind = BZ_UI_SIZE_FIT,
|
||||||
|
|||||||
@@ -96,9 +96,19 @@ enum {
|
|||||||
BZ_UI_ALIGN_CENTER = BZ_UI_ALIGN_HORIZ_CENTER | BZ_UI_ALIGN_VERT_CENTER,
|
BZ_UI_ALIGN_CENTER = BZ_UI_ALIGN_HORIZ_CENTER | BZ_UI_ALIGN_VERT_CENTER,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef struct BzUINode BzUINode;
|
typedef struct BzUINode BzUINode;
|
||||||
|
|
||||||
|
typedef struct BzUINodeDesc {
|
||||||
|
BzUILayout layout;
|
||||||
|
BzUIStyle style;
|
||||||
|
BzUIFlags flags;
|
||||||
|
const char *string;
|
||||||
|
|
||||||
|
BzUISize semanticSize[BZ_UI_AXIS_COUNT];
|
||||||
|
f32 padding[BZ_UI_AXIS_COUNT * 2];
|
||||||
|
f32 margin[BZ_UI_AXIS_COUNT * 2];
|
||||||
|
} BzUINodeDesc;
|
||||||
|
|
||||||
typedef struct BzUIInteraction {
|
typedef struct BzUIInteraction {
|
||||||
bool pressed : 1;
|
bool pressed : 1;
|
||||||
bool down : 1;
|
bool down : 1;
|
||||||
@@ -121,7 +131,7 @@ void bzUIEnd(BzUI *ui);
|
|||||||
|
|
||||||
BzUIKey bzUIGetUniqueKey(BzUI *ui);
|
BzUIKey bzUIGetUniqueKey(BzUI *ui);
|
||||||
|
|
||||||
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags);
|
BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, const BzUINodeDesc *desc);
|
||||||
|
|
||||||
BzUINode *bzUIPushParent(BzUI *ui, BzUINode *node);
|
BzUINode *bzUIPushParent(BzUI *ui, BzUINode *node);
|
||||||
BzUINode *bzUIPopParent(BzUI *ui);
|
BzUINode *bzUIPopParent(BzUI *ui);
|
||||||
|
|||||||
Reference in New Issue
Block a user