summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-10 01:34:22 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-10 01:39:36 +0200
commitb549b509c9454944dc629c4510b7f7e92ec21085 (patch)
tree898d585d046a0bfb509105ef648c4c5fef760d01 /wgpu
parent19f6a5e2fd685c76a06576e45c64e7c9e3b3a57f (diff)
downloadiced-b549b509c9454944dc629c4510b7f7e92ec21085.tar.gz
iced-b549b509c9454944dc629c4510b7f7e92ec21085.tar.bz2
iced-b549b509c9454944dc629c4510b7f7e92ec21085.zip
Align text in `iced_wgpu` on a case-by-case basis
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/renderer.rs25
-rw-r--r--wgpu/src/renderer/widget/checkbox.rs6
-rw-r--r--wgpu/src/renderer/widget/text.rs14
-rw-r--r--wgpu/src/renderer/widget/text_input.rs1
4 files changed, 23 insertions, 23 deletions
diff --git a/wgpu/src/renderer.rs b/wgpu/src/renderer.rs
index e847cb64..c886bed0 100644
--- a/wgpu/src/renderer.rs
+++ b/wgpu/src/renderer.rs
@@ -152,31 +152,14 @@ impl Renderer {
horizontal_alignment,
vertical_alignment,
} => {
- let x = match horizontal_alignment {
- iced_native::HorizontalAlignment::Left => bounds.x,
- iced_native::HorizontalAlignment::Center => {
- bounds.x + bounds.width / 2.0
- }
- iced_native::HorizontalAlignment::Right => {
- bounds.x + bounds.width
- }
- };
-
- let y = match vertical_alignment {
- iced_native::VerticalAlignment::Top => bounds.y,
- iced_native::VerticalAlignment::Center => {
- bounds.y + bounds.height / 2.0
- }
- iced_native::VerticalAlignment::Bottom => {
- bounds.y + bounds.height
- }
- };
-
let layer = layers.last_mut().unwrap();
layer.text.push(wgpu_glyph::Section {
text: &content,
- screen_position: (x + translation.x, y + translation.y),
+ screen_position: (
+ bounds.x + translation.x,
+ bounds.y + translation.y,
+ ),
bounds: (bounds.width, bounds.height),
scale: wgpu_glyph::Scale { x: *size, y: *size },
color: color.into_linear(),
diff --git a/wgpu/src/renderer/widget/checkbox.rs b/wgpu/src/renderer/widget/checkbox.rs
index ecacf1de..c0f1bf21 100644
--- a/wgpu/src/renderer/widget/checkbox.rs
+++ b/wgpu/src/renderer/widget/checkbox.rs
@@ -38,7 +38,11 @@ impl checkbox::Renderer for Renderer {
content: crate::text::CHECKMARK_ICON.to_string(),
font: crate::text::BUILTIN_ICONS,
size: bounds.height * 0.7,
- bounds,
+ bounds: Rectangle {
+ x: bounds.center_x(),
+ y: bounds.center_y(),
+ ..bounds
+ },
color: style.checkmark_color,
horizontal_alignment: HorizontalAlignment::Center,
vertical_alignment: VerticalAlignment::Center,
diff --git a/wgpu/src/renderer/widget/text.rs b/wgpu/src/renderer/widget/text.rs
index 33e549cd..80bff574 100644
--- a/wgpu/src/renderer/widget/text.rs
+++ b/wgpu/src/renderer/widget/text.rs
@@ -31,11 +31,23 @@ impl text::Renderer for Renderer {
horizontal_alignment: HorizontalAlignment,
vertical_alignment: VerticalAlignment,
) -> Self::Output {
+ let x = match horizontal_alignment {
+ iced_native::HorizontalAlignment::Left => bounds.x,
+ iced_native::HorizontalAlignment::Center => bounds.center_x(),
+ iced_native::HorizontalAlignment::Right => bounds.x + bounds.width,
+ };
+
+ let y = match vertical_alignment {
+ iced_native::VerticalAlignment::Top => bounds.y,
+ iced_native::VerticalAlignment::Center => bounds.center_y(),
+ iced_native::VerticalAlignment::Bottom => bounds.y + bounds.height,
+ };
+
(
Primitive::Text {
content: content.to_string(),
size: f32::from(size),
- bounds,
+ bounds: Rectangle { x, y, ..bounds },
color: color.unwrap_or(defaults.text.color),
font,
horizontal_alignment,
diff --git a/wgpu/src/renderer/widget/text_input.rs b/wgpu/src/renderer/widget/text_input.rs
index 1f804a1a..6f72db68 100644
--- a/wgpu/src/renderer/widget/text_input.rs
+++ b/wgpu/src/renderer/widget/text_input.rs
@@ -109,6 +109,7 @@ impl text_input::Renderer for Renderer {
},
font,
bounds: Rectangle {
+ y: text_bounds.center_y(),
width: f32::INFINITY,
..text_bounds
},