Skip to main content

ImageWidget

Struct ImageWidget 

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

A widget that displays an inline terminal image.

The component renders placeholder text lines that reserve the same number of cells the terminal will use for the image, and emits an ImageCommand so the renderer can upload the image using the selected terminal graphics protocol (Kitty or iTerm2).

Implementations§

Source§

impl ImageWidget

Source

pub fn new( data: Vec<u8>, mime_type: impl Into<String>, placeholder: Option<String>, ) -> Self

Create a new image widget.

data is the raw image bytes. placeholder defaults to "[image]". The widget is assigned a unique image id and uses the Kitty protocol by default. The display size in cells is inferred from the image’s pixel dimensions when possible, falling back to 20×10 cells.

Source

pub fn with_protocol(self, protocol: ImageProtocol) -> Self

Override the terminal image protocol used by this widget.

Source

pub fn with_size(self, cols: u16, rows: u16) -> Self

Set the on-screen size in terminal cells.

This determines how many placeholder lines the widget renders and the c=/r= values passed to the Kitty graphics protocol. The terminal scales the image to fit this cell rectangle.

Trait Implementations§

Source§

impl Component for ImageWidget

Source§

fn render(&self, width: u16) -> Result<Rendered, RenderError>

Render this component into lines of text at the given width. Read more
Source§

fn render_rect(&self, rect: Rect) -> Result<Rendered, RenderError>

Render this component into a specific rectangular area. Read more
Source§

fn handle_input(&mut self, _event: &Event) -> InputResult

Handle an input event (key press, resize, mouse, etc.). Read more
Source§

fn wants_key_release(&self) -> bool

Returns true if this component wants to receive KeyEventKind::Release events in addition to Press / Repeat. Read more
Source§

fn as_focusable(&self) -> Option<&dyn Focusable>

Cast this component to a Focusable reference, if supported.
Source§

fn as_focusable_mut(&mut self) -> Option<&mut dyn Focusable>

Cast this component to a mutable Focusable reference, if supported.

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, 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, 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.