diff --git a/pptx/oxml/__init__.py b/pptx/oxml/__init__.py index bb71d70d8..f02f7b7e2 100644 --- a/pptx/oxml/__init__.py +++ b/pptx/oxml/__init__.py @@ -235,19 +235,22 @@ def register_element_cls(nsptagname, cls): from .shapes.shared import ( CT_ApplicationNonVisualDrawingProps, CT_LineProperties, - CT_NonVisualDrawingProps, CT_Placeholder, CT_Point2D, CT_PositiveSize2D, + CT_PresetLineDashProperties, CT_NonVisualDrawingProps, + CT_Placeholder, CT_Point2D, CT_PositiveSize2D, CT_ShapeProperties, CT_Transform2D ) -register_element_cls('a:ext', CT_PositiveSize2D) -register_element_cls('a:ln', CT_LineProperties) -register_element_cls('a:off', CT_Point2D) -register_element_cls('a:xfrm', CT_Transform2D) -register_element_cls('c:spPr', CT_ShapeProperties) -register_element_cls('p:cNvPr', CT_NonVisualDrawingProps) -register_element_cls('p:nvPr', CT_ApplicationNonVisualDrawingProps) -register_element_cls('p:ph', CT_Placeholder) -register_element_cls('p:spPr', CT_ShapeProperties) -register_element_cls('p:xfrm', CT_Transform2D) +register_element_cls('a:ext', CT_PositiveSize2D) +register_element_cls('a:ln', CT_LineProperties) +register_element_cls('a:prstDash', CT_PresetLineDashProperties) +register_element_cls('a:off', CT_Point2D) +register_element_cls('a:xfrm', CT_Transform2D) +register_element_cls('c:spPr', CT_ShapeProperties) +register_element_cls('p:cNvPr', CT_NonVisualDrawingProps) +register_element_cls('p:nvPr', CT_ApplicationNonVisualDrawingProps) +register_element_cls('p:ph', CT_Placeholder) +register_element_cls('p:spPr', CT_ShapeProperties) +register_element_cls('p:xfrm', CT_Transform2D) + from .shapes.table import ( diff --git a/pptx/oxml/shapes/shared.py b/pptx/oxml/shapes/shared.py index 690b93a64..d6eed7eb9 100644 --- a/pptx/oxml/shapes/shared.py +++ b/pptx/oxml/shapes/shared.py @@ -10,7 +10,8 @@ from ..ns import qn from ..simpletypes import ( ST_Angle, ST_Coordinate, ST_Direction, ST_DrawingElementId, ST_LineWidth, - ST_PlaceholderSize, ST_PositiveCoordinate, XsdString, XsdUnsignedInt + ST_PlaceholderSize, ST_PositiveCoordinate, XsdString, XsdUnsignedInt, + ST_PresetLineDashVal ) from ...util import Emu from ..xmlchemy import ( @@ -212,6 +213,8 @@ class CT_LineProperties(BaseOxmlElement): 'a:headEnd', 'a:tailEnd', 'a:extLst' ) ) + eg_lineDashProperties = ZeroOrOne('a:prstDash', successors=()) + w = OptionalAttribute('w', ST_LineWidth, default=Emu(0)) @property @@ -221,6 +224,12 @@ def eg_fillProperties(self): """ return self.eg_lineFillProperties +class CT_PresetLineDashProperties(BaseOxmlElement): + """ + Custom element class for element + """ + val = OptionalAttribute('val', ST_PresetLineDashVal, + default=ST_PresetLineDashVal.SOLID) class CT_NonVisualDrawingProps(BaseOxmlElement): """ diff --git a/pptx/oxml/simpletypes.py b/pptx/oxml/simpletypes.py index 7a4b1391f..fceabb75b 100644 --- a/pptx/oxml/simpletypes.py +++ b/pptx/oxml/simpletypes.py @@ -760,3 +760,22 @@ def convert_from_xml(cls, str_value): }[units_part] emu_value = Emu(int(round(quantity * multiplier))) return emu_value + + +class ST_PresetLineDashVal(XsdToken): + """ + """ + SOLID = 'slide' + SYSDASH = 'sysDash' + SYSDOT = 'sysDot' + SYSDASHDOT = 'sysDashDot' + SYSDASHDOTDOT = 'sysDashDotDot' + DOT = 'dot' + DASH = 'dash' + LGDASH = 'lgDash' + DASHDOT = 'dashDot' + LGDASHDOT = 'lgDashDot' + LGDASHDOTDOT = 'lgDashDotDot' + + _members = (SOLID, SYSDASH, SYSDASHDOT, SYSDASHDOTDOT, + DOT, DASH, LGDASH, DASHDOT, LGDASHDOT, LGDASHDOTDOT)