pub struct TextField {
pub read_only: bool,
pub select_all_on_focus: bool,
pub password_mode: bool,
pub placeholder: String,
pub padding: f64,
/* private fields */
}Expand description
Single-line editable text field.
Fields§
§read_only: bool§select_all_on_focus: bool§password_mode: boolWhen true, every character is displayed as ‘•’ (U+2022).
The actual text is stored and edited normally; only the render is masked.
placeholder: String§padding: f64Implementations§
Source§impl TextField
impl TextField
pub fn new(font: Arc<Font>) -> Self
pub fn with_font_size(self, s: f64) -> Self
pub fn with_padding(self, p: f64) -> Self
pub fn with_read_only(self, v: bool) -> Self
pub fn with_select_all_on_focus(self, v: bool) -> Self
pub fn with_password_mode(self, v: bool) -> Self
pub fn with_placeholder(self, s: impl Into<String>) -> Self
pub fn with_text(self, s: impl Into<String>) -> Self
pub fn on_change(self, cb: impl FnMut(&str) + 'static) -> Self
pub fn on_enter(self, cb: impl FnMut(&str) + 'static) -> Self
pub fn on_edit_complete(self, cb: impl FnMut(&str) + 'static) -> Self
pub fn with_margin(self, m: Insets) -> Self
pub fn with_h_anchor(self, h: HAnchor) -> Self
pub fn with_v_anchor(self, v: VAnchor) -> Self
pub fn with_min_size(self, s: Size) -> Self
pub fn with_max_size(self, s: Size) -> Self
pub fn text(&self) -> String
pub fn cursor_pos(&self) -> usize
pub fn selection(&self) -> String
pub fn set_text(&mut self, s: impl Into<String>)
Trait Implementations§
Source§impl Widget for TextField
impl Widget for TextField
Source§fn needs_paint(&self) -> bool
fn needs_paint(&self) -> bool
While focused, the cursor blinks at 500 ms half-period. The field
itself drives its own repaint cadence: [needs_paint] reports dirty
whenever wall-clock time has crossed a flip boundary since the last
paint, and [next_paint_deadline] returns the exact wall-clock
instant of the next boundary so the host can WaitUntil it.
Losing focus makes both return None / false, and the tree walk’s
visibility check drops the field entirely when its enclosing window
is closed / collapsed / tab not selected — so an invisible focused
field does NOT keep the loop awake.
Source§fn paint_overlay(&mut self, ctx: &mut dyn DrawCtx)
fn paint_overlay(&mut self, ctx: &mut dyn DrawCtx)
Cursor overlay — runs AFTER the cache blit on every frame, so
blink-phase flips don’t invalidate the backbuffer. Reads the
same edit state paint() does so cursor lands on the glyph the
cached text shows.
Source§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
Source§fn set_bounds(&mut self, b: Rect)
fn set_bounds(&mut self, b: Rect)
Source§fn children_mut(&mut self) -> &mut Vec<Box<dyn Widget>>
fn children_mut(&mut self) -> &mut Vec<Box<dyn Widget>>
Source§fn is_focusable(&self) -> bool
fn is_focusable(&self) -> bool
Source§fn next_paint_deadline(&self) -> Option<Instant>
fn next_paint_deadline(&self) -> Option<Instant>
None = no scheduled wake.
The host loop turns a Some(t) into ControlFlow::WaitUntil(t) so
e.g. a cursor blink fires without continuous polling. Read moreSource§fn h_anchor(&self) -> HAnchor
fn h_anchor(&self) -> HAnchor
HAnchor::FIT (take natural content width).Source§fn v_anchor(&self) -> VAnchor
fn v_anchor(&self) -> VAnchor
VAnchor::FIT (take natural content height).Source§fn backbuffer_cache_mut(&mut self) -> Option<&mut BackbufferCache>
fn backbuffer_cache_mut(&mut self) -> Option<&mut BackbufferCache>
Source§fn backbuffer_mode(&self) -> BackbufferMode
fn backbuffer_mode(&self) -> BackbufferMode
backbuffer_cache_mut] returns Some. Default
BackbufferMode::Rgba — correct for any widget.
Opt into BackbufferMode::LcdCoverage only when the widget
paints opaque content covering its full bounds.Source§fn layout(&mut self, available: Size) -> Size
fn layout(&mut self, available: Size) -> Size
Source§fn paint(&mut self, ctx: &mut dyn DrawCtx)
fn paint(&mut self, ctx: &mut dyn DrawCtx)
ctx. Read moreSource§fn on_event(&mut self, event: &Event) -> EventResult
fn on_event(&mut self, event: &Event) -> EventResult
EventResult::Consumed to stop bubbling.Source§fn hit_test(&self, local_pos: Point) -> bool
fn hit_test(&self, local_pos: Point) -> bool
true if local_pos (in this widget’s local coordinates) falls
inside this widget’s interactive area. Default: axis-aligned rect test.Source§fn claims_pointer_exclusively(&self, _local_pos: Point) -> bool
fn claims_pointer_exclusively(&self, _local_pos: Point) -> bool
true, hit_test_subtree stops recursing into this widget’s
children and returns this widget as the hit target. Used for floating
overlays (e.g. a scrollbar painted above its content) that must claim
the pointer before children that happen to share the same pixels.
Default: false.Source§fn id(&self) -> Option<&str>
fn id(&self) -> Option<&str>
Source§fn is_visible(&self) -> bool
fn is_visible(&self) -> bool
false to suppress painting this widget and all its children.
The widget’s own paint() will not be called. Default: true.Source§fn properties(&self) -> Vec<(&'static str, String)>
fn properties(&self) -> Vec<(&'static str, String)>
Source§fn has_backbuffer(&self) -> bool
fn has_backbuffer(&self) -> bool
Source§fn contributes_children_to_inspector(&self) -> bool
fn contributes_children_to_inspector(&self) -> bool
Source§fn show_in_inspector(&self) -> bool
fn show_in_inspector(&self) -> bool
false to hide this widget (and its subtree) from the inspector
node snapshot entirely. Intended for zero-size utility widgets such
as layout-time watchers / tickers / invisible composers — they bloat
the inspector tree without providing user-relevant information and,
at scale, can make the inspector’s per-frame tree rebuild expensive.Source§fn lcd_preference(&self) -> Option<bool>
fn lcd_preference(&self) -> Option<bool>
Source§fn clip_children_rect(&self) -> Option<(f64, f64, f64, f64)>
fn clip_children_rect(&self) -> Option<(f64, f64, f64, f64)>
paint_subtree applies this clip before recursing into
children, then restores the previous clip state afterward. The clip does
not affect paint_overlay, which runs after the clip is removed. Read moreSource§fn enforce_integer_bounds(&self) -> bool
fn enforce_integer_bounds(&self) -> bool
paint_subtree should snap this widget’s incoming
translation to the physical pixel grid. Read moreSource§fn take_raise_request(&mut self) -> bool
fn take_raise_request(&mut self) -> bool
crate::widgets::Stack) call this on each
child at the start of layout(). A widget that returns true is
moved to the END of its parent’s child list — painted last, i.e.
raised to the top of the z-order. take_ semantics: the call is
also expected to clear the request so the child doesn’t keep
getting raised every frame. Read more