keystate: Use keycode

This commit is contained in:
Dorota Czaplejewicz
2019-08-03 12:43:39 +00:00
parent fb93e25833
commit 0b6935e50c
4 changed files with 21 additions and 24 deletions

View File

@ -38,7 +38,6 @@
enum { enum {
PROP_0, PROP_0,
PROP_KEYCODE,
PROP_OREF, PROP_OREF,
PROP_LAST PROP_LAST
}; };
@ -53,7 +52,6 @@ static guint signals[LAST_SIGNAL] = { 0, };
typedef struct _EekKeyPrivate typedef struct _EekKeyPrivate
{ {
guint keycode;
gulong oref; // UI outline reference gulong oref; // UI outline reference
struct squeek_key *state; struct squeek_key *state;
gboolean is_locked; gboolean is_locked;
@ -101,9 +99,6 @@ eek_key_set_property (GObject *object,
GParamSpec *pspec) GParamSpec *pspec)
{ {
switch (prop_id) { switch (prop_id) {
case PROP_KEYCODE:
eek_key_set_keycode (EEK_KEY(object), g_value_get_uint (value));
break;
case PROP_OREF: case PROP_OREF:
eek_key_set_oref (EEK_KEY(object), g_value_get_uint (value)); eek_key_set_oref (EEK_KEY(object), g_value_get_uint (value));
break; break;
@ -120,9 +115,6 @@ eek_key_get_property (GObject *object,
GParamSpec *pspec) GParamSpec *pspec)
{ {
switch (prop_id) { switch (prop_id) {
case PROP_KEYCODE:
g_value_set_uint (value, eek_key_get_keycode (EEK_KEY(object)));
break;
case PROP_OREF: case PROP_OREF:
g_value_set_uint (value, eek_key_get_oref (EEK_KEY(object))); g_value_set_uint (value, eek_key_get_oref (EEK_KEY(object)));
break; break;
@ -146,18 +138,6 @@ eek_key_class_init (EekKeyClass *klass)
klass->locked = eek_key_real_locked; klass->locked = eek_key_real_locked;
klass->unlocked = eek_key_real_unlocked; 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: * EekKey:oref:
* *
@ -233,7 +213,7 @@ eek_key_set_keycode (EekKey *key,
EekKeyPrivate *priv = eek_key_get_instance_private (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); EekKeyPrivate *priv = eek_key_get_instance_private (key);
return priv->keycode; return squeek_key_get_keycode(priv->state);
} }
/** /**

View File

@ -130,8 +130,8 @@ eek_section_real_create_key (EekSection *self,
EekKey *key = (EekKey*)g_object_new (EEK_TYPE_KEY, EekKey *key = (EekKey*)g_object_new (EEK_TYPE_KEY,
"name", name, "name", name,
"keycode", keycode,
NULL); NULL);
eek_key_set_keycode(key, keycode);
g_return_val_if_fail (key, NULL); g_return_val_if_fail (key, NULL);
EEK_CONTAINER_GET_CLASS(self)->add_child (EEK_CONTAINER(self), EEK_CONTAINER_GET_CLASS(self)->add_child (EEK_CONTAINER(self),

View File

@ -15,5 +15,8 @@ void squeek_key_add_symbol(struct squeek_key* key,
const char *tooltip); const char *tooltip);
uint32_t squeek_key_is_pressed(struct squeek_key *key); uint32_t squeek_key_is_pressed(struct squeek_key *key);
void squeek_key_set_pressed(struct squeek_key *key, uint32_t pressed); 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); struct squeek_symbol *squeek_key_get_symbol(struct squeek_key* key, uint32_t level);
#endif #endif

View File

@ -41,7 +41,7 @@ pub mod c {
#[no_mangle] #[no_mangle]
pub extern "C" pub extern "C"
fn squeek_key_is_pressed(key: *const KeyState) -> u32{ fn squeek_key_is_pressed(key: *const KeyState) -> u32 {
let key = unsafe { &*key }; let key = unsafe { &*key };
return key.pressed as u32; return key.pressed as u32;
} }
@ -53,6 +53,20 @@ pub mod c {
key.pressed = pressed != 0; 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, // TODO: this will receive data from the filesystem,
// so it should handle garbled strings in the future // so it should handle garbled strings in the future
#[no_mangle] #[no_mangle]