keystate: Use keycode
This commit is contained in:
		@ -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);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
				
			|||||||
@ -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),
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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]
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user