From f153f5188fa5c85779cdfe843c27ccf16858e4ef Mon Sep 17 00:00:00 2001 From: Chih-Chuan Chan Date: Fri, 28 Aug 2015 17:26:48 -0400 Subject: [PATCH 1/3] Added dashed line properties --- pptx/oxml/__init__.py | 5 ++++- pptx/oxml/shapes/shared.py | 9 ++++++++- pptx/oxml/simpletypes.py | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/pptx/oxml/__init__.py b/pptx/oxml/__init__.py index bb71d70d8..383d8f4e6 100644 --- a/pptx/oxml/__init__.py +++ b/pptx/oxml/__init__.py @@ -235,11 +235,13 @@ 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:prstDash', CT_PresetLineDashProperties) register_element_cls('a:off', CT_Point2D) register_element_cls('a:xfrm', CT_Transform2D) register_element_cls('c:spPr', CT_ShapeProperties) @@ -250,6 +252,7 @@ def register_element_cls(nsptagname, cls): register_element_cls('p:xfrm', CT_Transform2D) + from .shapes.table import ( CT_Table, CT_TableCell, CT_TableCellProperties, CT_TableCol, CT_TableGrid, CT_TableProperties, CT_TableRow diff --git a/pptx/oxml/shapes/shared.py b/pptx/oxml/shapes/shared.py index 690b93a64..4ed79205e 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 ( @@ -221,6 +222,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..7e21a683d 100644 --- a/pptx/oxml/simpletypes.py +++ b/pptx/oxml/simpletypes.py @@ -760,3 +760,21 @@ 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' + 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)) From cbeb3fe1699e45a0d47c4631681de3e9a91a882a Mon Sep 17 00:00:00 2001 From: Chih-Chuan Chan Date: Fri, 28 Aug 2015 17:43:36 -0400 Subject: [PATCH 2/3] Fixed typo --- pptx/oxml/simpletypes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pptx/oxml/simpletypes.py b/pptx/oxml/simpletypes.py index 7e21a683d..717022462 100644 --- a/pptx/oxml/simpletypes.py +++ b/pptx/oxml/simpletypes.py @@ -777,4 +777,4 @@ class ST_PresetLineDashVal(XsdToken): LGDASHDOTDOT = 'lgDashDotDot' _members = (SOLID, SYSDASH, SYSDASHDOT, SYSDASHDOTDOT, - DOT, DASH, LGDASH, DASHDOT, LGDASHDOT, LGDASHDOTDOT)) + DOT, DASH, LGDASH, DASHDOT, LGDASHDOT, LGDASHDOTDOT) From 6f9eb91e5401c4deff2ac2b554903c31a6ce7557 Mon Sep 17 00:00:00 2001 From: Chih-Chuan Chan Date: Fri, 28 Aug 2015 18:10:54 -0400 Subject: [PATCH 3/3] Added EG_LineDashProperties --- pptx/oxml/__init__.py | 20 ++++++++++---------- pptx/oxml/shapes/shared.py | 2 ++ pptx/oxml/simpletypes.py | 1 + 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/pptx/oxml/__init__.py b/pptx/oxml/__init__.py index 383d8f4e6..f02f7b7e2 100644 --- a/pptx/oxml/__init__.py +++ b/pptx/oxml/__init__.py @@ -239,17 +239,17 @@ def register_element_cls(nsptagname, cls): 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: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) +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) diff --git a/pptx/oxml/shapes/shared.py b/pptx/oxml/shapes/shared.py index 4ed79205e..d6eed7eb9 100644 --- a/pptx/oxml/shapes/shared.py +++ b/pptx/oxml/shapes/shared.py @@ -213,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 diff --git a/pptx/oxml/simpletypes.py b/pptx/oxml/simpletypes.py index 717022462..fceabb75b 100644 --- a/pptx/oxml/simpletypes.py +++ b/pptx/oxml/simpletypes.py @@ -767,6 +767,7 @@ class ST_PresetLineDashVal(XsdToken): """ SOLID = 'slide' SYSDASH = 'sysDash' + SYSDOT = 'sysDot' SYSDASHDOT = 'sysDashDot' SYSDASHDOTDOT = 'sysDashDotDot' DOT = 'dot'