summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar sumibi-yakitori <nekosoft360@gmail.com>2020-01-27 04:28:40 +0900
committerLibravatar sumibi-yakitori <nekosoft360@gmail.com>2020-01-27 04:28:40 +0900
commit713ed3aca1d5fb23dc9c2a75b1f61fd8bd439e01 (patch)
tree52686a0017b002fc7ccf93d01d43f467888488d3 /wgpu
parent0bdf1f23b5ab4348cccb295fcc4e9b00a65e772a (diff)
downloadiced-713ed3aca1d5fb23dc9c2a75b1f61fd8bd439e01.tar.gz
iced-713ed3aca1d5fb23dc9c2a75b1f61fd8bd439e01.tar.bz2
iced-713ed3aca1d5fb23dc9c2a75b1f61fd8bd439e01.zip
Custom fonts can be set in the text input.
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/renderer/widget/text_input.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/wgpu/src/renderer/widget/text_input.rs b/wgpu/src/renderer/widget/text_input.rs
index 8b774a48..e2a1b3a9 100644
--- a/wgpu/src/renderer/widget/text_input.rs
+++ b/wgpu/src/renderer/widget/text_input.rs
@@ -14,11 +14,11 @@ impl text_input::Renderer for Renderer {
20
}
- fn measure_value(&self, value: &str, size: u16) -> f32 {
+ fn measure_value(&self, value: &str, size: u16, font: Font) -> f32 {
let (mut width, _) = self.text_pipeline.measure(
value,
f32::from(size),
- Font::Default,
+ font,
Size::INFINITY,
);
@@ -38,6 +38,7 @@ impl text_input::Renderer for Renderer {
size: u16,
value: &text_input::Value,
state: &text_input::State,
+ font: Font,
) -> f32 {
if state.is_focused() {
let (_, offset) = measure_cursor_and_scroll_offset(
@@ -46,6 +47,7 @@ impl text_input::Renderer for Renderer {
value,
size,
state.cursor_position(value),
+ font,
);
offset
@@ -60,6 +62,7 @@ impl text_input::Renderer for Renderer {
text_bounds: Rectangle,
cursor_position: Point,
size: u16,
+ font: Font,
placeholder: &str,
value: &text_input::Value,
state: &text_input::State,
@@ -97,7 +100,7 @@ impl text_input::Renderer for Renderer {
style_sheet.value_color()
}
.into(),
- font: Font::Default,
+ font,
bounds: Rectangle {
width: f32::INFINITY,
..text_bounds
@@ -114,6 +117,7 @@ impl text_input::Renderer for Renderer {
value,
size,
state.cursor_position(value),
+ font,
);
let cursor = Primitive::Quad {
@@ -164,12 +168,14 @@ fn measure_cursor_and_scroll_offset(
value: &text_input::Value,
size: u16,
cursor_index: usize,
+ font: Font,
) -> (f32, f32) {
use iced_native::text_input::Renderer;
let text_before_cursor = value.until(cursor_index).to_string();
- let text_value_width = renderer.measure_value(&text_before_cursor, size);
+ let text_value_width =
+ renderer.measure_value(&text_before_cursor, size, font);
let offset = ((text_value_width + 5.0) - text_bounds.width).max(0.0);
(text_value_width, offset)