pub struct PasswordInput { /* private fields */ }Expand description
A password field with an eye toggle. Create with
cx.new(|cx| PasswordInput::new(cx)).
Implementations§
Source§impl PasswordInput
impl PasswordInput
pub fn new(cx: &mut Context<'_, Self>) -> Self
pub fn value(self, value: &str) -> Self
pub fn placeholder(self, placeholder: impl Into<SharedString>) -> Self
pub fn label(self, label: impl Into<SharedString>) -> Self
pub fn description(self, description: impl Into<SharedString>) -> Self
pub fn error(self, error: impl Into<SharedString>) -> Self
pub fn size(self, size: Size) -> Self
pub fn disabled(self, disabled: bool) -> Self
Sourcepub fn visible(self, visible: bool) -> Self
pub fn visible(self, visible: bool) -> Self
Start with the text revealed (the eye still toggles it).
Sourcepub fn read_only(self, read_only: bool) -> Self
pub fn read_only(self, read_only: bool) -> Self
Selectable but not editable, like an <input readonly>.
Sourcepub fn max_length(self, max: usize) -> Self
pub fn max_length(self, max: usize) -> Self
Cap the value’s length in characters, like <input maxlength>.
Sourcepub fn set_text(&mut self, value: &str, cx: &mut Context<'_, Self>)
pub fn set_text(&mut self, value: &str, cx: &mut Context<'_, Self>)
Replace the text programmatically.
Sourcepub fn bind(
entity: &Entity<PasswordInput>,
signal: &Signal<String>,
cx: &mut App,
)
pub fn bind( entity: &Entity<PasswordInput>, signal: &Signal<String>, cx: &mut App, )
Two-way bind this input’s text to a Signal<String>. The signal is
the source of truth: the field adopts its value now, edits write back
through Signal::set_if_changed, and signal writes replace the text.
Equality guards on both directions prevent update loops.
Source§impl PasswordInput
impl PasswordInput
Sourcepub fn tab_index(self, index: isize) -> Self
pub fn tab_index(self, index: isize) -> Self
Where this field sits in the window’s Tab order. Fields default to 0, which walks them in render order; set this only to override that.
Sourcepub fn tab_stop(self, tab_stop: bool) -> Self
pub fn tab_stop(self, tab_stop: bool) -> Self
Leave the field out of the Tab order without disabling it.
Sourcepub fn focus_handle(&self) -> FocusHandle
pub fn focus_handle(&self) -> FocusHandle
The field’s focus handle, so a host can focus it on open.
Trait Implementations§
Source§impl EntityInputHandler for PasswordInput
impl EntityInputHandler for PasswordInput
Source§fn text_for_range(
&mut self,
range_utf16: Range<usize>,
actual: &mut Option<Range<usize>>,
_window: &mut Window,
_cx: &mut Context<'_, Self>,
) -> Option<String>
fn text_for_range( &mut self, range_utf16: Range<usize>, actual: &mut Option<Range<usize>>, _window: &mut Window, _cx: &mut Context<'_, Self>, ) -> Option<String>
InputHandler::text_for_range for detailsSource§fn selected_text_range(
&mut self,
_ignore_disabled: bool,
_window: &mut Window,
_cx: &mut Context<'_, Self>,
) -> Option<UTF16Selection>
fn selected_text_range( &mut self, _ignore_disabled: bool, _window: &mut Window, _cx: &mut Context<'_, Self>, ) -> Option<UTF16Selection>
InputHandler::selected_text_range for detailsSource§fn marked_text_range(
&self,
_window: &mut Window,
_cx: &mut Context<'_, Self>,
) -> Option<Range<usize>>
fn marked_text_range( &self, _window: &mut Window, _cx: &mut Context<'_, Self>, ) -> Option<Range<usize>>
InputHandler::marked_text_range for detailsSource§fn unmark_text(&mut self, _window: &mut Window, _cx: &mut Context<'_, Self>)
fn unmark_text(&mut self, _window: &mut Window, _cx: &mut Context<'_, Self>)
InputHandler::unmark_text for detailsSource§fn replace_text_in_range(
&mut self,
range_utf16: Option<Range<usize>>,
text: &str,
_window: &mut Window,
cx: &mut Context<'_, Self>,
)
fn replace_text_in_range( &mut self, range_utf16: Option<Range<usize>>, text: &str, _window: &mut Window, cx: &mut Context<'_, Self>, )
InputHandler::replace_text_in_range for detailsSource§fn replace_and_mark_text_in_range(
&mut self,
range_utf16: Option<Range<usize>>,
text: &str,
selected_utf16: Option<Range<usize>>,
_window: &mut Window,
cx: &mut Context<'_, Self>,
)
fn replace_and_mark_text_in_range( &mut self, range_utf16: Option<Range<usize>>, text: &str, selected_utf16: Option<Range<usize>>, _window: &mut Window, cx: &mut Context<'_, Self>, )
InputHandler::replace_and_mark_text_in_range for detailsSource§fn bounds_for_range(
&mut self,
range_utf16: Range<usize>,
bounds: Bounds<Pixels>,
_window: &mut Window,
_cx: &mut Context<'_, Self>,
) -> Option<Bounds<Pixels>>
fn bounds_for_range( &mut self, range_utf16: Range<usize>, bounds: Bounds<Pixels>, _window: &mut Window, _cx: &mut Context<'_, Self>, ) -> Option<Bounds<Pixels>>
InputHandler::bounds_for_range for detailsSource§fn character_index_for_point(
&mut self,
point: Point<Pixels>,
_window: &mut Window,
_cx: &mut Context<'_, Self>,
) -> Option<usize>
fn character_index_for_point( &mut self, point: Point<Pixels>, _window: &mut Window, _cx: &mut Context<'_, Self>, ) -> Option<usize>
InputHandler::character_index_for_point for detailsimpl EventEmitter<PasswordInputEvent> for PasswordInput
Source§impl LineEditor for PasswordInput
impl LineEditor for PasswordInput
Source§fn line_masked(&self) -> bool
fn line_masked(&self) -> bool
Revealing the field with the eye is a deliberate act, so it also lifts the copy block — otherwise the toggle would be for looking only.
fn edit(&self) -> &TextEdit
fn edit_mut(&mut self) -> &mut TextEdit
fn line(&self) -> &LineState
fn line_mut(&mut self) -> &mut LineState
fn line_focus(&self) -> &FocusHandle
Source§fn line_read_only(&self) -> bool
fn line_read_only(&self) -> bool
Source§fn line_max_length(&self) -> Option<usize>
fn line_max_length(&self) -> Option<usize>
<input maxlength> is.Source§fn line_changed(&mut self, cx: &mut Context<'_, Self>)
fn line_changed(&mut self, cx: &mut Context<'_, Self>)
cx.notify on the host’s behalf; do it here.Source§fn line_filter(&self, text: String) -> String
fn line_filter(&self, text: String) -> String
<input type="number"> does.
Returns the text to actually insert; dropping every char rejects the
input. Applied to typing, IME, drops, and paste alike, so a field can’t
be filled with something it rejects by any route.Source§impl Render for PasswordInput
impl Render for PasswordInput
Auto Trait Implementations§
impl !RefUnwindSafe for PasswordInput
impl !UnwindSafe for PasswordInput
impl Freeze for PasswordInput
impl Send for PasswordInput
impl Sync for PasswordInput
impl Unpin for PasswordInput
impl UnsafeUnpin for PasswordInput
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more