Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * This file is part of libdom.
  3.  * Licensed under the MIT License,
  4.  *                http://www.opensource.org/licenses/mit-license.php
  5.  * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com>
  6.  */
  7.  
  8. #ifndef dom_events_event_h_
  9. #define dom_events_event_h_
  10.  
  11. #include <stdbool.h>
  12. #include <dom/core/exceptions.h>
  13. #include <dom/core/string.h>
  14. #include <dom/events/event_target.h>
  15.  
  16. typedef enum {
  17.         DOM_CAPTURING_PHASE = 1,
  18.         DOM_AT_TARGET       = 2,
  19.         DOM_BUBBLING_PHASE  = 3
  20. } dom_event_flow_phase;
  21.  
  22. typedef struct dom_event dom_event;
  23.  
  24. /* The ref/unref methods define */
  25. void _dom_event_ref(dom_event *evt);
  26. #define dom_event_ref(n) _dom_event_ref((dom_event *) (n))
  27. void _dom_event_unref(dom_event *evt);
  28. #define dom_event_unref(n) _dom_event_unref((dom_event *) (n))
  29.  
  30. dom_exception _dom_event_get_type(dom_event *evt, dom_string **type);
  31. #define dom_event_get_type(e, t) _dom_event_get_type((dom_event *) (e), \
  32.                 (dom_string **) (t))
  33.  
  34. dom_exception _dom_event_get_target(dom_event *evt, dom_event_target **target);
  35. #define dom_event_get_target(e, t) _dom_event_get_target((dom_event *) (e), \
  36.                 (dom_event_target **) (t))
  37.  
  38. dom_exception _dom_event_get_current_target(dom_event *evt,
  39.                 dom_event_target **current);
  40. #define dom_event_get_current_target(e, c) _dom_event_get_current_target(\
  41.                 (dom_event *) (e), (dom_event_target **) (c))
  42.  
  43. dom_exception _dom_event_get_bubbles(dom_event *evt, bool *bubbles);
  44. #define dom_event_get_bubbles(e, b) _dom_event_get_bubbles((dom_event *) (e), \
  45.                 (bool *) (b))
  46.  
  47. dom_exception _dom_event_get_cancelable(dom_event *evt, bool *cancelable);
  48. #define dom_event_get_cancelable(e, c) _dom_event_get_cancelable(\
  49.                 (dom_event *) (e), (bool *) (c))
  50.  
  51. dom_exception _dom_event_get_timestamp(dom_event *evt,
  52.                 unsigned int *timestamp);
  53. #define dom_event_get_timestamp(e, t) _dom_event_get_timestamp(\
  54.                 (dom_event *) (e), (unsigned int *) (t))
  55.  
  56. dom_exception _dom_event_stop_propagation(dom_event *evt);
  57. #define dom_event_stop_propagation(e) _dom_event_stop_propagation(\
  58.                 (dom_event *) (e))
  59.  
  60. dom_exception _dom_event_prevent_default(dom_event *evt);
  61. #define dom_event_prevent_default(e) _dom_event_prevent_default(\
  62.                 (dom_event *) (e))
  63.  
  64. dom_exception _dom_event_init(dom_event *evt, dom_string *type,
  65.                 bool bubble, bool cancelable);
  66. #define dom_event_init(e, t, b, c) _dom_event_init((dom_event *) (e), \
  67.                 (dom_string *) (t), (bool) (b), (bool) (c))
  68.  
  69. dom_exception _dom_event_get_namespace(dom_event *evt,
  70.                 dom_string **namespace);
  71. #define dom_event_get_namespace(e, n) _dom_event_get_namespace(\
  72.                 (dom_event *) (e), (dom_string **) (n))
  73.  
  74. dom_exception _dom_event_is_custom(dom_event *evt, bool *custom);
  75. #define dom_event_is_custom(e, c) _dom_event_is_custom((dom_event *) (e), \
  76.                 (bool *) (c))
  77.        
  78. dom_exception _dom_event_stop_immediate_propagation(dom_event *evt);
  79. #define dom_event_stop_immediate_propagation(e)  \
  80.                 _dom_event_stop_immediate_propagation((dom_event *) (e))
  81.  
  82. dom_exception _dom_event_is_default_prevented(dom_event *evt, bool *prevented);
  83. #define dom_event_is_default_prevented(e, p) \
  84.                 _dom_event_is_default_prevented((dom_event *) (e), (bool *) (p))
  85.  
  86. dom_exception _dom_event_init_ns(dom_event *evt, dom_string *namespace,
  87.                 dom_string *type, bool bubble, bool cancelable);
  88. #define dom_event_init_ns(e, n, t, b, c) _dom_event_init_ns( \
  89.                 (dom_event *) (e), (dom_string *) (n), \
  90.                 (dom_string *) (t), (bool) (b), (bool) (c))
  91.  
  92. #endif
  93.