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_keyboard_event_h_
  9. #define dom_events_keyboard_event_h_
  10.  
  11. #include <stdbool.h>
  12. #include <dom/core/exceptions.h>
  13. #include <dom/core/string.h>
  14.  
  15. struct dom_abstract_view;
  16.  
  17. typedef struct dom_keyboard_event dom_keyboard_event;
  18.  
  19. typedef enum {
  20.         DOM_KEY_LOCATION_STANDARD = 0,
  21.         DOM_KEY_LOCATION_LEFT = 1,
  22.         DOM_KEY_LOCATION_RIGHT = 2,
  23.         DOM_KEY_LOCATION_NUMPAD = 3
  24. } dom_key_location;
  25.  
  26. dom_exception _dom_keyboard_event_get_key_identifier(dom_keyboard_event *evt,
  27.                 dom_string **ident);
  28. #define dom_keyboard_event_get_key_identifier(e, i) \
  29.                 _dom_keyboard_event_get_key_identifier( \
  30.                 (dom_keyboard_event *) (e), (dom_string **) (i))
  31.  
  32. dom_exception _dom_keyboard_event_get_key_location(dom_keyboard_event *evt,
  33.                 dom_key_location *loc);
  34. #define dom_keyboard_event_get_key_location(e, l) \
  35.                 _dom_keyboard_event_get_key_location( \
  36.                 (dom_keyboard_event *) (e), (dom_key_location *) (l))
  37.  
  38. dom_exception _dom_keyboard_event_get_ctrl_key(dom_keyboard_event *evt,
  39.                 bool *key);
  40. #define dom_keyboard_event_get_ctrl_key(e, k) _dom_keyboard_event_get_ctrl_key(\
  41.                 (dom_keyboard_event *) (e), (bool *) (k))
  42.  
  43. dom_exception _dom_keyboard_event_get_shift_key(dom_keyboard_event *evt,
  44.                 bool *key);
  45. #define dom_keyboard_event_get_shift_key(e, k) \
  46.                 _dom_keyboard_event_get_shift_key((dom_keyboard_event *) (e), \
  47.                 (bool *) (k))
  48.  
  49. dom_exception _dom_keyboard_event_get_alt_key(dom_keyboard_event *evt,
  50.                 bool *key);
  51. #define dom_keyboard_event_get_alt_key(e, k) _dom_keyboard_event_get_alt_key(\
  52.                 (dom_keyboard_event *) (e), (bool *) (k))
  53.  
  54. dom_exception _dom_keyboard_event_get_meta_key(dom_keyboard_event *evt,
  55.                 bool *key);
  56. #define dom_keyboard_event_get_meta_key(e, k) _dom_keyboard_event_get_meta_key(\
  57.                 (dom_keyboard_event *) (e), (bool *) (k))
  58.  
  59. dom_exception _dom_keyboard_event_get_modifier_state(dom_keyboard_event *evt,
  60.                 dom_string *m, bool *state);
  61. #define dom_keyboard_event_get_modifier_state(e, m, s) \
  62.                 _dom_keyboard_event_get_modifier_state( \
  63.                 (dom_keyboard_event *) (e), (dom_string *) (m),\
  64.                 (bool *) (s))
  65.  
  66. dom_exception _dom_keyboard_event_init(dom_keyboard_event *evt,
  67.                 dom_string *type, bool bubble, bool cancelable,
  68.                 struct dom_abstract_view *view, dom_string *key_ident,
  69.                 dom_key_location key_loc, dom_string *modifier_list);
  70. #define dom_keyboard_event_init(e, t, b, c, v, ki, kl, m) \
  71.                 _dom_keyboard_event_init((dom_keyboard_event *) (e), \
  72.                 (dom_string *) (t), (bool) (b), (bool) (c), \
  73.                 (struct dom_abstract_view *) (v), (dom_string *) (ki), \
  74.                 (dom_key_location) (kl), (dom_string *) (m))
  75.  
  76. dom_exception _dom_keyboard_event_init_ns(dom_keyboard_event *evt,
  77.                 dom_string *namespace, dom_string *type,
  78.                 bool bubble, bool cancelable, struct dom_abstract_view *view,
  79.                 dom_string *key_ident, dom_key_location key_loc,
  80.                 dom_string *modifier_list);
  81. #define dom_keyboard_event_init_ns(e, n, t, b, c, v, ki, kl, m) \
  82.                 _dom_keyboard_event_init_ns((dom_keyboard_event *) (e), \
  83.                 (dom_string *) (n), (dom_string *) (t), \
  84.                 (bool) (b), (bool) (c), (struct dom_abstract_view *) (v), \
  85.                 (dom_string *) (ki), (dom_key_location) (kl), \
  86.                 (dom_string *) (m))
  87.  
  88. #endif
  89.  
  90.