diff --git a/src/keyboard.h b/src/keyboard.h index 8011f345..f806e262 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -6,21 +6,10 @@ struct squeek_key; -struct squeek_key *squeek_key_new(uint32_t keycode); -void squeek_key_free(struct squeek_key *key); -void squeek_key_add_symbol(struct squeek_key* key, - const char *element_name, - const char *text, uint32_t keyval, - const char *label, const char *icon, - 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_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); -void squeek_key_set_keycode(struct squeek_key *key, uint32_t keycode); uint32_t squeek_key_equal(struct squeek_key* key, struct squeek_key* key1); - -struct squeek_symbol *squeek_key_get_symbol(struct squeek_key* key); -const char* squeek_key_to_keymap_entry(const char *key_name, struct squeek_key *key); #endif diff --git a/src/keyboard.rs b/src/keyboard.rs index 89369ea0..13edf2f5 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -25,12 +25,6 @@ pub mod c { // The following defined in Rust. TODO: wrap naked pointers to Rust data inside RefCells to prevent multiple writers - #[no_mangle] - pub extern "C" - fn squeek_key_free(key: CKeyState) { - unsafe { key.unwrap() }; // reference dropped - } - /// Compares pointers to the data #[no_mangle] pub extern "C" @@ -72,68 +66,6 @@ pub mod c { fn squeek_key_get_keycode(key: CKeyState) -> u32 { return key.to_owned().keycode.unwrap_or(0u32); } - - #[no_mangle] - pub extern "C" - fn squeek_key_to_keymap_entry( - key_name: *const c_char, - key: CKeyState, - ) -> *const c_char { - let key_name = as_cstr(&key_name) - .expect("Missing key name") - .to_str() - .expect("Bad key name"); - - let symbol_name = match key.to_owned().symbol.action { - Action::Submit { text: Some(text), .. } => { - Some( - text.clone() - .into_string().expect("Bad symbol") - ) - }, - _ => None, - }; - - let inner = match symbol_name { - Some(name) => format!("[ {} ]", name), - _ => format!("[ ]"), - }; - - CString::new(format!(" key <{}> {{ {} }};\n", key_name, inner)) - .expect("Couldn't convert string") - .into_raw() - } - - #[no_mangle] - pub extern "C" - fn squeek_key_get_action_name( - key_name: *const c_char, - key: CKeyState, - ) -> *const c_char { - let key_name = as_cstr(&key_name) - .expect("Missing key name") - .to_str() - .expect("Bad key name"); - - let symbol_name = match key.to_owned().symbol.action { - Action::Submit { text: Some(text), .. } => { - Some( - text.clone() - .into_string().expect("Bad symbol text") - ) - }, - _ => None - }; - - let inner = match symbol_name { - Some(name) => format!("[ {} ]", name), - _ => format!("[ ]"), - }; - - CString::new(format!(" key <{}> {{ {} }};\n", key_name, inner)) - .expect("Couldn't convert string") - .into_raw() - } } #[derive(Debug, Clone)] diff --git a/src/layout.rs b/src/layout.rs index 14abb511..44192890 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -144,18 +144,7 @@ pub mod c { let button = unsafe { &*button }; ::keyboard::c::CKeyState::wrap(button.state.clone()) } - - /// Really should just return the label - #[no_mangle] - pub extern "C" - fn squeek_button_get_symbol( - button: *const ::layout::Button, - ) -> *const Symbol { - let button = unsafe { &*button }; - let state = button.state.borrow(); - &state.symbol as *const Symbol - } - + #[no_mangle] pub extern "C" fn squeek_button_get_label(