ferroui_base/input/
input_method.rs1use super::text_input::TextInputMethodClientRequeryRequestedEventArgs;
2use super::InputElement;
3use crate::interactivity::{Interactive, RoutedEvent, RoutedEventArgs, RoutedEventHandlerToken, RoutingStrategies};
4use crate::{ferro_property, ferro_routed_event, AttachedProperty, FerroProperty};
5
6pub struct InputMethod;
9
10crate::ferro_static_type!(InputMethod);
11
12crate::ferro_properties! { impl InputMethod {
13 ferro_property!(
14 pub fn is_input_method_enabled_property() -> AttachedProperty<bool> {
16 FerroProperty::register_attached::<InputMethod, InputElement, _>("IsInputMethodEnabled", true)
17 }
18 );
19} }
20
21impl InputMethod {
22 pub fn set_is_input_method_enabled(target: &InputElement, value: bool) {
24 target.set_value(Self::is_input_method_enabled_property(), value)
25 }
26
27 pub fn get_is_input_method_enabled(target: &InputElement) -> bool {
29 target.get_value(Self::is_input_method_enabled_property())
30 }
31
32 ferro_routed_event!(
33 pub fn text_input_method_client_requery_requested_event(
37 ) -> RoutedEvent<TextInputMethodClientRequeryRequestedEventArgs> {
38 RoutedEvent::register::<InputElement, _>(
39 "TextInputMethodClientRequeryRequested",
40 RoutingStrategies::BUBBLE,
41 )
42 }
43 );
44
45 pub fn add_text_input_method_client_requery_requested_handler(
48 element: &Interactive,
49 handler: impl Fn(&Interactive, &RoutedEventArgs) + 'static,
50 ) -> RoutedEventHandlerToken {
51 element.add_handler_as::<RoutedEventArgs, _>(
52 Self::text_input_method_client_requery_requested_event(),
53 handler,
54 RoutingStrategies::DIRECT | RoutingStrategies::BUBBLE,
55 false,
56 )
57 }
58
59 pub fn remove_text_input_method_client_requery_requested_handler(
62 element: &Interactive,
63 handler: RoutedEventHandlerToken,
64 ) {
65 element.remove_handler(Self::text_input_method_client_requery_requested_event(), handler);
66 }
67}