home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / dreamscape / source / Dreamscape / Headers / low-level / h / wimpevent < prev    next >
Text File  |  1996-08-30  |  2KB  |  61 lines

  1.  
  2. /* low-level.h.wimpevent
  3.  *
  4.  * Dreamscape - C++ class library for RISC OS
  5.  * Copyright (c) 1996 Mark Seaborn <mseaborn@argonet.co.uk>
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Library General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2 of the License, or (at your option) any later version.
  11.  * See the Dreamscape documentation for more information.
  12.  */
  13.  
  14. #ifndef dreamscape_wimpevent_H
  15. #define dreamscape_wimpevent_H
  16.  
  17. #include "bool.h"
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22.  
  23. typedef bool (dscape_wimpevent_handler)(const union wimp_block *event,
  24.         const struct toolbox_block *ids, void *handle);
  25. #define dscape_wimpevent_any_window ((struct wimp_w_ *) 0)
  26.  
  27. void dscape_wimpevent_dispatch_event(const union wimp_block *event,
  28.     const struct toolbox_block *ids, int id);
  29. void dscape_wimpevent_register_handler(int id, struct wimp_w_ *window,
  30.     dscape_wimpevent_handler *function, void *handle);
  31. void dscape_wimpevent_deregister_handler(int id, struct wimp_w_ *window,
  32.     dscape_wimpevent_handler *function, void *handle);
  33.  
  34. #ifdef __cplusplus
  35. }
  36.  
  37. typedef struct wimp_w_ *wimp_w;
  38. typedef int wimp_event_no;
  39. union wimp_block;
  40. struct toolbox_block;
  41.  
  42. class WimpEventHandler {
  43. public:
  44.   typedef dscape_wimpevent_handler Handler;
  45.   enum { any_window = 0 };
  46.  
  47.   static void dispatch_event(const wimp_block *event,
  48.         const toolbox_block *ids, wimp_event_no id)
  49.     { dscape_wimpevent_dispatch_event(event, ids, id); }
  50.   static void register_handler(wimp_event_no id, wimp_w window,
  51.         Handler *function, void *handle)
  52.     { dscape_wimpevent_register_handler(id, window, function, handle); }
  53.   static void deregister_handler(wimp_event_no id, wimp_w window,
  54.         Handler *function, void *handle)
  55.        { dscape_wimpevent_deregister_handler(id, window, function, handle); }
  56. };
  57.  
  58. #endif
  59.  
  60. #endif
  61.