def extract(cls, context: StyleParsingContext, xml_attrib: str): s = xml_attrib.split(" ") if len(s) == 1: before = end = after = start = StyleProperties.ttml_length_to_model( context, s[0]) elif len(s) == 2: before = after = StyleProperties.ttml_length_to_model( context, s[0]) end = start = StyleProperties.ttml_length_to_model( context, s[1]) elif len(s) == 3: before = StyleProperties.ttml_length_to_model(context, s[0]) end = start = StyleProperties.ttml_length_to_model( context, s[1]) after = StyleProperties.ttml_length_to_model(context, s[2]) elif len(s) == 4: before = StyleProperties.ttml_length_to_model(context, s[0]) end = StyleProperties.ttml_length_to_model(context, s[1]) after = StyleProperties.ttml_length_to_model(context, s[2]) start = StyleProperties.ttml_length_to_model(context, s[3]) else: raise ValueError("Bad syntax") return styles.PaddingType(before, end, after, start)
def test_compute_padding(self): doc = model.ContentDocument() r1 = model.Region("r1", doc) r1.set_style(styles.StyleProperties.ShowBackground, styles.ShowBackgroundType.always) r1.set_style( styles.StyleProperties.Extent, styles.ExtentType( width=styles.LengthType(50, styles.LengthType.Units.pct), height=styles.LengthType(25, styles.LengthType.Units.pct) ) ) r1.set_style( styles.StyleProperties.Padding, styles.PaddingType( before=styles.LengthType(5, styles.LengthType.Units.pct), after=styles.LengthType(10, styles.LengthType.Units.pct), start=styles.LengthType(15, styles.LengthType.Units.pct), end=styles.LengthType(20, styles.LengthType.Units.pct) ) ) doc.put_region(r1) isd = ISD.from_model(doc, 0) region = list(isd.iter_regions())[0] padding: styles.PaddingType = region.get_style(styles.StyleProperties.Padding) self.assertAlmostEqual(padding.before.value, 25 * 0.05) self.assertAlmostEqual(padding.after.value, 25 * 0.10) self.assertAlmostEqual(padding.start.value, 50 * 0.15) self.assertAlmostEqual(padding.end.value, 50 * 0.2)
def test_tts_padding(self): padding = styles.PaddingType(before=styles.LengthType(10.1), end=styles.LengthType(20.2), after=styles.LengthType(30.3), start=styles.LengthType(40.4)) self.assertEqual( _get_set_style(imsc_styles.StyleProperties.Padding, padding), r"10.1% 20.2% 30.3% 40.4%")
def test_style_property_padding_has_px(self): prop = styles.PaddingType( before=styles.LengthType(10.1, styles.LengthType.units.px), end=styles.LengthType(20.2, styles.LengthType.units.em), after=styles.LengthType(30.3, styles.LengthType.units.em), start=styles.LengthType(40.4, styles.LengthType.units.em)) self.assertEqual(imsc_styles.StyleProperties.Padding.has_px(prop), True) prop = styles.PaddingType( before=styles.LengthType(10.1, styles.LengthType.units.em), end=styles.LengthType(20.2, styles.LengthType.units.px), after=styles.LengthType(30.3, styles.LengthType.units.em), start=styles.LengthType(40.4, styles.LengthType.units.em)) self.assertEqual(imsc_styles.StyleProperties.Padding.has_px(prop), True) prop = styles.PaddingType( before=styles.LengthType(10.1, styles.LengthType.units.em), end=styles.LengthType(20.2, styles.LengthType.units.em), after=styles.LengthType(30.3, styles.LengthType.units.px), start=styles.LengthType(40.4, styles.LengthType.units.em)) self.assertEqual(imsc_styles.StyleProperties.Padding.has_px(prop), True) prop = styles.PaddingType( before=styles.LengthType(10.1, styles.LengthType.units.em), end=styles.LengthType(20.2, styles.LengthType.units.em), after=styles.LengthType(30.3, styles.LengthType.units.em), start=styles.LengthType(40.4, styles.LengthType.units.px)) self.assertEqual(imsc_styles.StyleProperties.Padding.has_px(prop), True) prop = styles.PaddingType( before=styles.LengthType(10.1, styles.LengthType.units.em), end=styles.LengthType(20.2, styles.LengthType.units.em), after=styles.LengthType(30.3, styles.LengthType.units.em), start=styles.LengthType(40.4, styles.LengthType.units.em)) self.assertEqual(imsc_styles.StyleProperties.Padding.has_px(prop), False)