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) {
|
||||
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);
|
||||
}
|
||||
void *bzMemCpy(void *dst, void *src, size_t numBytes) {
|
||||
void *bzMemCpy(void *dst, const void *src, size_t 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 *bzMemSet(void *ptr, int value, size_t numBytes);
|
||||
void *bzMemMove(void *dst, void *src, size_t numBytes);
|
||||
void *bzMemCpy(void *dst, void *src, size_t numBytes);
|
||||
void *bzMemMove(void *dst, const void *src, size_t numBytes);
|
||||
void *bzMemCpy(void *dst, const void *src, size_t numBytes);
|
||||
|
||||
|
||||
#endif //BREEZE_MEMORY_H
|
||||
|
||||
@@ -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 |
|
||||
&(BzUINodeDesc) {
|
||||
.flags = BZ_UI_CLICKABLE | BZ_UI_DRAW_TEXT |
|
||||
BZ_UI_DRAW_BACKGROUND |
|
||||
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER);
|
||||
BZ_UI_DRAW_BORDER | BZ_UI_ALIGN_CENTER
|
||||
});
|
||||
node->string = string;
|
||||
node->semanticSize[BZ_UI_AXIS_X] = (BzUISize) {
|
||||
.kind = BZ_UI_SIZE_FIT,
|
||||
|
||||
@@ -96,9 +96,19 @@ enum {
|
||||
BZ_UI_ALIGN_CENTER = BZ_UI_ALIGN_HORIZ_CENTER | BZ_UI_ALIGN_VERT_CENTER,
|
||||
};
|
||||
|
||||
|
||||
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 {
|
||||
bool pressed : 1;
|
||||
bool down : 1;
|
||||
@@ -121,7 +131,7 @@ void bzUIEnd(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 *bzUIPopParent(BzUI *ui);
|
||||
|
||||
Reference in New Issue
Block a user