pub struct Field<Msg> { /* private fields */ }Expand description
A labelled control: the label, the control the application adds inside, and under it a faint hint or, when there is one, the error in the danger colour with a marker.
The field only lays things out. The application owns the value and its error, and marks the
control itself as invalid (TextInput::invalid). The label brightens while the control has
focus. Required fields show a faint word after the label; nothing is starred.
Labels sit above the control by default. With Field::label_width they take a column of
that width beside the control whenever the field is wide enough, and move above it again on
narrow screens.
Style keys: field-label (fg, bold) with states focus and disabled;
field-required, field-hint and field-error (fg). The required word is
quvyta.form.required; the error marker is the error icon.
Implementations§
Source§impl<Msg: 'static> Field<Msg>
impl<Msg: 'static> Field<Msg>
Sourcepub fn new(label: impl Into<String>) -> Self
pub fn new(label: impl Into<String>) -> Self
A field labelled label. Add its control with
View::add_with or FormFields::field.
Sourcepub fn hint(self, hint: impl Into<String>) -> Self
pub fn hint(self, hint: impl Into<String>) -> Self
Faint help under the control, shown while there is no error.
Sourcepub fn error<S: Into<String>>(self, error: Option<S>) -> Self
pub fn error<S: Into<String>>(self, error: Option<S>) -> Self
The error under the control; None shows the hint instead. Pass
FormErrors::get straight in.
Sourcepub fn disabled(self, disabled: bool) -> Self
pub fn disabled(self, disabled: bool) -> Self
Greys the label out; disable the control as well.
Sourcepub fn label_width(self, cells: u16) -> Self
pub fn label_width(self, cells: u16) -> Self
Puts the label in a column cells wide beside the control when the field is at least
that wide plus room for a control; otherwise the label stays above.
Trait Implementations§
Source§impl<Msg: 'static> Container<Msg> for Field<Msg>
impl<Msg: 'static> Container<Msg> for Field<Msg>
Source§fn set_children(&mut self, children: Vec<Node<Msg>>)
fn set_children(&mut self, children: Vec<Node<Msg>>)
Source§impl<Msg: 'static> Widget<Msg> for Field<Msg>
impl<Msg: 'static> Widget<Msg> for Field<Msg>
Source§fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
available.Source§fn children_mut(&mut self) -> &mut [Node<Msg>]
fn children_mut(&mut self) -> &mut [Node<Msg>]
Source§fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
PaintCx::request_overlay. anchor is the area the widget was painted in.Auto Trait Implementations§
impl<Msg> !RefUnwindSafe for Field<Msg>
impl<Msg> !Send for Field<Msg>
impl<Msg> !Sync for Field<Msg>
impl<Msg> !UnwindSafe for Field<Msg>
impl<Msg> Freeze for Field<Msg>
impl<Msg> Unpin for Field<Msg>
impl<Msg> UnsafeUnpin for Field<Msg>
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
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