SCIMBridge  0.4.x
scim-bridge-key-event.h
Go to the documentation of this file.
1 /*
2  * SCIM Bridge
3  *
4  * Copyright (c) 2006 Ryo Dairiki <ryo-dairiki@users.sourceforge.net>
5  *
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation and
10  * appearing in the file LICENSE.LGPL included in the package of this file.
11  * You can also redistribute it and/or modify it under the terms of
12  * the GNU General Public License as published by the Free Software Foundation and
13  * appearing in the file LICENSE.GPL included in the package of this file.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18  */
19 
25 #ifndef SCIM_BRIDGE_KEY_EVENT_H_
26 #define SCIM_BRIDGE_KEY_EVENT_H_
27 
28 #include "scim-bridge.h"
29 #include "scim-bridge-key-code.h"
30 
34 typedef unsigned int scim_bridge_key_quirk_t;
35 
39 #define SCIM_BRIDGE_KEY_NO_QUIRK (0)
40 
44 #define SCIM_BRIDGE_KEY_ALL_QUIRKS (0xF)
45 
49 #define SCIM_BRIDGE_KEY_QUIRK_KANA_RO (1 << 1)
50 
55 
56 #ifdef __cplusplus
57 extern "C"
58 {
59 #endif
60 
66  ScimBridgeKeyEvent *scim_bridge_alloc_key_event ();
67 
74  void scim_bridge_free_key_event (ScimBridgeKeyEvent *key_event);
75 
82  scim_bridge_key_code_t scim_bridge_key_event_get_code (const ScimBridgeKeyEvent *key_event);
83 
90  void scim_bridge_key_event_set_code (ScimBridgeKeyEvent *key_event, scim_bridge_key_code_t key_code);
91 
98  boolean scim_bridge_key_event_is_pressed (const ScimBridgeKeyEvent *key_event);
99 
106  void scim_bridge_key_event_set_pressed (ScimBridgeKeyEvent *key_event, boolean pressed);
107 
108 
114  void scim_bridge_key_event_clear_modifiers (ScimBridgeKeyEvent *key_event);
115 
116 
123  boolean scim_bridge_key_event_is_shift_down (const ScimBridgeKeyEvent *key_event);
124 
131  void scim_bridge_key_event_set_shift_down (ScimBridgeKeyEvent *key_event, boolean down);
132 
139  boolean scim_bridge_key_event_is_caps_lock_down (const ScimBridgeKeyEvent *key_event);
140 
147  void scim_bridge_key_event_set_caps_lock_down (ScimBridgeKeyEvent *key_event, boolean down);
148 
155  boolean scim_bridge_key_event_is_control_down (const ScimBridgeKeyEvent *key_event);
156 
163  void scim_bridge_key_event_set_control_down (ScimBridgeKeyEvent *key_event, boolean down);
164 
171  boolean scim_bridge_key_event_is_alt_down (const ScimBridgeKeyEvent *key_event);
172 
179  void scim_bridge_key_event_set_alt_down (ScimBridgeKeyEvent *key_event, boolean down);
180 
187  boolean scim_bridge_key_event_is_meta_down (const ScimBridgeKeyEvent *key_event);
188 
195  void scim_bridge_key_event_set_meta_down (ScimBridgeKeyEvent *key_event, boolean down);
196 
203  boolean scim_bridge_key_event_is_super_down (const ScimBridgeKeyEvent *key_event);
204 
211  void scim_bridge_key_event_set_super_down (ScimBridgeKeyEvent *key_event, boolean down);
212 
219  boolean scim_bridge_key_event_is_hyper_down (const ScimBridgeKeyEvent *key_event);
220 
227  void scim_bridge_key_event_set_hyper_down (ScimBridgeKeyEvent *key_event, boolean down);
228 
235  boolean scim_bridge_key_event_is_num_lock_down (const ScimBridgeKeyEvent *key_event);
236 
243  void scim_bridge_key_event_set_num_lock_down (ScimBridgeKeyEvent *key_event, boolean down);
244 
251  boolean scim_bridge_key_event_is_quirk_enabled (const ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk);
252 
260  void scim_bridge_key_event_set_quirk_enabled (ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk, boolean enabled);
261 
267  void scim_bridge_key_event_clear_all_quirks (ScimBridgeKeyEvent *key_event);
268 
269 #ifdef __cplusplus
270 }
271 #endif
272 #endif /*SCIM_BRIDGE_KEY_EVENT_H_*/