pub struct TextAreaState { /* private fields */ }Expand description
State for a TextArea component.
Implementations§
Source§impl TextAreaState
impl TextAreaState
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty textarea.
§Example
use envision::component::TextAreaState;
let state = TextAreaState::new();
assert!(state.is_empty());
assert_eq!(state.line_count(), 1);Sourcepub fn with_value(value: impl Into<String>) -> Self
pub fn with_value(value: impl Into<String>) -> Self
Creates a textarea with initial content.
The content is split on newlines into separate lines. The cursor is placed at the end of the content.
§Example
use envision::component::TextAreaState;
let state = TextAreaState::with_value("Hello\nWorld");
assert_eq!(state.line_count(), 2);
assert_eq!(state.line(0), Some("Hello"));
assert_eq!(state.line(1), Some("World"));Sourcepub fn with_placeholder(placeholder: impl Into<String>) -> Self
pub fn with_placeholder(placeholder: impl Into<String>) -> Self
Creates a textarea with placeholder text.
§Example
use envision::component::TextAreaState;
let state = TextAreaState::with_placeholder("Enter description...");
assert_eq!(state.placeholder(), "Enter description...");
assert!(state.is_empty());Sourcepub fn value(&self) -> String
pub fn value(&self) -> String
Returns the full text content (lines joined with \n).
§Example
use envision::component::TextAreaState;
let state = TextAreaState::with_value("Line 1\nLine 2");
assert_eq!(state.value(), "Line 1\nLine 2");Sourcepub fn set_value(&mut self, value: impl Into<String>)
pub fn set_value(&mut self, value: impl Into<String>)
Sets the content from a string (splits on \n).
The cursor is moved to the end of the content.
Sourcepub fn cursor_position(&self) -> (usize, usize)
pub fn cursor_position(&self) -> (usize, usize)
Returns the cursor position as (row, char_column).
§Example
use envision::component::TextAreaState;
let state = TextAreaState::with_value("Hello\nWorld");
// Cursor is at end of "World" (row 1, char 5)
assert_eq!(state.cursor_position(), (1, 5));Sourcepub fn cursor_row(&self) -> usize
pub fn cursor_row(&self) -> usize
Returns the cursor row.
Sourcepub fn cursor_col(&self) -> usize
pub fn cursor_col(&self) -> usize
Returns the cursor column (byte offset).
Sourcepub fn line_count(&self) -> usize
pub fn line_count(&self) -> usize
Returns the number of lines.
Sourcepub fn current_line(&self) -> &str
pub fn current_line(&self) -> &str
Returns the current line (at cursor row).
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if the textarea is empty.
A textarea is empty if it contains only a single empty line.
Sourcepub fn placeholder(&self) -> &str
pub fn placeholder(&self) -> &str
Returns the placeholder text.
Sourcepub fn set_placeholder(&mut self, placeholder: impl Into<String>)
pub fn set_placeholder(&mut self, placeholder: impl Into<String>)
Sets the placeholder text.
Sourcepub fn scroll_offset(&self) -> usize
pub fn scroll_offset(&self) -> usize
Returns the scroll offset.
Sourcepub fn set_cursor(&mut self, row: usize, col: usize)
pub fn set_cursor(&mut self, row: usize, col: usize)
Sets the cursor position (row, char_column).
Both row and column are clamped to valid ranges.
Sourcepub fn ensure_cursor_visible(&mut self, visible_lines: usize)
pub fn ensure_cursor_visible(&mut self, visible_lines: usize)
Ensures the cursor is visible within the viewport.
Trait Implementations§
Source§impl Clone for TextAreaState
impl Clone for TextAreaState
Source§fn clone(&self) -> TextAreaState
fn clone(&self) -> TextAreaState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TextAreaState
impl Debug for TextAreaState
Auto Trait Implementations§
impl Freeze for TextAreaState
impl RefUnwindSafe for TextAreaState
impl Send for TextAreaState
impl Sync for TextAreaState
impl Unpin for TextAreaState
impl UnwindSafe for TextAreaState
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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