summaryrefslogtreecommitdiffstats
path: root/widget/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-18 20:30:14 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-18 20:30:14 +0200
commit1448c5bfa5d0977e54670bb8c640ba186bb13167 (patch)
tree50c1cb5fac6bee8738fe69e59ed355150b701cf1 /widget/src
parentf89744283167a1961fcff512ad48b0eb9b8fcaef (diff)
downloadiced-1448c5bfa5d0977e54670bb8c640ba186bb13167.tar.gz
iced-1448c5bfa5d0977e54670bb8c640ba186bb13167.tar.bz2
iced-1448c5bfa5d0977e54670bb8c640ba186bb13167.zip
Implement some `From` traits for `text_input::Id`
Diffstat (limited to 'widget/src')
-rw-r--r--widget/src/text_input.rs39
1 files changed, 27 insertions, 12 deletions
diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs
index d5ede524..3032dd13 100644
--- a/widget/src/text_input.rs
+++ b/widget/src/text_input.rs
@@ -114,8 +114,8 @@ where
}
/// Sets the [`Id`] of the [`TextInput`].
- pub fn id(mut self, id: Id) -> Self {
- self.id = Some(id);
+ pub fn id(mut self, id: impl Into<Id>) -> Self {
+ self.id = Some(id.into());
self
}
@@ -1226,38 +1226,53 @@ impl From<Id> for widget::Id {
}
}
+impl From<&'static str> for Id {
+ fn from(id: &'static str) -> Self {
+ Self::new(id)
+ }
+}
+
+impl From<String> for Id {
+ fn from(id: String) -> Self {
+ Self::new(id)
+ }
+}
+
/// Produces a [`Task`] that focuses the [`TextInput`] with the given [`Id`].
-pub fn focus<T>(id: Id) -> Task<T> {
- task::effect(Action::widget(operation::focusable::focus(id.0)))
+pub fn focus<T>(id: impl Into<Id>) -> Task<T> {
+ task::effect(Action::widget(operation::focusable::focus(id.into().0)))
}
/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// end.
-pub fn move_cursor_to_end<T>(id: Id) -> Task<T> {
+pub fn move_cursor_to_end<T>(id: impl Into<Id>) -> Task<T> {
task::effect(Action::widget(operation::text_input::move_cursor_to_end(
- id.0,
+ id.into().0,
)))
}
/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// front.
-pub fn move_cursor_to_front<T>(id: Id) -> Task<T> {
+pub fn move_cursor_to_front<T>(id: impl Into<Id>) -> Task<T> {
task::effect(Action::widget(operation::text_input::move_cursor_to_front(
- id.0,
+ id.into().0,
)))
}
/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// provided position.
-pub fn move_cursor_to<T>(id: Id, position: usize) -> Task<T> {
+pub fn move_cursor_to<T>(id: impl Into<Id>, position: usize) -> Task<T> {
task::effect(Action::widget(operation::text_input::move_cursor_to(
- id.0, position,
+ id.into().0,
+ position,
)))
}
/// Produces a [`Task`] that selects all the content of the [`TextInput`] with the given [`Id`].
-pub fn select_all<T>(id: Id) -> Task<T> {
- task::effect(Action::widget(operation::text_input::select_all(id.0)))
+pub fn select_all<T>(id: impl Into<Id>) -> Task<T> {
+ task::effect(Action::widget(operation::text_input::select_all(
+ id.into().0,
+ )))
}
/// The state of a [`TextInput`].