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. A control that asks for more than the room beside the label (an input with a
long placeholder) puts its label above as well and takes the whole row instead of being cut.
The column is at least as wide as the required word of the active language.
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