Skip to main content

ColorPickerState

Struct ColorPickerState 

Source
pub struct ColorPickerState { /* private fields */ }
Expand description

State and interaction model for a color picker.

This owns the committed color, the transient preview shown while the user hovers or edits, the controlled open state, the active panel, and the hex field and component sliders that stay in sync with all of them. The application owns the palette, popup, layout, and every visual decision.

Implementations§

Source§

impl ColorPickerState

Source

pub fn new(window: &mut Window, cx: &mut Context<'_, Self>) -> Self

Creates an empty, closed picker.

Source

pub fn default_value(self, value: impl Into<Hsla>) -> Self

Sets the initial committed and previewed color.

Source

pub fn value(&self) -> Option<Hsla>

Returns the committed color.

Source

pub fn preview(&self) -> Option<Hsla>

Returns the color currently being previewed.

Source

pub fn displayed_color(&self) -> Option<Hsla>

Returns the previewed color, falling back to the committed color.

Source

pub fn hex_input(&self) -> &Entity<InputState>

The hex text field. Render it with an application-owned input element.

Source

pub fn sliders(&self) -> &HslaSliders

The HSLA component sliders.

Source

pub fn set_value( &mut self, value: impl Into<Hsla>, window: &mut Window, cx: &mut Context<'_, Self>, )

Replaces the committed color without emitting a change.

Source

pub fn clear_value(&mut self, window: &mut Window, cx: &mut Context<'_, Self>)

Clears the committed color without emitting a change.

Source

pub fn sync_pending_value( &mut self, window: &mut Window, cx: &mut Context<'_, Self>, )

Applies a value supplied to Self::default_value to the hex field and sliders. Call this from render; it is a no-op once nothing is pending.

Source

pub fn preview_color( &mut self, value: Hsla, window: &mut Window, cx: &mut Context<'_, Self>, )

Updates the transient preview color and the hex field that shows it.

Source

pub fn clear_preview(&mut self, window: &mut Window, cx: &mut Context<'_, Self>)

Drops the transient preview, restoring the committed color.

Source

pub fn preview_hex( &mut self, value: &str, _: &mut Window, cx: &mut Context<'_, Self>, ) -> bool

Parses a hex color into the transient preview.

Invalid or incomplete input leaves the current preview unchanged. This does not write the hex field, so it is safe to call while typing in it.

Source

pub fn commit_hex( &mut self, value: &str, window: &mut Window, cx: &mut Context<'_, Self>, ) -> Option<Hsla>

Parses and commits a hex color, closing the picker on success.

Source

pub fn select_color( &mut self, value: Hsla, window: &mut Window, cx: &mut Context<'_, Self>, )

Commits a color and closes the picker, as a palette selection does.

Source

pub fn update_color( &mut self, value: Hsla, window: &mut Window, cx: &mut Context<'_, Self>, )

Commits a color without changing the open state, as a slider drag does.

Source

pub fn set_open(&mut self, open: bool, cx: &mut Context<'_, Self>)

Sets whether the picker popup is open.

Source

pub fn toggle_open(&mut self, cx: &mut Context<'_, Self>)

Toggles the picker popup.

Source

pub fn is_open(&self) -> bool

Returns whether the picker popup is open.

Source

pub fn set_active_tab(&mut self, tab: usize, cx: &mut Context<'_, Self>)

Selects the application-defined picker panel.

Source

pub fn active_tab(&self) -> usize

Returns the selected application-defined picker panel.

Trait Implementations§

Source§

impl EventEmitter<ColorPickerEvent> for ColorPickerState

Source§

impl Focusable for ColorPickerState

Source§

fn focus_handle(&self, _: &App) -> FocusHandle

Returns the focus handle associated with this view.
Source§

impl Render for ColorPickerState

Source§

fn render( &mut self, _: &mut Window, _: &mut Context<'_, Self>, ) -> impl IntoElement

Render this view into an element tree.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more