From 2c8ba652a7929ac6c2af28ac60a8bd4b8e8e2f10 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 14 Nov 2019 03:34:41 +0100 Subject: Draw proper checkmark for `Checkbox` in `iced_wgpu` --- wgpu/src/renderer/widget/checkbox.rs | 17 +++++++++-------- wgpu/src/text.rs | 13 ++++++++++--- wgpu/src/text/icons.ttf | Bin 0 -> 4912 bytes 3 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 wgpu/src/text/icons.ttf (limited to 'wgpu') diff --git a/wgpu/src/renderer/widget/checkbox.rs b/wgpu/src/renderer/widget/checkbox.rs index c2d7911c..aedb821c 100644 --- a/wgpu/src/renderer/widget/checkbox.rs +++ b/wgpu/src/renderer/widget/checkbox.rs @@ -74,14 +74,15 @@ impl checkbox::Renderer for Renderer { ( Primitive::Group { primitives: if checkbox.is_checked { - // TODO: Draw an actual icon - let (check, _) = text::Renderer::draw( - self, - &Text::new("X") - .horizontal_alignment(HorizontalAlignment::Center) - .vertical_alignment(VerticalAlignment::Center), - checkbox_layout, - ); + let check = Primitive::Text { + content: crate::text::CHECKMARK_ICON.to_string(), + font: crate::text::BUILTIN_ICONS, + size: checkbox_bounds.height * 0.7, + bounds: checkbox_bounds, + color: [0.3, 0.3, 0.3].into(), + horizontal_alignment: HorizontalAlignment::Center, + vertical_alignment: VerticalAlignment::Center, + }; vec![checkbox_border, checkbox_box, check, label] } else { diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 81fc1fb5..da070f5c 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -5,6 +5,13 @@ use crate::Transformation; use std::cell::RefCell; use std::collections::HashMap; +pub const BUILTIN_ICONS: iced_native::Font = iced_native::Font::External { + name: "iced_wgpu icons", + bytes: include_bytes!("text/icons.ttf"), +}; + +pub const CHECKMARK_ICON: char = '\u{F00C}'; + pub struct Pipeline { draw_brush: RefCell>, draw_font_map: RefCell>, @@ -91,10 +98,10 @@ impl Pipeline { // TODO: This is a bit hacky. We are loading the debug font as the // first font in the `draw_brush`. The `measure_brush` does not - // contain this font, hence we subtract 1. + // contain this, hence we subtract 1. // - // This should go away once we improve the debug view and integrate - // it as just another UI app. + // This should go away once we unify `draw_brush` and + // `measure_brush`. font_id: wgpu_glyph::FontId(font_id - 1), ..Default::default() }; diff --git a/wgpu/src/text/icons.ttf b/wgpu/src/text/icons.ttf new file mode 100644 index 00000000..1c832f86 Binary files /dev/null and b/wgpu/src/text/icons.ttf differ -- cgit