summaryrefslogtreecommitdiffstats
path: root/native/src/renderer
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-14 16:59:19 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-14 17:00:38 +0700
commit3a0c503db99eb3d45ac971132904df419ee566b6 (patch)
tree7995e09ef75fb89f7146f4f490582b23193fdcd9 /native/src/renderer
parent03b34931383e701c39c653a7662a616fe21a0947 (diff)
downloadiced-3a0c503db99eb3d45ac971132904df419ee566b6.tar.gz
iced-3a0c503db99eb3d45ac971132904df419ee566b6.tar.bz2
iced-3a0c503db99eb3d45ac971132904df419ee566b6.zip
Implement `Widget::draw` for `Text`
Diffstat (limited to 'native/src/renderer')
-rw-r--r--native/src/renderer/null.rs11
-rw-r--r--native/src/renderer/text.rs20
2 files changed, 29 insertions, 2 deletions
diff --git a/native/src/renderer/null.rs b/native/src/renderer/null.rs
index 1ffca5c9..da758ebb 100644
--- a/native/src/renderer/null.rs
+++ b/native/src/renderer/null.rs
@@ -4,12 +4,13 @@ use crate::container;
use crate::pane_grid;
use crate::progress_bar;
use crate::radio;
+use crate::renderer::{self, Renderer};
use crate::scrollable;
use crate::slider;
use crate::text;
use crate::text_input;
use crate::toggler;
-use crate::{Font, Padding, Point, Rectangle, Renderer, Size};
+use crate::{Font, Padding, Point, Rectangle, Size};
/// A renderer that does nothing.
///
@@ -28,11 +29,17 @@ impl Renderer for Null {
type Defaults = ();
fn with_layer(&mut self, _bounds: Rectangle, _f: impl FnOnce(&mut Self)) {}
+
+ fn clear(&mut self) {}
}
-impl text::Renderer for Null {
+impl renderer::Text for Null {
type Font = Font;
+ fn fill_text(&mut self, _text: renderer::text::Section<'_, Self::Font>) {}
+}
+
+impl text::Renderer for Null {
fn default_size(&self) -> u16 {
20
}
diff --git a/native/src/renderer/text.rs b/native/src/renderer/text.rs
new file mode 100644
index 00000000..5c189d89
--- /dev/null
+++ b/native/src/renderer/text.rs
@@ -0,0 +1,20 @@
+use crate::alignment;
+use crate::{Color, Rectangle, Renderer};
+
+pub trait Text: Renderer {
+ /// The font type used.
+ type Font: Default + Copy;
+
+ fn fill_text(&mut self, section: Section<'_, Self::Font>);
+}
+
+#[derive(Debug, Clone, Copy)]
+pub struct Section<'a, Font> {
+ pub content: &'a str,
+ pub bounds: Rectangle,
+ pub size: Option<f32>,
+ pub color: Option<Color>,
+ pub font: Font,
+ pub horizontal_alignment: alignment::Horizontal,
+ pub vertical_alignment: alignment::Vertical,
+}