use crate::attrmap2::AttrMap2;
use crate::style::units::{
FontFamilyGeneric, FontPitch, FontStretch, FontStyle, FontVariant, FontWeight,
};
use crate::style::StyleOrigin;
use get_size2::GetSize;
#[derive(Clone, Debug, Default, GetSize)]
pub struct FontFaceDecl {
name: String,
origin: StyleOrigin,
attr: AttrMap2,
}
impl FontFaceDecl {
pub fn new_empty() -> Self {
Self {
name: "".to_string(),
origin: Default::default(),
attr: Default::default(),
}
}
pub fn new<S: AsRef<str>>(name: S) -> Self {
Self {
name: name.as_ref().to_string(),
origin: StyleOrigin::Content,
attr: Default::default(),
}
}
#[deprecated]
pub fn new_with_name<S: AsRef<str>>(name: S) -> Self {
Self::new(name)
}
pub fn set_name<V: AsRef<str>>(&mut self, name: V) {
self.name = name.as_ref().to_string();
}
pub fn name(&self) -> &String {
&self.name
}
pub fn set_origin(&mut self, origin: StyleOrigin) {
self.origin = origin;
}
pub fn origin(&self) -> StyleOrigin {
self.origin
}
pub fn attrmap(&self) -> &AttrMap2 {
&self.attr
}
pub fn attrmap_mut(&mut self) -> &mut AttrMap2 {
&mut self.attr
}
style_font_family_generic!(attr);
style_font_pitch!(attr);
svg_font_family!(attr);
svg_font_stretch!(attr);
svg_font_style!(attr);
svg_font_variant!(attr);
svg_font_weight!(attr);
}