pub struct Content<R = Renderer<Renderer, Renderer>>(/* private fields */)
where
R: Renderer;Expand description
The content of a TextEditor.
Implementations§
Source§impl<R> Content<R>where
R: Renderer,
impl<R> Content<R>where
R: Renderer,
Sourcepub fn with_text(text: &str) -> Content<R>
pub fn with_text(text: &str) -> Content<R>
Creates a Content with the given text.
Examples found in repository?
examples/showcase/app.rs (lines 179-181)
173 fn default() -> Self {
174 Self {
175 navigation: navigation::NavigationState::new(ShowcasePage::Inputs),
176 window_size: Size::new(1080.0, 980.0),
177 count: 0,
178 note: String::new(),
179 editor_content: material::widget::text_editor::Content::with_text(
180 "Material 3 multi-line text editor",
181 ),
182 select_choice: Some("Assist"),
183 combobox_options: material::widget::combobox::State::with_selection(
184 vec!["Assist", "Suggestion", "Filter"],
185 Some(&"Suggestion"),
186 ),
187 combobox_choice: Some("Suggestion"),
188 combobox_input: String::new(),
189 search_query: String::new(),
190 date_picker: material::widget::picker::DatePickerState::new(
191 material::widget::picker::Date::new(2026, 7, 4),
192 ),
193 date_range_picker: material::widget::picker::DateRangePickerState::new(
194 material::widget::picker::Date::new(2026, 7, 4),
195 material::widget::picker::Date::new(2026, 7, 10),
196 ),
197 time_picker: material::widget::picker::TimePickerState::new(14, 30, false),
198 progress: 42.0,
199 enabled: true,
200 radio_choice: Some(RadioChoice::Standard),
201 segment_choice: SegmentChoice::List,
202 segment_state: material::widget::segmented_button::State::new(
203 SegmentChoice::List.index(),
204 ),
205 primary_tab: TabChoice::Inputs,
206 primary_tab_state: material::widget::tabs::State::new(TabChoice::Inputs.index()),
207 secondary_tab: TabChoice::Controls,
208 secondary_tab_state: material::widget::tabs::State::new(TabChoice::Controls.index()),
209 progress_animation: material::widget::progress_bar::IndeterminateState::new(
210 Instant::now(),
211 ),
212 alert_dialog: material::widget::dialog::Transition::default(),
213 snackbar: material::widget::snackbar::Transition::default(),
214 theme_controller: theme_picker::ThemeController::default(),
215 }
216 }Sourcepub fn perform(&mut self, action: Action)
pub fn perform(&mut self, action: Action)
Examples found in repository?
examples/showcase/app.rs (line 254)
233fn update(state: &mut Showcase, message: Message) -> Task<Message> {
234 match message {
235 Message::Navigate(page) => {
236 state
237 .navigation
238 .select(page, Instant::now(), state.adaptive_navigation_layout());
239 Task::none()
240 }
241 Message::Increment => {
242 state.count += 1;
243 Task::none()
244 }
245 Message::Decrement => {
246 state.count -= 1;
247 Task::none()
248 }
249 Message::TextChanged(note) => {
250 state.note = note;
251 Task::none()
252 }
253 Message::EditorAction(action) => {
254 state.editor_content.perform(action);
255 Task::none()
256 }
257 Message::SelectChanged(choice) => {
258 state.select_choice = Some(choice);
259 Task::none()
260 }
261 Message::ComboboxSelected(choice) => {
262 state.combobox_choice = Some(choice);
263 state.combobox_input.clear();
264 state.combobox_options.set_selection(Some(&choice));
265 Task::none()
266 }
267 Message::ComboboxInputChanged(input) => {
268 state.combobox_options.set_input(input.clone());
269 state.combobox_input = input;
270 state.combobox_choice = None;
271 Task::none()
272 }
273 Message::SearchChanged(query) => {
274 state.search_query = query;
275 Task::none()
276 }
277 Message::DatePickerChanged(action) => state
278 .date_picker
279 .update_and_scroll_to_displayed_year(action),
280 Message::DateRangePickerChanged(action) => state
281 .date_range_picker
282 .update_and_scroll_to_displayed_year(action),
283 Message::TimePickerChanged(action) => {
284 state.time_picker.update(action);
285 Task::none()
286 }
287 Message::SliderChanged(progress) => {
288 state.progress = progress;
289 Task::none()
290 }
291 Message::EnabledChanged(enabled) => {
292 state.enabled = enabled;
293 Task::none()
294 }
295 Message::ChoiceSelected(choice) => {
296 state.radio_choice = Some(choice);
297 Task::none()
298 }
299 Message::SegmentSelected(choice) => {
300 state.segment_choice = choice;
301 state.segment_state.select(choice.index(), Instant::now());
302 Task::none()
303 }
304 Message::PrimaryTabSelected(choice) => {
305 state.primary_tab = choice;
306 state.primary_tab_state.select(
307 choice.index(),
308 Instant::now(),
309 material::widget::tabs::Variant::Primary,
310 );
311 Task::none()
312 }
313 Message::SecondaryTabSelected(choice) => {
314 state.secondary_tab = choice;
315 state.secondary_tab_state.select(
316 choice.index(),
317 Instant::now(),
318 material::widget::tabs::Variant::Secondary,
319 );
320 Task::none()
321 }
322 Message::MenuPressed => {
323 state.navigation.toggle_menu_now();
324 Task::none()
325 }
326 Message::DialogOpened => {
327 state.alert_dialog.show(Instant::now());
328 Task::none()
329 }
330 Message::DialogDismissed => {
331 state.alert_dialog.dismiss(Instant::now());
332 Task::none()
333 }
334 Message::DialogConfirmed => {
335 state.alert_dialog.dismiss(Instant::now());
336 state.count += 1;
337 Task::none()
338 }
339 Message::ShowSnackbar => {
340 state.snackbar.show(Instant::now());
341 Task::none()
342 }
343 Message::SnackbarUndo => {
344 state.count -= 1;
345 state.snackbar.dismiss(Instant::now());
346 Task::none()
347 }
348 Message::WindowResized(size) => {
349 state.window_size = size;
350 Task::none()
351 }
352 Message::ThemeChanged(action) => {
353 state.theme_controller.update(
354 action,
355 state.window_size,
356 theme_picker::bottom_margin_for_navigation_layout(
357 state.adaptive_navigation_layout(),
358 ),
359 Instant::now(),
360 );
361 Task::none()
362 }
363 Message::Frame(now) => {
364 let _ = state.theme_controller.advance(now);
365 let _ = state.navigation.advance(now);
366 let _ = state.segment_state.advance(now);
367 let _ = state.primary_tab_state.advance(now);
368 let _ = state.secondary_tab_state.advance(now);
369 state.progress_animation.advance(now);
370 let _ = state.alert_dialog.advance(now);
371 let _ = state.snackbar.advance(now);
372 let _ = state.date_picker.advance(now);
373 let _ = state.date_range_picker.advance(now);
374 let _ = state.time_picker.advance(now);
375 Task::none()
376 }
377 }
378}Sourcepub fn line_count(&self) -> usize
pub fn line_count(&self) -> usize
Returns the amount of lines of the Content.
Sourcepub fn line(&self, index: usize) -> Option<Line<'_>>
pub fn line(&self, index: usize) -> Option<Line<'_>>
Returns the text of the line at the given index, if it exists.
Sourcepub fn lines(&self) -> impl Iterator<Item = Line<'_>>
pub fn lines(&self) -> impl Iterator<Item = Line<'_>>
Returns an iterator of the text of the lines in the Content.
Sourcepub fn line_ending(&self) -> Option<LineEnding>
pub fn line_ending(&self) -> Option<LineEnding>
Returns the kind of LineEnding used for separating lines in the Content.
Trait Implementations§
Auto Trait Implementations§
impl<R = Renderer<Renderer, Renderer>> !Freeze for Content<R>
impl<R = Renderer<Renderer, Renderer>> !RefUnwindSafe for Content<R>
impl<R = Renderer<Renderer, Renderer>> !Sync for Content<R>
impl<R> Send for Content<R>
impl<R> Unpin for Content<R>
impl<R> UnsafeUnpin for Content<R>
impl<R> UnwindSafe for Content<R>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Turns some type into the initial state of some
Application.