keystate: Use keycode
This commit is contained in:
@ -38,7 +38,6 @@
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_KEYCODE,
|
||||
PROP_OREF,
|
||||
PROP_LAST
|
||||
};
|
||||
@ -53,7 +52,6 @@ static guint signals[LAST_SIGNAL] = { 0, };
|
||||
|
||||
typedef struct _EekKeyPrivate
|
||||
{
|
||||
guint keycode;
|
||||
gulong oref; // UI outline reference
|
||||
struct squeek_key *state;
|
||||
gboolean is_locked;
|
||||
@ -101,9 +99,6 @@ eek_key_set_property (GObject *object,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (prop_id) {
|
||||
case PROP_KEYCODE:
|
||||
eek_key_set_keycode (EEK_KEY(object), g_value_get_uint (value));
|
||||
break;
|
||||
case PROP_OREF:
|
||||
eek_key_set_oref (EEK_KEY(object), g_value_get_uint (value));
|
||||
break;
|
||||
@ -120,9 +115,6 @@ eek_key_get_property (GObject *object,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (prop_id) {
|
||||
case PROP_KEYCODE:
|
||||
g_value_set_uint (value, eek_key_get_keycode (EEK_KEY(object)));
|
||||
break;
|
||||
case PROP_OREF:
|
||||
g_value_set_uint (value, eek_key_get_oref (EEK_KEY(object)));
|
||||
break;
|
||||
@ -146,18 +138,6 @@ eek_key_class_init (EekKeyClass *klass)
|
||||
klass->locked = eek_key_real_locked;
|
||||
klass->unlocked = eek_key_real_unlocked;
|
||||
|
||||
/**
|
||||
* 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_class_install_property (gobject_class, PROP_KEYCODE, pspec);
|
||||
|
||||
/**
|
||||
* EekKey:oref:
|
||||
*
|
||||
@ -233,7 +213,7 @@ eek_key_set_keycode (EekKey *key,
|
||||
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
|
||||
priv->keycode = keycode;
|
||||
squeek_key_set_keycode(priv->state, keycode);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -250,7 +230,7 @@ eek_key_get_keycode (EekKey *key)
|
||||
|
||||
EekKeyPrivate *priv = eek_key_get_instance_private (key);
|
||||
|
||||
return priv->keycode;
|
||||
return squeek_key_get_keycode(priv->state);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -130,8 +130,8 @@ eek_section_real_create_key (EekSection *self,
|
||||
|
||||
EekKey *key = (EekKey*)g_object_new (EEK_TYPE_KEY,
|
||||
"name", name,
|
||||
"keycode", keycode,
|
||||
NULL);
|
||||
eek_key_set_keycode(key, keycode);
|
||||
g_return_val_if_fail (key, NULL);
|
||||
|
||||
EEK_CONTAINER_GET_CLASS(self)->add_child (EEK_CONTAINER(self),
|
||||
|
||||
@ -15,5 +15,8 @@ void squeek_key_add_symbol(struct squeek_key* key,
|
||||
const char *tooltip);
|
||||
uint32_t squeek_key_is_pressed(struct squeek_key *key);
|
||||
void squeek_key_set_pressed(struct squeek_key *key, uint32_t pressed);
|
||||
uint32_t squeek_key_get_keycode(struct squeek_key *key);
|
||||
void squeek_key_set_keycode(struct squeek_key *key, uint32_t keycode);
|
||||
|
||||
struct squeek_symbol *squeek_key_get_symbol(struct squeek_key* key, uint32_t level);
|
||||
#endif
|
||||
|
||||
@ -53,6 +53,20 @@ pub mod c {
|
||||
key.pressed = pressed != 0;
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C"
|
||||
fn squeek_key_get_keycode(key: *const KeyState) -> u32 {
|
||||
let key = unsafe { &*key };
|
||||
return key.keycode as u32;
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C"
|
||||
fn squeek_key_set_keycode(key: *mut KeyState, code: u32) {
|
||||
let key = unsafe { &mut *key };
|
||||
key.keycode = code;
|
||||
}
|
||||
|
||||
// TODO: this will receive data from the filesystem,
|
||||
// so it should handle garbled strings in the future
|
||||
#[no_mangle]
|
||||
|
||||
Reference in New Issue
Block a user