diff options
| author | 2024-09-18 20:40:17 +0200 | |
|---|---|---|
| committer | 2024-09-18 20:40:17 +0200 | |
| commit | 035d4e37d5a1c818aa134b8c99b31d635a7b8996 (patch) | |
| tree | 50c1cb5fac6bee8738fe69e59ed355150b701cf1 /widget | |
| parent | f89744283167a1961fcff512ad48b0eb9b8fcaef (diff) | |
| parent | 1448c5bfa5d0977e54670bb8c640ba186bb13167 (diff) | |
| download | iced-035d4e37d5a1c818aa134b8c99b31d635a7b8996.tar.gz iced-035d4e37d5a1c818aa134b8c99b31d635a7b8996.tar.bz2 iced-035d4e37d5a1c818aa134b8c99b31d635a7b8996.zip  | |
Merge pull request #2582 from iced-rs/from-trait-for-text-input-id
Implement some `From` traits for `text_input::Id`
Diffstat (limited to 'widget')
| -rw-r--r-- | widget/src/text_input.rs | 39 | 
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`].  | 
