summaryrefslogtreecommitdiff
path: root/include/ui.h
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 /include/ui.h
parent58c0f40df5947b3933bf7b6564b2ba5dc39fbd92 (diff)
Support scrolling by dragging scrollbars
Diffstat (limited to 'include/ui.h')
-rw-r--r--include/ui.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/ui.h b/include/ui.h
index b95157e..baaa550 100644
--- a/include/ui.h
+++ b/include/ui.h
@@ -82,7 +82,7 @@ typedef enum uiMouseButtonState {
82/// Mouse button event. 82/// Mouse button event.
83typedef struct uiMouseButtonEvent { 83typedef struct uiMouseButtonEvent {
84 uiMouseButton button; 84 uiMouseButton button;
85 uiMouseButtonState state; 85 uiMouseButtonState button_state;
86 uiPoint mouse_position; 86 uiPoint mouse_position;
87} uiMouseButtonEvent; 87} uiMouseButtonEvent;
88 88
@@ -98,11 +98,19 @@ typedef struct uiMouseScrollEvent {
98 int scroll_offset; /// Positive = down; negative = up. 98 int scroll_offset; /// Positive = down; negative = up.
99} uiMouseScrollEvent; 99} uiMouseScrollEvent;
100 100
101/// Mouse move event.
102typedef struct uiMouseMoveEvent {
103 // TODO: A bitfield would be sufficient.
104 uiMouseButtonState button_state[uiMouseButtonMax];
105 uiPoint mouse_position;
106} uiMouseMoveEvent;
107
101/// Input event type. 108/// Input event type.
102typedef enum uiInputEventType { 109typedef enum uiInputEventType {
103 uiEventMouseButton, 110 uiEventMouseButton,
104 uiEventMouseClick, 111 uiEventMouseClick,
105 uiEventMouseScroll, 112 uiEventMouseScroll,
113 uiEventMouseMove,
106} uiInputEventType; 114} uiInputEventType;
107 115
108/// Input event. 116/// Input event.
@@ -112,6 +120,7 @@ typedef struct uiInputEvent {
112 uiMouseButtonEvent mouse_button; 120 uiMouseButtonEvent mouse_button;
113 uiMouseClickEvent mouse_click; 121 uiMouseClickEvent mouse_click;
114 uiMouseScrollEvent mouse_scroll; 122 uiMouseScrollEvent mouse_scroll;
123 uiMouseMoveEvent mouse_move;
115 }; 124 };
116} uiInputEvent; 125} uiInputEvent;
117 126
@@ -149,6 +158,9 @@ uiPtr uiMakeButtonPtr(uiButton*);
149uiPtr uiMakeFramePtr(uiFrame*); 158uiPtr uiMakeFramePtr(uiFrame*);
150uiPtr uiMakeLabelPtr(uiLabel*); 159uiPtr uiMakeLabelPtr(uiLabel*);
151uiPtr uiMakeTablePtr(uiTable*); 160uiPtr uiMakeTablePtr(uiTable*);
161uiPtr uiMakeWidgetPtr(uiWidget*);
162uiPtr uiNullptr(void);
163bool uiIsNullptr(uiPtr ptr);
152 164
153uiButton* uiGetButtonPtr(uiPtr ptr); 165uiButton* uiGetButtonPtr(uiPtr ptr);
154uiFrame* uiGetFramePtr(uiPtr ptr); 166uiFrame* uiGetFramePtr(uiPtr ptr);
@@ -188,6 +200,7 @@ void uiTableClear(uiTable*);
188void uiTableAddRow(uiTable*, const char** row); 200void uiTableAddRow(uiTable*, const char** row);
189void uiTableSet(uiTable*, int row, int col, const char* text); 201void uiTableSet(uiTable*, int row, int col, const char* text);
190const char* uiTableGet(const uiTable*, int row, int col); 202const char* uiTableGet(const uiTable*, int row, int col);
203void uiTableScroll(uiTable*, int row);
191 204
192// ----------------------------------------------------------------------------- 205// -----------------------------------------------------------------------------
193// Rendering. 206// Rendering.