pub struct ColorInput { /* private fields */ }Expand description
A color field with a palette dropdown. Create with
cx.new(|cx| ColorInput::new(cx)).
Implementations§
Source§impl ColorInput
impl ColorInput
pub fn new(cx: &mut Context<'_, Self>) -> Self
Sourcepub fn value(self, color: impl Into<Hsla>) -> Self
pub fn value(self, color: impl Into<Hsla>) -> Self
The initial color (alpha is dropped). Also rewrites the text buffer as hex.
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 color_value(&self) -> Hsla
pub fn color_value(&self) -> Hsla
The current color.
Sourcepub fn bind(entity: &Entity<ColorInput>, signal: &Signal<Hsla>, cx: &mut App)
pub fn bind(entity: &Entity<ColorInput>, signal: &Signal<Hsla>, cx: &mut App)
Two-way bind this input’s color to a Signal<Hsla>. The signal is the
source of truth: the input adopts its value now, picks and valid typed
colors write back through Signal::set_if_changed, and signal writes
update the swatch and buffer without emitting ColorInputEvent.
Equality guards on both directions prevent update loops.
Source§impl ColorInput
impl ColorInput
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 ColorInput
impl EntityInputHandler for ColorInput
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<ColorInputEvent> for ColorInput
Source§impl LineEditor for ColorInput
impl LineEditor for ColorInput
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_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_masked(&self) -> bool
fn line_masked(&self) -> bool
Source§fn line_max_length(&self) -> Option<usize>
fn line_max_length(&self) -> Option<usize>
<input maxlength> is.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 ColorInput
impl Render for ColorInput
Auto Trait Implementations§
impl !RefUnwindSafe for ColorInput
impl !UnwindSafe for ColorInput
impl Freeze for ColorInput
impl Send for ColorInput
impl Sync for ColorInput
impl Unpin for ColorInput
impl UnsafeUnpin for ColorInput
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