Checkbox

Struct Checkbox 

Source
pub struct Checkbox<'a> { /* private fields */ }
Expand description

A widget that displays a checkbox with a label.

A Checkbox can be in a checked or unchecked state. The checkbox is rendered with a symbol (default for unchecked and for checked) followed by a label.

The widget can be styled using Checkbox::style which affects both the checkbox symbol and the label. You can also style just the checkbox symbol using Checkbox::checkbox_style or the label using Checkbox::label_style.

You can create a Checkbox using Checkbox::new or Checkbox::default.

§Examples

use ratatui::style::{Color, Style, Stylize};
use tui_checkbox::Checkbox;

Checkbox::new("Enable feature", true)
    .style(Style::default().fg(Color::White))
    .checkbox_style(Style::default().fg(Color::Green))
    .label_style(Style::default().fg(Color::Gray));

With a block:

use ratatui::widgets::Block;
use tui_checkbox::Checkbox;

Checkbox::new("Accept terms", false).block(Block::bordered().title("Settings"));

Implementations§

Source§

impl<'a> Checkbox<'a>

Source

pub fn new<T>(label: T, checked: bool) -> Self
where T: Into<Line<'a>>,

Creates a new Checkbox with the given label and checked state.

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Enable feature", true);

With styled label:

use ratatui::style::Stylize;
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Enable feature".blue(), false);
Source

pub fn label<T>(self, label: T) -> Self
where T: Into<Line<'a>>,

Sets the label of the checkbox.

The label can be any type that converts into a Line, such as a string or a styled span.

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::default().label("My checkbox");
Source

pub const fn checked(self, checked: bool) -> Self

Sets the checked state of the checkbox.

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::default().checked(true);
Source

pub fn block(self, block: Block<'a>) -> Self

Wraps the checkbox with the given block.

§Examples
use ratatui::widgets::Block;
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).block(Block::bordered().title("Settings"));
Source

pub fn style<S: Into<Style>>(self, style: S) -> Self

Sets the base style of the widget.

style accepts any type that is convertible to Style (e.g. Style, Color, or your own type that implements Into<Style>).

This style will be applied to both the checkbox symbol and the label unless overridden by more specific styles.

§Examples
use ratatui::style::{Color, Style};
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).style(Style::default().fg(Color::White));
Source

pub fn checkbox_style<S: Into<Style>>(self, style: S) -> Self

Sets the style of the checkbox symbol.

style accepts any type that is convertible to Style (e.g. Style, Color, or your own type that implements Into<Style>).

This style will be combined with the base style set by Checkbox::style.

§Examples
use ratatui::style::{Color, Style};
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", true).checkbox_style(Style::default().fg(Color::Green));
Source

pub fn label_style<S: Into<Style>>(self, style: S) -> Self

Sets the style of the label text.

style accepts any type that is convertible to Style (e.g. Style, Color, or your own type that implements Into<Style>).

This style will be combined with the base style set by Checkbox::style.

§Examples
use ratatui::style::{Color, Style};
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).label_style(Style::default().fg(Color::Gray));
Source

pub fn checked_symbol<T>(self, symbol: T) -> Self
where T: Into<Cow<'a, str>>,

Sets the symbol to use when the checkbox is checked.

The default is (U+2611).

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", true).checked_symbol("[X]");
Source

pub fn unchecked_symbol<T>(self, symbol: T) -> Self
where T: Into<Cow<'a, str>>,

Sets the symbol to use when the checkbox is unchecked.

The default is (U+2610).

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).unchecked_symbol("[ ]");
Source

pub const fn label_position(self, position: LabelPosition) -> Self

Sets the position of the label relative to the checkbox symbol.

The default is LabelPosition::Right.

§Examples
use tui_checkbox::{Checkbox, LabelPosition};

let checkbox = Checkbox::new("Option", false).label_position(LabelPosition::Left);
Source

pub const fn horizontal_alignment(self, alignment: HorizontalAlignment) -> Self

Sets the horizontal alignment of the checkbox content within its area.

The default is HorizontalAlignment::Left.

§Examples
use tui_checkbox::{Checkbox, HorizontalAlignment};

let checkbox = Checkbox::new("Option", false)
    .horizontal_alignment(HorizontalAlignment::Center);
Source

pub const fn vertical_alignment(self, alignment: VerticalAlignment) -> Self

Sets the vertical alignment of the checkbox content within its area.

The default is VerticalAlignment::Top.

§Examples
use tui_checkbox::{Checkbox, VerticalAlignment};

let checkbox = Checkbox::new("Option", false)
    .vertical_alignment(VerticalAlignment::Center);
Source

pub const fn min_width(self, width: u16) -> Self

Sets the minimum width constraint for the checkbox widget.

The default is no minimum width.

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).min_width(20);
Source

pub const fn max_width(self, width: u16) -> Self

Sets the maximum width constraint for the checkbox widget.

The default is no maximum width.

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("Option", false).max_width(40);
Source

pub const fn wrap_label(self, wrap: bool) -> Self

Enables or disables label text wrapping.

When enabled, the label will wrap to multiple lines if it exceeds the available width. The default is false (no wrapping).

§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::new("This is a very long label that should wrap", false)
    .wrap_label(true)
    .max_width(30);

Trait Implementations§

Source§

impl<'a> Clone for Checkbox<'a>

Source§

fn clone(&self) -> Checkbox<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Checkbox<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Checkbox<'_>

Source§

fn default() -> Self

Returns a default Checkbox widget.

The default widget has:

  • Empty label
  • Unchecked state
  • No block
  • Default style for all elements
  • Unicode checkbox symbols (☐ and ☑)
  • Label position on the right
  • Left and top alignment
  • No width constraints
  • No label wrapping
§Examples
use tui_checkbox::Checkbox;

let checkbox = Checkbox::default();
Source§

impl<'a> Hash for Checkbox<'a>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'a> PartialEq for Checkbox<'a>

Source§

fn eq(&self, other: &Checkbox<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Styled for Checkbox<'_>

Source§

type Item = Checkbox<'_>

Source§

fn style(&self) -> Style

Returns the style of the object.
Source§

fn set_style<S: Into<Style>>(self, style: S) -> Self::Item

Sets the style of the object. Read more
Source§

impl Widget for &Checkbox<'_>

Source§

fn render(self, area: Rect, buf: &mut Buffer)

Draws the current state of the widget in the given buffer. That is the only method required to implement a custom widget.
Source§

impl Widget for Checkbox<'_>

Source§

fn render(self, area: Rect, buf: &mut Buffer)

Draws the current state of the widget in the given buffer. That is the only method required to implement a custom widget.
Source§

impl<'a> Eq for Checkbox<'a>

Source§

impl<'a> StructuralPartialEq for Checkbox<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Checkbox<'a>

§

impl<'a> RefUnwindSafe for Checkbox<'a>

§

impl<'a> Send for Checkbox<'a>

§

impl<'a> Sync for Checkbox<'a>

§

impl<'a> Unpin for Checkbox<'a>

§

impl<'a> UnwindSafe for Checkbox<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<'a, T, U> Stylize<'a, T> for U
where U: Styled<Item = T>,

Source§

fn bg<C>(self, color: C) -> T
where C: Into<Color>,

Source§

fn fg<C>(self, color: C) -> T
where C: Into<Color>,

Source§

fn add_modifier(self, modifier: Modifier) -> T

Source§

fn remove_modifier(self, modifier: Modifier) -> T

Source§

fn reset(self) -> T

Source§

fn black(self) -> T

Sets the foreground color to black.
Source§

fn on_black(self) -> T

Sets the background color to black.
Source§

fn red(self) -> T

Sets the foreground color to red.
Source§

fn on_red(self) -> T

Sets the background color to red.
Source§

fn green(self) -> T

Sets the foreground color to green.
Source§

fn on_green(self) -> T

Sets the background color to green.
Source§

fn yellow(self) -> T

Sets the foreground color to yellow.
Source§

fn on_yellow(self) -> T

Sets the background color to yellow.
Source§

fn blue(self) -> T

Sets the foreground color to blue.
Source§

fn on_blue(self) -> T

Sets the background color to blue.
Source§

fn magenta(self) -> T

Sets the foreground color to magenta.
Source§

fn on_magenta(self) -> T

Sets the background color to magenta.
Source§

fn cyan(self) -> T

Sets the foreground color to cyan.
Source§

fn on_cyan(self) -> T

Sets the background color to cyan.
Source§

fn gray(self) -> T

Sets the foreground color to gray.
Source§

fn on_gray(self) -> T

Sets the background color to gray.
Source§

fn dark_gray(self) -> T

Sets the foreground color to dark_gray.
Source§

fn on_dark_gray(self) -> T

Sets the background color to dark_gray.
Source§

fn light_red(self) -> T

Sets the foreground color to light_red.
Source§

fn on_light_red(self) -> T

Sets the background color to light_red.
Source§

fn light_green(self) -> T

Sets the foreground color to light_green.
Source§

fn on_light_green(self) -> T

Sets the background color to light_green.
Source§

fn light_yellow(self) -> T

Sets the foreground color to light_yellow.
Source§

fn on_light_yellow(self) -> T

Sets the background color to light_yellow.
Source§

fn light_blue(self) -> T

Sets the foreground color to light_blue.
Source§

fn on_light_blue(self) -> T

Sets the background color to light_blue.
Source§

fn light_magenta(self) -> T

Sets the foreground color to light_magenta.
Source§

fn on_light_magenta(self) -> T

Sets the background color to light_magenta.
Source§

fn light_cyan(self) -> T

Sets the foreground color to light_cyan.
Source§

fn on_light_cyan(self) -> T

Sets the background color to light_cyan.
Source§

fn white(self) -> T

Sets the foreground color to white.
Source§

fn on_white(self) -> T

Sets the background color to white.
Source§

fn bold(self) -> T

Adds the BOLD modifier.
Source§

fn not_bold(self) -> T

Removes the BOLD modifier.
Source§

fn dim(self) -> T

Adds the DIM modifier.
Source§

fn not_dim(self) -> T

Removes the DIM modifier.
Source§

fn italic(self) -> T

Adds the ITALIC modifier.
Source§

fn not_italic(self) -> T

Removes the ITALIC modifier.
Source§

fn underlined(self) -> T

Adds the UNDERLINED modifier.
Source§

fn not_underlined(self) -> T

Removes the UNDERLINED modifier.
Adds the SLOW_BLINK modifier.
Removes the SLOW_BLINK modifier.
Adds the RAPID_BLINK modifier.
Removes the RAPID_BLINK modifier.
Source§

fn reversed(self) -> T

Adds the REVERSED modifier.
Source§

fn not_reversed(self) -> T

Removes the REVERSED modifier.
Source§

fn hidden(self) -> T

Adds the HIDDEN modifier.
Source§

fn not_hidden(self) -> T

Removes the HIDDEN modifier.
Source§

fn crossed_out(self) -> T

Adds the CROSSED_OUT modifier.
Source§

fn not_crossed_out(self) -> T

Removes the CROSSED_OUT modifier.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.