SCIMBridge 0.4.x

common/scim-bridge-key-event.h

Go to the documentation of this file.
00001 /*
00002  * SCIM Bridge
00003  *
00004  * Copyright (c) 2006 Ryo Dairiki <ryo-dairiki@users.sourceforge.net>
00005  *
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation and 
00010  * appearing in the file LICENSE.LGPL included in the package of this file.
00011  * You can also redistribute it and/or modify it under the terms of 
00012  * the GNU General Public License as published by the Free Software Foundation and 
00013  * appearing in the file LICENSE.GPL included in the package of this file.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00018  */
00019 
00025 #ifndef SCIM_BRIDGE_KEY_EVENT_H_
00026 #define SCIM_BRIDGE_KEY_EVENT_H_
00027 
00028 #include "scim-bridge.h"
00029 #include "scim-bridge-key-code.h"
00030 
00034 typedef unsigned int scim_bridge_key_quirk_t;
00035 
00039 #define SCIM_BRIDGE_KEY_NO_QUIRK (0)
00040 
00044 #define SCIM_BRIDGE_KEY_ALL_QUIRKS (0xF)
00045 
00049 #define SCIM_BRIDGE_KEY_QUIRK_KANA_RO (1 << 1)
00050 
00054 typedef struct _ScimBridgeKeyEvent ScimBridgeKeyEvent;
00055 
00056 #ifdef __cplusplus
00057 extern "C"
00058 {
00059 #endif
00060 
00066     ScimBridgeKeyEvent *scim_bridge_alloc_key_event ();
00067 
00074     void scim_bridge_free_key_event (ScimBridgeKeyEvent *key_event);
00075 
00082     scim_bridge_key_code_t scim_bridge_key_event_get_code (const ScimBridgeKeyEvent *key_event);
00083 
00090     void scim_bridge_key_event_set_code (ScimBridgeKeyEvent *key_event, scim_bridge_key_code_t key_code);
00091 
00098     boolean scim_bridge_key_event_is_pressed (const ScimBridgeKeyEvent *key_event);
00099 
00106     void scim_bridge_key_event_set_pressed (ScimBridgeKeyEvent *key_event, boolean pressed);
00107 
00108 
00114     void scim_bridge_key_event_clear_modifiers (ScimBridgeKeyEvent *key_event);
00115 
00116 
00123     boolean scim_bridge_key_event_is_shift_down (const ScimBridgeKeyEvent *key_event);
00124 
00131     void scim_bridge_key_event_set_shift_down (ScimBridgeKeyEvent *key_event, boolean down);
00132 
00139     boolean scim_bridge_key_event_is_caps_lock_down (const ScimBridgeKeyEvent *key_event);
00140 
00147     void scim_bridge_key_event_set_caps_lock_down (ScimBridgeKeyEvent *key_event, boolean down);
00148 
00155     boolean scim_bridge_key_event_is_control_down (const ScimBridgeKeyEvent *key_event);
00156 
00163     void scim_bridge_key_event_set_control_down (ScimBridgeKeyEvent *key_event, boolean down);
00164 
00171     boolean scim_bridge_key_event_is_alt_down (const ScimBridgeKeyEvent *key_event);
00172 
00179     void scim_bridge_key_event_set_alt_down (ScimBridgeKeyEvent *key_event, boolean down);
00180 
00187     boolean scim_bridge_key_event_is_meta_down (const ScimBridgeKeyEvent *key_event);
00188 
00195     void scim_bridge_key_event_set_meta_down (ScimBridgeKeyEvent *key_event, boolean down);
00196 
00203     boolean scim_bridge_key_event_is_super_down (const ScimBridgeKeyEvent *key_event);
00204 
00211     void scim_bridge_key_event_set_super_down (ScimBridgeKeyEvent *key_event, boolean down);
00212 
00219     boolean scim_bridge_key_event_is_hyper_down (const ScimBridgeKeyEvent *key_event);
00220 
00227     void scim_bridge_key_event_set_hyper_down (ScimBridgeKeyEvent *key_event, boolean down);
00228 
00235     boolean scim_bridge_key_event_is_num_lock_down (const ScimBridgeKeyEvent *key_event);
00236 
00243     void scim_bridge_key_event_set_num_lock_down (ScimBridgeKeyEvent *key_event, boolean down);
00244     
00251     boolean scim_bridge_key_event_is_quirk_enabled (const ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk);
00252 
00260     void scim_bridge_key_event_set_quirk_enabled (ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk, boolean enabled);
00261     
00267     void scim_bridge_key_event_clear_all_quirks (ScimBridgeKeyEvent *key_event);
00268     
00269 #ifdef __cplusplus
00270 }
00271 #endif
00272 #endif                                            /*SCIM_BRIDGE_KEY_EVENT_H_*/