summaryrefslogtreecommitdiff
path: root/src/widget/widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/widget/widget.c')
-rw-r--r--src/widget/widget.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/widget/widget.c b/src/widget/widget.c
index ef79ac4..ebcaf10 100644
--- a/src/widget/widget.c
+++ b/src/widget/widget.c
@@ -63,11 +63,28 @@ uiPtr uiMakeTablePtr(uiTable* table) {
63 return (uiPtr){.type = uiTypeTable, .table = table}; 63 return (uiPtr){.type = uiTypeTable, .table = table};
64} 64}
65 65
66static uiPtr uiMakeWidgetPtr(uiWidget* widget) { 66uiPtr uiMakeWidgetPtr(uiWidget* widget) {
67 assert(widget); 67 assert(widget);
68 return (uiPtr){.type = widget->type, .widget = widget}; 68 switch (widget->type) {
69 case uiTypeButton:
70 return uiMakeButtonPtr((uiButton*)widget);
71 case uiTypeFrame:
72 return uiMakeFramePtr((uiFrame*)widget);
73 case uiTypeLabel:
74 return uiMakeLabelPtr((uiLabel*)widget);
75 case uiTypeTable:
76 return uiMakeTablePtr((uiTable*)widget);
77 default:
78 ASSERT(false);
79 break;
80 }
81 return (uiPtr){0};
69} 82}
70 83
84uiPtr uiNullptr(void) { return (uiPtr){0}; }
85
86bool uiIsNullptr(uiPtr ptr) { return ptr.widget == 0; }
87
71uiButton* uiGetButtonPtr(uiPtr ptr) { 88uiButton* uiGetButtonPtr(uiPtr ptr) {
72 assert(ptr.type == uiTypeButton); 89 assert(ptr.type == uiTypeButton);
73 assert(ptr.button); 90 assert(ptr.button);