From f98328f4f1ee58b6288e4f19d7475e7eeb9a7ba7 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector@hecrj.dev>
Date: Wed, 4 Sep 2024 21:25:59 +0200
Subject: Add `text::Wrapping` support

Co-authored-by: Neeraj Jaiswal <neerajj85@gmail.com>
---
 examples/editor/src/main.rs  | 20 +++++++++++++++++++-
 examples/styling/src/main.rs |  2 +-
 examples/tour/src/main.rs    |  2 +-
 3 files changed, 21 insertions(+), 3 deletions(-)

(limited to 'examples')

diff --git a/examples/editor/src/main.rs b/examples/editor/src/main.rs
index aa07b328..5f12aec5 100644
--- a/examples/editor/src/main.rs
+++ b/examples/editor/src/main.rs
@@ -2,7 +2,7 @@ use iced::highlighter;
 use iced::keyboard;
 use iced::widget::{
     self, button, column, container, horizontal_space, pick_list, row, text,
-    text_editor, tooltip,
+    text_editor, toggler, tooltip,
 };
 use iced::{Center, Element, Fill, Font, Subscription, Task, Theme};
 
@@ -24,6 +24,7 @@ struct Editor {
     file: Option<PathBuf>,
     content: text_editor::Content,
     theme: highlighter::Theme,
+    word_wrap: bool,
     is_loading: bool,
     is_dirty: bool,
 }
@@ -32,6 +33,7 @@ struct Editor {
 enum Message {
     ActionPerformed(text_editor::Action),
     ThemeSelected(highlighter::Theme),
+    WordWrapToggled(bool),
     NewFile,
     OpenFile,
     FileOpened(Result<(PathBuf, Arc<String>), Error>),
@@ -46,6 +48,7 @@ impl Editor {
                 file: None,
                 content: text_editor::Content::new(),
                 theme: highlighter::Theme::SolarizedDark,
+                word_wrap: true,
                 is_loading: true,
                 is_dirty: false,
             },
@@ -76,6 +79,11 @@ impl Editor {
 
                 Task::none()
             }
+            Message::WordWrapToggled(word_wrap) => {
+                self.word_wrap = word_wrap;
+
+                Task::none()
+            }
             Message::NewFile => {
                 if !self.is_loading {
                     self.file = None;
@@ -152,6 +160,11 @@ impl Editor {
                 self.is_dirty.then_some(Message::SaveFile)
             ),
             horizontal_space(),
+            toggler(
+                Some("Word Wrap"),
+                self.word_wrap,
+                Message::WordWrapToggled
+            ),
             pick_list(
                 highlighter::Theme::ALL,
                 Some(self.theme),
@@ -189,6 +202,11 @@ impl Editor {
             text_editor(&self.content)
                 .height(Fill)
                 .on_action(Message::ActionPerformed)
+                .wrapping(if self.word_wrap {
+                    text::Wrapping::Word
+                } else {
+                    text::Wrapping::None
+                })
                 .highlight(
                     self.file
                         .as_deref()
diff --git a/examples/styling/src/main.rs b/examples/styling/src/main.rs
index 527aaa29..e19d5cf7 100644
--- a/examples/styling/src/main.rs
+++ b/examples/styling/src/main.rs
@@ -78,7 +78,7 @@ impl Styling {
             .on_toggle(Message::CheckboxToggled);
 
         let toggler = toggler(
-            String::from("Toggle me!"),
+            Some("Toggle me!"),
             self.toggler_value,
             Message::TogglerToggled,
         )
diff --git a/examples/tour/src/main.rs b/examples/tour/src/main.rs
index ee4754e6..0dd588fe 100644
--- a/examples/tour/src/main.rs
+++ b/examples/tour/src/main.rs
@@ -358,7 +358,7 @@ impl Tour {
             .push("A toggler is mostly used to enable or disable something.")
             .push(
                 Container::new(toggler(
-                    "Toggle me to continue...".to_owned(),
+                    Some("Toggle me to continue..."),
                     self.toggler,
                     Message::TogglerChanged,
                 ))
-- 
cgit