use super::text_input::TextInputMethodClientRequeryRequestedEventArgs;
use super::InputElement;
use crate::interactivity::{Interactive, RoutedEvent, RoutedEventArgs, RoutedEventHandlerToken, RoutingStrategies};
use crate::{ferro_property, ferro_routed_event, AttachedProperty, FerroProperty};
pub struct InputMethod;
crate::ferro_static_type!(InputMethod);
crate::ferro_properties! { impl InputMethod {
ferro_property!(
pub fn is_input_method_enabled_property() -> AttachedProperty<bool> {
FerroProperty::register_attached::<InputMethod, InputElement, _>("IsInputMethodEnabled", true)
}
);
} }
impl InputMethod {
pub fn set_is_input_method_enabled(target: &InputElement, value: bool) {
target.set_value(Self::is_input_method_enabled_property(), value)
}
pub fn get_is_input_method_enabled(target: &InputElement) -> bool {
target.get_value(Self::is_input_method_enabled_property())
}
ferro_routed_event!(
pub fn text_input_method_client_requery_requested_event(
) -> RoutedEvent<TextInputMethodClientRequeryRequestedEventArgs> {
RoutedEvent::register::<InputElement, _>(
"TextInputMethodClientRequeryRequested",
RoutingStrategies::BUBBLE,
)
}
);
pub fn add_text_input_method_client_requery_requested_handler(
element: &Interactive,
handler: impl Fn(&Interactive, &RoutedEventArgs) + 'static,
) -> RoutedEventHandlerToken {
element.add_handler_as::<RoutedEventArgs, _>(
Self::text_input_method_client_requery_requested_event(),
handler,
RoutingStrategies::DIRECT | RoutingStrategies::BUBBLE,
false,
)
}
pub fn remove_text_input_method_client_requery_requested_handler(
element: &Interactive,
handler: RoutedEventHandlerToken,
) {
element.remove_handler(Self::text_input_method_client_requery_requested_event(), handler);
}
}