|
|
@@ -56,6 +56,7 @@ pub struct Text {
|
|
|
font_size: PropertyFloat32,
|
|
|
text_color: PropertyColor,
|
|
|
lineheight: PropertyFloat32,
|
|
|
+ letter_spacing: PropertyFloat32,
|
|
|
text_align: PropertyEnum,
|
|
|
overflow_wrap: PropertyEnum,
|
|
|
use_i18n: PropertyBool,
|
|
|
@@ -85,6 +86,8 @@ impl Text {
|
|
|
let font_size = PropertyFloat32::wrap(node_ref, Role::Internal, "font_size", 0).unwrap();
|
|
|
let text_color = PropertyColor::wrap(node_ref, Role::Internal, "text_color").unwrap();
|
|
|
let lineheight = PropertyFloat32::wrap(node_ref, Role::Internal, "lineheight", 0).unwrap();
|
|
|
+ let letter_spacing =
|
|
|
+ PropertyFloat32::wrap(node_ref, Role::Internal, "letter_spacing", 0).unwrap();
|
|
|
let text_align = PropertyEnum::wrap(node_ref, Role::Internal, "text_align", 0).unwrap();
|
|
|
let overflow_wrap =
|
|
|
PropertyEnum::wrap(node_ref, Role::Internal, "overflow_wrap", 0).unwrap();
|
|
|
@@ -109,6 +112,7 @@ impl Text {
|
|
|
font_size,
|
|
|
text_color,
|
|
|
lineheight,
|
|
|
+ letter_spacing,
|
|
|
text_align,
|
|
|
overflow_wrap,
|
|
|
use_i18n,
|
|
|
@@ -125,6 +129,7 @@ impl Text {
|
|
|
let text = self.text.get();
|
|
|
let font_size = self.font_size.get();
|
|
|
let lineheight = self.lineheight.get();
|
|
|
+ let letter_spacing = self.letter_spacing.get();
|
|
|
let text_color = self.text_color.get();
|
|
|
let window_scale = self.window_scale.get();
|
|
|
let width = self.rect.get_width();
|
|
|
@@ -158,6 +163,7 @@ impl Text {
|
|
|
text_color,
|
|
|
font_size,
|
|
|
lineheight,
|
|
|
+ letter_spacing,
|
|
|
window_scale,
|
|
|
Some(width),
|
|
|
&[],
|
|
|
@@ -197,6 +203,7 @@ impl Text {
|
|
|
self.text_color.eval(atom).expect("text_color");
|
|
|
self.font_size.eval(atom).expect("font_size");
|
|
|
self.lineheight.eval(atom).expect("lineheight");
|
|
|
+ self.letter_spacing.eval(atom).expect("letter_spacing");
|
|
|
|
|
|
// Layout depends on the width, so a rect change invalidates the
|
|
|
// layout even if the text itself did not change. Compute under the
|
|
|
@@ -269,6 +276,10 @@ impl UIObject for Text {
|
|
|
self_.draw_cache.clear();
|
|
|
self_.redraw.trigger();
|
|
|
});
|
|
|
+ on_modify.when_change_external(self.letter_spacing.prop(), |self_, _| async move {
|
|
|
+ self_.draw_cache.clear();
|
|
|
+ self_.redraw.trigger();
|
|
|
+ });
|
|
|
on_modify.when_change_external(self.text_color.prop(), |self_, _| async move {
|
|
|
self_.draw_cache.clear();
|
|
|
self_.redraw.trigger();
|