sub filter_text () {
filter_element('text', qw(x y font-family text-align text-anchor));
- $node->setAttribute('font-size', "{{ label_font_size }}px");
+ $node->setAttribute('font-size', "{{ label_options.size }}px");
$node->setAttribute('y', "{{ label_y_adjust }}");
$node->setAttribute('fill', "{{ label_options.colour }}");
$node->setAttribute('pointer-events', 'none');
* ``label.colour`` [string, defaults to black]:
Colour to write the ``labels`` text strings.
+ * ``label.size`` [number, default 8]:
+ Font size for the ``labels`` text strings (in pixeels, svg ``px``).
+
* ``cooldown``: Duration of the cooldown time.
[duration - number(s) with units; default "4s"]
#[derive(Serialize, Debug)]
struct OverlayTemplateContext<'c> {
label_text: &'c str,
- label_font_size: f64,
label_y_adjust: f64,
label_options: &'c TextOptions,
cooldown_active: bool,
index_vec!["".into()]
};
- let text_options = self.label.resolve()?;
+ let text_options = self.label.resolve(DEFAULT_LABEL_FONT_SIZE)?;
if_let!{ Some((nfaces,_)) = nfaces;
else throw!(SpecError::MultipleFacesRequired) };
default()
};
- let label_font_size = DEFAULT_LABEL_FONT_SIZE;
-
-
let tc = OverlayTemplateContext {
label_text: label,
label_options: &self.text_options,
- label_font_size,
- label_y_adjust: label_font_size * SVG_FONT_Y_ADJUST_OF_FONT_SIZE,
+ label_y_adjust: self.text_options.size * SVG_FONT_Y_ADJUST_OF_FONT_SIZE,
cooldown_active,
radius: self.cooldown_radius,
#[derive(Debug,Default,Clone,Serialize,Deserialize)]
pub struct TextOptionsSpec {
pub colour: Option<ColourSpec>,
+ pub size: Option<f64>,
}
#[derive(Debug,Copy,Clone,Eq,PartialEq)]
impl TextOptionsSpec {
#[throws(SpecError)]
/// Default colour is always black
- pub fn resolve(&self) -> TextOptions {
- let TextOptionsSpec { colour } = self;
+ pub fn resolve(&self, default_size: f64) -> TextOptions {
+ let TextOptionsSpec { colour, size } = self;
let colour = colour.resolve()?;
- TextOptions { colour }
+ let size = size.unwrap_or(default_size);
+ TextOptions { colour, size }
}
}
#[derive(Debug,Serialize,Deserialize,Clone)]
pub struct TextOptions {
pub colour: Colour,
+ pub size: f64, // px
}
/// Fudge factor