diff --git a/Cargo.lock b/Cargo.lock index df42631..a8dd30a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "accesskit" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b7f7f85a7e5f68090000ed7622545829afd484d210358702ae4cb97dd0c320" +checksum = "438a7081a65b95c668db56591a4fef9bc5dad275f448bd6223fc6949d823db38" dependencies = [ "uuid", ] @@ -25,9 +25,9 @@ dependencies = [ [[package]] name = "accesskit_android" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e27dedd5e1932e1f52fedcde681bc2ae4213df53bad5b295103aa36b1d0ffb6" +checksum = "929aff36b0d3dd22ddb59191989d5293ed958294d7728bd6c2ec9778f73414aa" dependencies = [ "accesskit", "accesskit_consumer", @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "accesskit_atspi_common" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023da0e5097f46df7092d5280b02efb9bbf8d93298daeced42652463e357d636" +checksum = "c9d47ad644916f6cb7e432a5ca0dbd7cc78281a9772881057bb72d4aadb93257" dependencies = [ "accesskit", "accesskit_consumer", @@ -51,9 +51,9 @@ dependencies = [ [[package]] name = "accesskit_consumer" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" +checksum = "cc882fa0c9c24c53649e256311b51046cf36eca9a8f7e54ff4ef682160b0cb27" dependencies = [ "accesskit", "hashbrown", @@ -61,9 +61,9 @@ dependencies = [ [[package]] name = "accesskit_ios" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "750c4e9f6ce888dfe8a10c0f1b5ceb646a7854fd46579d74919219d1bb314083" +checksum = "d5e9b29c6ba5f4d2e0662e9c562484f061ffc58f658479c538ecca8299ada1e9" dependencies = [ "accesskit", "accesskit_consumer", @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "accesskit_macos" -version = "0.26.3" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" +checksum = "a3f278988416e5fb600f24d0cfffe31a249ebbff980fb9c5a3b5fbed2c579f73" dependencies = [ "accesskit", "accesskit_consumer", @@ -89,9 +89,9 @@ dependencies = [ [[package]] name = "accesskit_unix" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e156ed3802e35eefe894ef2671bc6c889303d8a7e110b5e1b48f504b91362f" +checksum = "665c9079b7325a8168a6793437a172dda44b19a05af8ed52d7e32abaada996fe" dependencies = [ "accesskit", "accesskit_atspi_common", @@ -107,9 +107,9 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106c2b961215864d1c2e703ee63269c25c4e80a577ffb2c1017b9c17dcdf83a1" +checksum = "a59e8d7160cbac991c1345c99153783ab96423644ccb1f20617cf80c97596aa1" dependencies = [ "accesskit", "accesskit_consumer", @@ -525,9 +525,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "foldhash", ] @@ -546,9 +546,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "indexmap" -version = "2.11.4" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown", @@ -848,9 +848,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "phf" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +checksum = "010378780309880b08997fae13be7834dba947d36393bd372f2b1556deb2a2f6" dependencies = [ "phf_macros", "phf_shared", @@ -859,9 +859,9 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" dependencies = [ "fastrand", "phf_shared", @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +checksum = "5fa8d0ca26d424d27630da600c6624696e7dec8bf7b3b492b383c5dc49e5e085" dependencies = [ "phf_generator", "phf_shared", @@ -882,9 +882,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" dependencies = [ "siphasher", ] diff --git a/Cargo.toml b/Cargo.toml index 6011e74..29d23b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,22 +17,22 @@ cbindgen = [] android-embedded-dex = ["accesskit_android/embedded-dex"] [dependencies] -accesskit = "0.24.0" +accesskit = "0.25.0" [target.'cfg(target_os = "windows")'.dependencies] -accesskit_windows = "0.34.0" +accesskit_windows = "0.35.0" [target.'cfg(target_os = "macos")'.dependencies] -accesskit_macos = "0.26.1" +accesskit_macos = "0.27.0" [target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd"))'.dependencies] -accesskit_unix = "0.22.0" +accesskit_unix = "0.23.0" [target.'cfg(target_os = "android")'.dependencies] -accesskit_android = "0.7.3" +accesskit_android = "0.8.0" [target.'cfg(any(target_os = "ios", target_os = "tvos", target_os = "visionos", target_os = "watchos"))'.dependencies] -accesskit_ios = "0.1.0" +accesskit_ios = "0.2.0" [profile.release] lto = true diff --git a/examples/sdl/hello_world.c b/examples/sdl/hello_world.c index a841bfe..bc00cb8 100644 --- a/examples/sdl/hello_world.c +++ b/examples/sdl/hello_world.c @@ -250,8 +250,8 @@ accesskit_tree_update *window_state_build_initial_tree( accesskit_node *button_2 = build_button(BUTTON_2_ID, "Button 2"); accesskit_tree_update *result = accesskit_tree_update_with_capacity_and_focus( (state->announcement != NULL) ? 4 : 3, state->focus); - accesskit_tree *tree = accesskit_tree_new(WINDOW_ID); - accesskit_tree_update_set_tree(result, tree); + accesskit_tree_info *tree = accesskit_tree_info_new(WINDOW_ID); + accesskit_tree_update_set_tree_info(result, tree); accesskit_tree_update_push_node(result, WINDOW_ID, root); accesskit_tree_update_push_node(result, BUTTON_1_ID, button_1); accesskit_tree_update_push_node(result, BUTTON_2_ID, button_2); diff --git a/examples/windows/hello_world.c b/examples/windows/hello_world.c index 951e595..a74ac0a 100644 --- a/examples/windows/hello_world.c +++ b/examples/windows/hello_world.c @@ -71,8 +71,8 @@ accesskit_tree_update *build_initial_tree(void *userdata) { accesskit_node *button_2 = build_button(BUTTON_2_ID, "Button 2"); accesskit_tree_update *result = accesskit_tree_update_with_capacity_and_focus( (state->announcement != NULL) ? 4 : 3, state->focus); - accesskit_tree *tree = accesskit_tree_new(WINDOW_ID); - accesskit_tree_update_set_tree(result, tree); + accesskit_tree_info *tree = accesskit_tree_info_new(WINDOW_ID); + accesskit_tree_update_set_tree_info(result, tree); accesskit_tree_update_push_node(result, WINDOW_ID, root); accesskit_tree_update_push_node(result, BUTTON_1_ID, button_1); accesskit_tree_update_push_node(result, BUTTON_2_ID, button_2); diff --git a/include/accesskit.h b/include/accesskit.h index fb0af1d..7091ba4 100644 --- a/include/accesskit.h +++ b/include/accesskit.h @@ -661,7 +661,7 @@ typedef struct accesskit_macos_subclassing_adapter typedef struct accesskit_node accesskit_node; -typedef struct accesskit_tree accesskit_tree; +typedef struct accesskit_tree_info accesskit_tree_info; typedef struct accesskit_tree_update accesskit_tree_update; @@ -1606,6 +1606,24 @@ void accesskit_node_set_font_family_with_length(struct accesskit_node *node, void accesskit_node_clear_font_family(struct accesskit_node *node); +/** + * Caller must call `accesskit_string_free` with the return value. + */ +char *accesskit_node_html_id(const struct accesskit_node *node); + +/** + * Caller is responsible for freeing the memory pointed by `value`. + */ +void accesskit_node_set_html_id(struct accesskit_node *node, const char *value); + +/** + * Caller is responsible for freeing the memory pointed by `value`. + */ +void accesskit_node_set_html_id_with_length(struct accesskit_node *node, + const char *value, size_t length); + +void accesskit_node_clear_html_id(struct accesskit_node *node); + /** * Caller must call `accesskit_string_free` with the return value. */ @@ -2303,54 +2321,56 @@ void accesskit_node_free(struct accesskit_node *node); */ char *accesskit_node_debug(const struct accesskit_node *node); -struct accesskit_tree *accesskit_tree_new(accesskit_node_id root); +struct accesskit_tree_info *accesskit_tree_info_new(accesskit_node_id root); -void accesskit_tree_free(struct accesskit_tree *tree); +void accesskit_tree_info_free(struct accesskit_tree_info *tree); /** * Caller must call `accesskit_string_free` with the return value. */ -char *accesskit_tree_get_toolkit_name(const struct accesskit_tree *tree); +char *accesskit_tree_info_get_toolkit_name( + const struct accesskit_tree_info *tree); /** * Caller is responsible for freeing the memory pointed by `toolkit_name` */ -void accesskit_tree_set_toolkit_name(struct accesskit_tree *tree, - const char *toolkit_name); +void accesskit_tree_info_set_toolkit_name(struct accesskit_tree_info *tree, + const char *toolkit_name); /** * Caller is responsible for freeing the memory pointed by `toolkit_name` */ -void accesskit_tree_set_toolkit_name_with_length(struct accesskit_tree *tree, - const char *toolkit_name, - size_t length); +void accesskit_tree_info_set_toolkit_name_with_length( + struct accesskit_tree_info *tree, const char *toolkit_name, size_t length); -void accesskit_tree_clear_toolkit_name(struct accesskit_tree *tree); +void accesskit_tree_info_clear_toolkit_name(struct accesskit_tree_info *tree); /** * Caller must call `accesskit_string_free` with the return value. */ -char *accesskit_tree_get_toolkit_version(const struct accesskit_tree *tree); +char *accesskit_tree_info_get_toolkit_version( + const struct accesskit_tree_info *tree); /** * Caller is responsible for freeing the memory pointed by `toolkit_version` */ -void accesskit_tree_set_toolkit_version(struct accesskit_tree *tree, - const char *toolkit_version); +void accesskit_tree_info_set_toolkit_version(struct accesskit_tree_info *tree, + const char *toolkit_version); /** * Caller is responsible for freeing the memory pointed by `toolkit_version` */ -void accesskit_tree_set_toolkit_version_with_length(struct accesskit_tree *tree, - const char *toolkit_version, - size_t length); +void accesskit_tree_info_set_toolkit_version_with_length( + struct accesskit_tree_info *tree, const char *toolkit_version, + size_t length); -void accesskit_tree_clear_toolkit_version(struct accesskit_tree *tree); +void accesskit_tree_info_clear_toolkit_version( + struct accesskit_tree_info *tree); /** * Caller must call `accesskit_string_free` with the return value. */ -char *accesskit_tree_debug(const struct accesskit_tree *tree); +char *accesskit_tree_info_debug(const struct accesskit_tree_info *tree); struct accesskit_tree_update *accesskit_tree_update_with_focus( accesskit_node_id focus); @@ -2368,10 +2388,11 @@ void accesskit_tree_update_push_node(struct accesskit_tree_update *update, accesskit_node_id id, struct accesskit_node *node); -void accesskit_tree_update_set_tree(struct accesskit_tree_update *update, - struct accesskit_tree *tree); +void accesskit_tree_update_set_tree_info(struct accesskit_tree_update *update, + struct accesskit_tree_info *tree); -void accesskit_tree_update_clear_tree(struct accesskit_tree_update *update); +void accesskit_tree_update_clear_tree_info( + struct accesskit_tree_update *update); void accesskit_tree_update_set_focus(struct accesskit_tree_update *update, accesskit_node_id focus); diff --git a/src/common.rs b/src/common.rs index 1a944b8..9bab8ba 100644 --- a/src/common.rs +++ b/src/common.rs @@ -521,6 +521,7 @@ string_property_methods! { (accesskit_node_author_id, author_id, accesskit_node_set_author_id, accesskit_node_set_author_id_with_length, set_author_id, accesskit_node_clear_author_id, clear_author_id), (accesskit_node_class_name, class_name, accesskit_node_set_class_name, accesskit_node_set_class_name_with_length, set_class_name, accesskit_node_clear_class_name, clear_class_name), (accesskit_node_font_family, font_family, accesskit_node_set_font_family, accesskit_node_set_font_family_with_length, set_font_family, accesskit_node_clear_font_family, clear_font_family), + (accesskit_node_html_id, html_id, accesskit_node_set_html_id, accesskit_node_set_html_id_with_length, set_html_id, accesskit_node_clear_html_id, clear_html_id), (accesskit_node_html_tag, html_tag, accesskit_node_set_html_tag, accesskit_node_set_html_tag_with_length, set_html_tag, accesskit_node_clear_html_tag, clear_html_tag), (accesskit_node_inner_html, inner_html, accesskit_node_set_inner_html, accesskit_node_set_inner_html_with_length, set_inner_html, accesskit_node_clear_inner_html, clear_inner_html), (accesskit_node_keyboard_shortcut, keyboard_shortcut, accesskit_node_set_keyboard_shortcut, accesskit_node_set_keyboard_shortcut_with_length, set_keyboard_shortcut, accesskit_node_clear_keyboard_shortcut, clear_keyboard_shortcut), @@ -700,7 +701,7 @@ impl custom_action { pub extern "C" fn accesskit_custom_action_new(id: i32) -> *mut custom_action { let action = CustomAction { id, - description: String::new().into(), + description: String::new(), }; BoxCastPtr::to_mut_ptr(action) } @@ -751,7 +752,7 @@ impl custom_action { length: usize, ) { let action = mut_from_ptr(action); - action.description = unsafe { string_from_c_slice(description, length) }.into(); + action.description = unsafe { string_from_c_slice(description, length) }; } } @@ -859,31 +860,31 @@ impl node { } } -pub struct tree { +pub struct tree_info { _private: [u8; 0], } -impl CastPtr for tree { - type RustType = Tree; +impl CastPtr for tree_info { + type RustType = TreeInfo; } -impl BoxCastPtr for tree {} +impl BoxCastPtr for tree_info {} -impl tree { +impl tree_info { #[no_mangle] - pub extern "C" fn accesskit_tree_new(root: node_id) -> *mut tree { - let tree = Tree::new(root.into()); + pub extern "C" fn accesskit_tree_info_new(root: node_id) -> *mut tree_info { + let tree = TreeInfo::new(root.into()); BoxCastPtr::to_mut_ptr(tree) } #[no_mangle] - pub extern "C" fn accesskit_tree_free(tree: *mut tree) { + pub extern "C" fn accesskit_tree_info_free(tree: *mut tree_info) { drop(box_from_ptr(tree)); } /// Caller must call `accesskit_string_free` with the return value. #[no_mangle] - pub extern "C" fn accesskit_tree_get_toolkit_name(tree: *const tree) -> *mut c_char { + pub extern "C" fn accesskit_tree_info_get_toolkit_name(tree: *const tree_info) -> *mut c_char { let tree = ref_from_ptr(tree); match tree.toolkit_name.as_ref() { Some(value) => CString::new(value.clone()).unwrap().into_raw(), @@ -893,8 +894,8 @@ impl tree { /// Caller is responsible for freeing the memory pointed by `toolkit_name` #[no_mangle] - pub extern "C" fn accesskit_tree_set_toolkit_name( - tree: *mut tree, + pub extern "C" fn accesskit_tree_info_set_toolkit_name( + tree: *mut tree_info, toolkit_name: *const c_char, ) { let tree = mut_from_ptr(tree); @@ -905,8 +906,8 @@ impl tree { /// Caller is responsible for freeing the memory pointed by `toolkit_name` #[no_mangle] - pub extern "C" fn accesskit_tree_set_toolkit_name_with_length( - tree: *mut tree, + pub extern "C" fn accesskit_tree_info_set_toolkit_name_with_length( + tree: *mut tree_info, toolkit_name: *const c_char, length: usize, ) { @@ -915,14 +916,16 @@ impl tree { } #[no_mangle] - pub extern "C" fn accesskit_tree_clear_toolkit_name(tree: *mut tree) { + pub extern "C" fn accesskit_tree_info_clear_toolkit_name(tree: *mut tree_info) { let tree = mut_from_ptr(tree); tree.toolkit_name = None; } /// Caller must call `accesskit_string_free` with the return value. #[no_mangle] - pub extern "C" fn accesskit_tree_get_toolkit_version(tree: *const tree) -> *mut c_char { + pub extern "C" fn accesskit_tree_info_get_toolkit_version( + tree: *const tree_info, + ) -> *mut c_char { let tree = ref_from_ptr(tree); match tree.toolkit_version.as_ref() { Some(value) => CString::new(value.clone()).unwrap().into_raw(), @@ -932,8 +935,8 @@ impl tree { /// Caller is responsible for freeing the memory pointed by `toolkit_version` #[no_mangle] - pub extern "C" fn accesskit_tree_set_toolkit_version( - tree: *mut tree, + pub extern "C" fn accesskit_tree_info_set_toolkit_version( + tree: *mut tree_info, toolkit_version: *const c_char, ) { let tree = mut_from_ptr(tree); @@ -944,8 +947,8 @@ impl tree { /// Caller is responsible for freeing the memory pointed by `toolkit_version` #[no_mangle] - pub extern "C" fn accesskit_tree_set_toolkit_version_with_length( - tree: *mut tree, + pub extern "C" fn accesskit_tree_info_set_toolkit_version_with_length( + tree: *mut tree_info, toolkit_version: *const c_char, length: usize, ) { @@ -954,14 +957,14 @@ impl tree { } #[no_mangle] - pub extern "C" fn accesskit_tree_clear_toolkit_version(tree: *mut tree) { + pub extern "C" fn accesskit_tree_info_clear_toolkit_version(tree: *mut tree_info) { let tree = mut_from_ptr(tree); tree.toolkit_version = None; } /// Caller must call `accesskit_string_free` with the return value. #[no_mangle] - pub extern "C" fn accesskit_tree_debug(tree: *const tree) -> *mut c_char { + pub extern "C" fn accesskit_tree_info_debug(tree: *const tree_info) -> *mut c_char { debug_repr_from_ptr(tree) } } @@ -1021,13 +1024,16 @@ impl tree_update { } #[no_mangle] - pub extern "C" fn accesskit_tree_update_set_tree(update: *mut tree_update, tree: *mut tree) { + pub extern "C" fn accesskit_tree_update_set_tree_info( + update: *mut tree_update, + tree: *mut tree_info, + ) { let update = mut_from_ptr(update); update.tree = Some(*box_from_ptr(tree)); } #[no_mangle] - pub extern "C" fn accesskit_tree_update_clear_tree(update: *mut tree_update) { + pub extern "C" fn accesskit_tree_update_clear_tree_info(update: *mut tree_update) { let update = mut_from_ptr(update); update.tree = None; }