summaryrefslogtreecommitdiff
path: root/src/widget/widget.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2026-03-12 15:29:23 -0700
committer3gg <3gg@shellblade.net>2026-03-12 15:29:23 -0700
commit92978a10576d52a0f6c9983d3b6afae7c40eff40 (patch)
treebf73faed8aa1ecd71b9f61c37a549faf4cd30372 /src/widget/widget.c
parent58c0f40df5947b3933bf7b6564b2ba5dc39fbd92 (diff)
Support scrolling by dragging scrollbars
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);