locking: Move to squeek_key
This commit is contained in:
		@ -46,7 +46,6 @@ typedef struct _EekKeyPrivate
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    gulong oref; // UI outline reference
 | 
					    gulong oref; // UI outline reference
 | 
				
			||||||
    struct squeek_key *state;
 | 
					    struct squeek_key *state;
 | 
				
			||||||
    gboolean is_locked;
 | 
					 | 
				
			||||||
} EekKeyPrivate;
 | 
					} EekKeyPrivate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_DEFINE_TYPE_WITH_PRIVATE (EekKey, eek_key, EEK_TYPE_ELEMENT)
 | 
					G_DEFINE_TYPE_WITH_PRIVATE (EekKey, eek_key, EEK_TYPE_ELEMENT)
 | 
				
			||||||
@ -55,7 +54,7 @@ void
 | 
				
			|||||||
eek_key_set_locked (EekKey *self, gboolean value)
 | 
					eek_key_set_locked (EekKey *self, gboolean value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    EekKeyPrivate *priv = eek_key_get_instance_private (self);
 | 
					    EekKeyPrivate *priv = eek_key_get_instance_private (self);
 | 
				
			||||||
    priv->is_locked = value;
 | 
					    squeek_key_set_pressed(priv->state, value);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -261,7 +260,7 @@ eek_key_is_locked (EekKey *key)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    EekKeyPrivate *priv = eek_key_get_instance_private (key);
 | 
					    EekKeyPrivate *priv = eek_key_get_instance_private (key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return priv->is_locked;
 | 
					    return (bool)squeek_key_is_locked(priv->state);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void eek_key_set_pressed(EekKey *key, gboolean value)
 | 
					void eek_key_set_pressed(EekKey *key, gboolean value)
 | 
				
			||||||
 | 
				
			|||||||
@ -59,8 +59,6 @@ enum {
 | 
				
			|||||||
    VIEW_SYMBOLS
 | 
					    VIEW_SYMBOLS
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static guint signals[LAST_SIGNAL] = { 0, };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define EEK_KEYBOARD_GET_PRIVATE(obj)                                  \
 | 
					#define EEK_KEYBOARD_GET_PRIVATE(obj)                                  \
 | 
				
			||||||
    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEK_TYPE_KEYBOARD, EekKeyboardPrivate))
 | 
					    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEK_TYPE_KEYBOARD, EekKeyboardPrivate))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -15,6 +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_is_locked(struct squeek_key *key);
 | 
				
			||||||
 | 
					void squeek_key_set_locked(struct squeek_key *key, uint32_t pressed);
 | 
				
			||||||
uint32_t squeek_key_get_keycode(struct squeek_key *key);
 | 
					uint32_t squeek_key_get_keycode(struct squeek_key *key);
 | 
				
			||||||
void squeek_key_set_keycode(struct squeek_key *key, uint32_t keycode);
 | 
					void squeek_key_set_keycode(struct squeek_key *key, uint32_t keycode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ pub mod c {
 | 
				
			|||||||
        Box::into_raw(Box::new(
 | 
					        Box::into_raw(Box::new(
 | 
				
			||||||
            KeyState {
 | 
					            KeyState {
 | 
				
			||||||
                pressed: false,
 | 
					                pressed: false,
 | 
				
			||||||
 | 
					                locked: false,
 | 
				
			||||||
                keycode: keycode,
 | 
					                keycode: keycode,
 | 
				
			||||||
                symbols: Vec::new(),
 | 
					                symbols: Vec::new(),
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -53,6 +54,20 @@ pub mod c {
 | 
				
			|||||||
        key.pressed = pressed != 0;
 | 
					        key.pressed = pressed != 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    #[no_mangle]
 | 
				
			||||||
 | 
					    pub extern "C"
 | 
				
			||||||
 | 
					    fn squeek_key_is_locked(key: *const KeyState) -> u32 {
 | 
				
			||||||
 | 
					        let key = unsafe { &*key };
 | 
				
			||||||
 | 
					        return key.locked as u32;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    #[no_mangle]
 | 
				
			||||||
 | 
					    pub extern "C"
 | 
				
			||||||
 | 
					    fn squeek_key_set_locked(key: *mut KeyState, locked: u32) {
 | 
				
			||||||
 | 
					        let key = unsafe { &mut *key };
 | 
				
			||||||
 | 
					        key.locked = locked != 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    #[no_mangle]
 | 
					    #[no_mangle]
 | 
				
			||||||
    pub extern "C"
 | 
					    pub extern "C"
 | 
				
			||||||
    fn squeek_key_get_keycode(key: *const KeyState) -> u32 {
 | 
					    fn squeek_key_get_keycode(key: *const KeyState) -> u32 {
 | 
				
			||||||
@ -232,6 +247,7 @@ pub mod c {
 | 
				
			|||||||
#[derive(Debug)]
 | 
					#[derive(Debug)]
 | 
				
			||||||
pub struct KeyState {
 | 
					pub struct KeyState {
 | 
				
			||||||
    pressed: bool,
 | 
					    pressed: bool,
 | 
				
			||||||
 | 
					    locked: bool,
 | 
				
			||||||
    keycode: u32,
 | 
					    keycode: u32,
 | 
				
			||||||
    symbols: Vec<symbol::Symbol>,
 | 
					    symbols: Vec<symbol::Symbol>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user