From 92978a10576d52a0f6c9983d3b6afae7c40eff40 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Thu, 12 Mar 2026 15:29:23 -0700 Subject: Support scrolling by dragging scrollbars --- include/ui.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'include') 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 { /// Mouse button event. typedef struct uiMouseButtonEvent { uiMouseButton button; - uiMouseButtonState state; + uiMouseButtonState button_state; uiPoint mouse_position; } uiMouseButtonEvent; @@ -98,11 +98,19 @@ typedef struct uiMouseScrollEvent { int scroll_offset; /// Positive = down; negative = up. } uiMouseScrollEvent; +/// Mouse move event. +typedef struct uiMouseMoveEvent { + // TODO: A bitfield would be sufficient. + uiMouseButtonState button_state[uiMouseButtonMax]; + uiPoint mouse_position; +} uiMouseMoveEvent; + /// Input event type. typedef enum uiInputEventType { uiEventMouseButton, uiEventMouseClick, uiEventMouseScroll, + uiEventMouseMove, } uiInputEventType; /// Input event. @@ -112,6 +120,7 @@ typedef struct uiInputEvent { uiMouseButtonEvent mouse_button; uiMouseClickEvent mouse_click; uiMouseScrollEvent mouse_scroll; + uiMouseMoveEvent mouse_move; }; } uiInputEvent; @@ -149,6 +158,9 @@ uiPtr uiMakeButtonPtr(uiButton*); uiPtr uiMakeFramePtr(uiFrame*); uiPtr uiMakeLabelPtr(uiLabel*); uiPtr uiMakeTablePtr(uiTable*); +uiPtr uiMakeWidgetPtr(uiWidget*); +uiPtr uiNullptr(void); +bool uiIsNullptr(uiPtr ptr); uiButton* uiGetButtonPtr(uiPtr ptr); uiFrame* uiGetFramePtr(uiPtr ptr); @@ -188,6 +200,7 @@ void uiTableClear(uiTable*); void uiTableAddRow(uiTable*, const char** row); void uiTableSet(uiTable*, int row, int col, const char* text); const char* uiTableGet(const uiTable*, int row, int col); +void uiTableScroll(uiTable*, int row); // ----------------------------------------------------------------------------- // Rendering. -- cgit v1.2.3