summaryrefslogtreecommitdiff
path: root/riscos/mouse.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/mouse.h')
-rw-r--r--riscos/mouse.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/riscos/mouse.h b/riscos/mouse.h
index 623c6dfaa..26fb72e5b 100644
--- a/riscos/mouse.h
+++ b/riscos/mouse.h
@@ -65,5 +65,30 @@ void ro_mouse_drag_start(void (*drag_end)(wimp_dragged *dragged, void *data),
void ro_mouse_drag_end(wimp_dragged *dragged);
+
+/**
+ * Start tracking the mouse in a window, providing a function to be called on
+ * null polls and optionally one to be called when it leaves the window.
+ *
+ * \param *drag_end Callback for when the pointer leaves the window, or
+ * NULL for none.
+ * \param *drag_track Callback for mouse tracking while the pointer remains
+ * in the window, or NULL for none.
+ * \param *data Data to be passed to the callback functions, or NULL.
+ */
+
+void ro_mouse_track_start(void (*poll_end)(wimp_leaving *leaving, void *data),
+ void (*poll_track)(wimp_pointer *pointer, void *data),
+ void *data);
+
+/**
+ * Process Wimp_PointerLeaving events by terminating an active mouse track and
+ * passing the details on to any registered event handler.
+ *
+ * \param *leaving The Wimp_PointerLeaving data block.
+ */
+
+void ro_mouse_pointer_leaving_window(wimp_leaving *leaving);
+
#endif