Skip to content
This repository has been archived by the owner on Oct 17, 2024. It is now read-only.

Commit

Permalink
Add support for line wrapping to Text
Browse files Browse the repository at this point in the history
  • Loading branch information
david-swift committed Jan 4, 2024
1 parent 4dc5d07 commit 9cbf887
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
14 changes: 13 additions & 1 deletion Sources/Adwaita/View/Text.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public struct Text: Widget {

/// The content.
var text: String
/// Whether line wrapping is allowed.
var lineWrapping = false

/// Initialize a text widget.
/// - Parameter text: The content.
Expand All @@ -26,13 +28,23 @@ public struct Text: Widget {
public func update(_ storage: ViewStorage, modifiers: [(View) -> View]) {
if let label = storage.view as? MarkupLabel {
label.setText(text)
_ = label.wrap(lineWrapping)
}
}

/// Get the container of the text widget.
/// - Returns: The view storage.
public func container(modifiers: [(View) -> View]) -> ViewStorage {
.init(MarkupLabel(self.text))
.init(MarkupLabel(self.text).wrap(lineWrapping))
}

/// Line wrapping allows the text view to span multiple lines if the width is narrow.
/// - Parameter wrap: Whether to allow line wrapping.
/// - Returns: The text.
public func wrap(_ wrap: Bool = true) -> Self {
var newSelf = self
newSelf.lineWrapping = wrap
return newSelf
}

}
5 changes: 5 additions & 0 deletions user-manual/Information/Widgets.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ This is an overview of the available widgets and other components in _Adwaita_.
| ---------------------------- | --------------------------------------------------------------------------------------- |
| `headerBarTitle(view:)` | Customize the title view in the header bar. |

### `Text` Modifiers
| Syntax | Description |
| ---------------------------- | --------------------------------------------------------------------------------------------------- |
| `wrap(_:)` | Enable or disable line wrapping (expanding the text view to multiple lines if the width is narrow). |

### `Toggle` Modifiers
| Syntax | Description |
| ---------------------------- | --------------------------------------------------------------------------------------- |
Expand Down

0 comments on commit 9cbf887

Please sign in to comment.