Add "keycode" property to EekKey.

Add eek_key_get_keysyms().
This commit is contained in:
Daiki Ueno
2010-06-08 09:27:41 +09:00
parent ece1c559a2
commit bb7462e786
14 changed files with 182 additions and 2 deletions

View File

@ -54,6 +54,18 @@ eek_key_base_init (gpointer g_iface)
G_PARAM_READWRITE);
g_object_interface_install_property (g_iface, pspec);
/**
* EekKey:keycode:
*
* The keycode of #EekKey.
*/
pspec = g_param_spec_uint ("keycode",
"Keycode",
"Keycode of the key",
0, G_MAXUINT, 0,
G_PARAM_READWRITE);
g_object_interface_install_property (g_iface, pspec);
/**
* EekKey:keysyms:
*
@ -164,6 +176,22 @@ eek_key_get_type (void)
return iface_type;
}
/**
* eek_key_get_keycode:
* @key: an #EekKey
*
* Get the keycode of @key.
*/
guint
eek_key_get_keycode (EekKey *key)
{
EekKeyIface *iface = EEK_KEY_GET_IFACE(key);
g_return_val_if_fail (iface, EEK_INVALID_KEYCODE);
g_return_val_if_fail (iface->get_keycode, EEK_INVALID_KEYCODE);
return (*iface->get_keycode) (key);
}
/**
* eek_key_set_keysyms:
* @key: an #EekKey
@ -188,6 +216,32 @@ eek_key_set_keysyms (EekKey *key,
(*iface->set_keysyms) (key, keysyms, num_groups, num_levels);
}
/**
* eek_key_get_keysyms:
* @key: an #EekKey
* @keysyms: pointer where symbol matrix of @key will be stored
* @num_groups: pointer where the number of groups (rows) of @keysyms
* will be stored
* @num_levels: pointer where the number of levels (columns) of
* @keysyms will be stored
*
* Get the symbol matrix of @key to @keysyms. @keysyms is an array of
* symbols (unsigned int) and the length must match with @num_groups *
* @num_levels.
*/
void
eek_key_get_keysyms (EekKey *key,
guint **keysyms,
gint *num_groups,
gint *num_levels)
{
EekKeyIface *iface = EEK_KEY_GET_IFACE(key);
g_return_if_fail (iface);
g_return_if_fail (iface->get_keysyms);
(*iface->get_keysyms) (key, keysyms, num_groups, num_levels);
}
/**
* eek_key_get_groups:
* @key: an #EekKey