summaryrefslogtreecommitdiff
path: root/riscos/wimp_event.c
diff options
context:
space:
mode:
authorSteve Fryatt <steve@stevefryatt.org.uk>2011-12-17 17:31:35 +0000
committerSteve Fryatt <steve@stevefryatt.org.uk>2011-12-17 17:31:35 +0000
commit80249f5f2a4b2dead38174ebba9cfd4bd114eb0b (patch)
tree29497f8f20bb1355daf8416769a2fc00c8d24e9d /riscos/wimp_event.c
parent6cfe625874e0af6993f0cd01d8c0bc1299bd6398 (diff)
downloadnetsurf-80249f5f2a4b2dead38174ebba9cfd4bd114eb0b.tar.gz
netsurf-80249f5f2a4b2dead38174ebba9cfd4bd114eb0b.tar.bz2
Make scroll event handling module specific.
svn path=/trunk/netsurf/; revision=13285
Diffstat (limited to 'riscos/wimp_event.c')
-rw-r--r--riscos/wimp_event.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/riscos/wimp_event.c b/riscos/wimp_event.c
index 384a5258e..7dea8ed12 100644
--- a/riscos/wimp_event.c
+++ b/riscos/wimp_event.c
@@ -95,6 +95,7 @@ struct event_window {
void (*open_window)(wimp_open *open);
void (*close_window)(wimp_w w);
void (*redraw_window)(wimp_draw *redraw);
+ void (*scroll_window)(wimp_scroll *scroll);
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,
@@ -1115,6 +1116,24 @@ bool ro_gui_wimp_event_redraw_window(wimp_draw *redraw)
/**
+ * Handle any scroll window requests
+ *
+ * \param scroll the window scroll request
+ */
+bool ro_gui_wimp_event_scroll_window(wimp_scroll *scroll)
+{
+ struct event_window *window;
+
+ window = ro_gui_wimp_event_find_window(scroll->w);
+ if ((window) && (window->scroll_window)) {
+ window->scroll_window(scroll);
+ 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.
*
@@ -1455,6 +1474,21 @@ bool ro_gui_wimp_event_register_redraw_window(wimp_w w,
return true;
}
+/**
+ * Register a function to be called for all window scroll requests.
+ */
+
+bool ro_gui_wimp_event_register_scroll_window(wimp_w w,
+ void (*callback)(wimp_scroll *scroll))
+{
+ struct event_window *window;
+
+ window = ro_gui_wimp_event_get_window(w);
+ if (!window)
+ return false;
+ window->scroll_window = callback;
+ return true;
+}
/**
* Register a function to be called before a menu is (re-)opened.