Exemplo n.º 1
0
        def extract(cls, context: StyleParsingContext, xml_attrib: str):

            (h_edge, h_offset, v_edge,
             v_offset) = utils.parse_position(xml_attrib)

            if h_edge == "right":
                if h_offset.units is styles.LengthType.Units.px:
                    h_offset = styles.LengthType(
                        context.doc.get_px_resolution().width - h_offset.value,
                        h_offset.units)
                elif h_offset.units is styles.LengthType.Units.pct or h_offset.units is styles.LengthType.Units.rw:
                    h_offset = styles.LengthType(100 - h_offset.value,
                                                 h_offset.units)
                else:
                    raise ValueError(
                        "Units other than px, pct, rh, rw used in tts:position"
                    )

            if v_edge == "bottom":
                if v_offset.units is styles.LengthType.Units.px:
                    v_offset = styles.LengthType(
                        context.doc.get_px_resolution().height -
                        v_offset.value, v_offset.units)
                elif v_offset.units is styles.LengthType.Units.pct or v_offset.units is styles.LengthType.Units.rh:
                    v_offset = styles.LengthType(100 - v_offset.value,
                                                 v_offset.units)
                else:
                    raise ValueError(
                        "Units other than px, pct, rh, rw used in tts:position"
                    )

            return styles.PositionType(x=h_offset, y=v_offset)
Exemplo n.º 2
0
        def extract(cls, context: StyleParsingContext, xml_attrib: str):

            if xml_attrib == "auto":

                r = styles.PositionType(
                    x=styles.LengthType(0, styles.LengthType.Units.pct),
                    y=styles.LengthType(0, styles.LengthType.Units.pct))

            else:
                s = xml_attrib.split(" ")

                if len(s) != 2:
                    raise ValueError("tts:origin has not two components")

                r = styles.PositionType(
                    x=StyleProperties.ttml_length_to_model(context, s[0]),
                    y=StyleProperties.ttml_length_to_model(context, s[1]))

            return r
Exemplo n.º 3
0
    def extract(cls, context: StyleParsingContext, xml_attrib: str):

      (h_edge, h_offset, v_edge, v_offset) = utils.parse_position(xml_attrib)

      return styles.PositionType(
        h_offset=h_offset,
        v_offset=v_offset,
        h_edge=styles.PositionType.HEdge(h_edge),
        v_edge=styles.PositionType.VEdge(v_edge)
      )
Exemplo n.º 4
0
    def test_style_property_Origin_has_px(self):
        prop = styles.PositionType(
            styles.LengthType(1, styles.LengthType.units.px),
            styles.LengthType(1, styles.LengthType.units.em))
        self.assertEqual(imsc_styles.StyleProperties.Origin.has_px(prop), True)

        prop = styles.PositionType(
            styles.LengthType(1, styles.LengthType.units.px),
            styles.LengthType(1, styles.LengthType.units.px))
        self.assertEqual(imsc_styles.StyleProperties.Origin.has_px(prop), True)

        prop = styles.PositionType(
            styles.LengthType(1, styles.LengthType.units.em),
            styles.LengthType(1, styles.LengthType.units.px))
        self.assertEqual(imsc_styles.StyleProperties.Origin.has_px(prop), True)

        prop = styles.PositionType(
            styles.LengthType(1, styles.LengthType.units.em),
            styles.LengthType(1, styles.LengthType.units.em))
        self.assertEqual(imsc_styles.StyleProperties.Origin.has_px(prop),
                         False)
Exemplo n.º 5
0
        def extract(cls, context: StyleParsingContext, xml_attrib: str):

            return styles.PositionType(x=styles.LengthType(),
                                       y=styles.LengthType())