summaryrefslogtreecommitdiff
path: root/riscos/wimp_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/wimp_event.c')
-rw-r--r--riscos/wimp_event.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/riscos/wimp_event.c b/riscos/wimp_event.c
index 7dea8ed12..e87962039 100644
--- a/riscos/wimp_event.c
+++ b/riscos/wimp_event.c
@@ -96,6 +96,7 @@ struct event_window {
void (*close_window)(wimp_w w);
void (*redraw_window)(wimp_draw *redraw);
void (*scroll_window)(wimp_scroll *scroll);
+ void (*entering_window)(wimp_entering *entering);
bool (*menu_prepare)(wimp_w w, wimp_i i, wimp_menu *m,
wimp_pointer *p);
bool (*menu_selection)(wimp_w w, wimp_i i, wimp_menu *m,
@@ -1134,6 +1135,24 @@ bool ro_gui_wimp_event_scroll_window(wimp_scroll *scroll)
/**
+ * Handle any pointer entering window requests
+ *
+ * \param entering the pointer entering window request
+ */
+bool ro_gui_wimp_event_pointer_entering_window(wimp_entering *entering)
+{
+ struct event_window *window;
+
+ window = ro_gui_wimp_event_find_window(entering->w);
+ if ((window) && (window->entering_window)) {
+ window->entering_window(entering);
+ return true;
+ }
+ return false;
+}
+
+
+/**
* Process a Menu click in a window, by checking for a registered window
* menu and opening it if one is found.
*
@@ -1491,6 +1510,22 @@ bool ro_gui_wimp_event_register_scroll_window(wimp_w w,
}
/**
+ * Register a function to be called for all pointer entering window requests.
+ */
+
+bool ro_gui_wimp_event_register_pointer_entering_window(wimp_w w,
+ void (*callback)(wimp_entering *entering))
+{
+ struct event_window *window;
+
+ window = ro_gui_wimp_event_get_window(w);
+ if (!window)
+ return false;
+ window->entering_window = callback;
+ return true;
+}
+
+/**
* Register a function to be called before a menu is (re-)opened.
*
* \param *w The window for which events should be returned.
@@ -1788,3 +1823,4 @@ void ro_gui_wimp_event_register_submenu(wimp_w w)
ro_gui_wimp_event_close_window(ro_gui_wimp_event_submenu);
ro_gui_wimp_event_submenu = w;
}
+