diff options
| author | 3gg <3gg@shellblade.net> | 2026-03-12 15:29:23 -0700 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2026-03-12 15:29:23 -0700 |
| commit | 92978a10576d52a0f6c9983d3b6afae7c40eff40 (patch) | |
| tree | bf73faed8aa1ecd71b9f61c37a549faf4cd30372 /include | |
| parent | 58c0f40df5947b3933bf7b6564b2ba5dc39fbd92 (diff) | |
Support scrolling by dragging scrollbars
Diffstat (limited to 'include')
| -rw-r--r-- | include/ui.h | 15 |
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. |
| 83 | typedef struct uiMouseButtonEvent { | 83 | typedef 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. | ||
| 102 | typedef 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. |
| 102 | typedef enum uiInputEventType { | 109 | typedef 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*); | |||
| 149 | uiPtr uiMakeFramePtr(uiFrame*); | 158 | uiPtr uiMakeFramePtr(uiFrame*); |
| 150 | uiPtr uiMakeLabelPtr(uiLabel*); | 159 | uiPtr uiMakeLabelPtr(uiLabel*); |
| 151 | uiPtr uiMakeTablePtr(uiTable*); | 160 | uiPtr uiMakeTablePtr(uiTable*); |
| 161 | uiPtr uiMakeWidgetPtr(uiWidget*); | ||
| 162 | uiPtr uiNullptr(void); | ||
| 163 | bool uiIsNullptr(uiPtr ptr); | ||
| 152 | 164 | ||
| 153 | uiButton* uiGetButtonPtr(uiPtr ptr); | 165 | uiButton* uiGetButtonPtr(uiPtr ptr); |
| 154 | uiFrame* uiGetFramePtr(uiPtr ptr); | 166 | uiFrame* uiGetFramePtr(uiPtr ptr); |
| @@ -188,6 +200,7 @@ void uiTableClear(uiTable*); | |||
| 188 | void uiTableAddRow(uiTable*, const char** row); | 200 | void uiTableAddRow(uiTable*, const char** row); |
| 189 | void uiTableSet(uiTable*, int row, int col, const char* text); | 201 | void uiTableSet(uiTable*, int row, int col, const char* text); |
| 190 | const char* uiTableGet(const uiTable*, int row, int col); | 202 | const char* uiTableGet(const uiTable*, int row, int col); |
| 203 | void uiTableScroll(uiTable*, int row); | ||
| 191 | 204 | ||
| 192 | // ----------------------------------------------------------------------------- | 205 | // ----------------------------------------------------------------------------- |
| 193 | // Rendering. | 206 | // Rendering. |
