summaryrefslogtreecommitdiff
path: root/src/events/keyboard_event.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/keyboard_event.h')
-rw-r--r--src/events/keyboard_event.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/events/keyboard_event.h b/src/events/keyboard_event.h
new file mode 100644
index 0000000..4d2777c
--- /dev/null
+++ b/src/events/keyboard_event.h
@@ -0,0 +1,55 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com>
+ */
+
+#ifndef dom_interntal_events_keyboard_event_h_
+#define dom_interntal_events_keyboard_event_h_
+
+#include <dom/events/keyboard_event.h>
+
+#include "events/ui_event.h"
+
+/**
+ * The keyboard event
+ */
+struct dom_keyboard_event {
+ struct dom_ui_event base; /**< The base class */
+
+ struct dom_string *key_ident; /**< The identifier of the key in this
+ * event, please refer:
+ * http://www.w3.org/TR/DOM-Level-3-Events/keyset.html#KeySet-Set
+ * for detail
+ */
+
+ dom_key_location key_loc; /**< Indicate the location of the key on
+ * the keyboard
+ */
+
+ uint32_t modifier_state; /**< The modifier keys state */
+};
+
+/* Constructor */
+dom_exception _dom_keyboard_event_create(struct dom_document *doc,
+ struct dom_keyboard_event **evt);
+
+/* Destructor */
+void _dom_keyboard_event_destroy(struct dom_document *doc,
+ struct dom_keyboard_event *evt);
+
+/* Initialise function */
+dom_exception _dom_keyboard_event_initialise(struct dom_document *doc,
+ struct dom_keyboard_event *evt);
+
+/* Finalise function */
+void _dom_keyboard_event_finalise(struct dom_document *doc,
+ struct dom_keyboard_event *evt);
+
+
+/* Parse the modifier list string to corresponding bool variable state */
+dom_exception _dom_parse_modifier_list(struct dom_string *modifier_list,
+ uint32_t *modifier_state);
+
+#endif