1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
| # Copyright (c) 2010-2024 openpyxl
|
| from openpyxl.descriptors.serialisable import Serialisable
| from openpyxl.descriptors import (
| Typed,
| Alias
| )
| from openpyxl.descriptors.nested import (
| EmptyTag
| )
| from openpyxl.drawing.colors import ColorChoiceDescriptor
| from openpyxl.drawing.fill import *
| from openpyxl.drawing.line import LineProperties
| from openpyxl.drawing.geometry import (
| Shape3D,
| Scene3D,
| Transform2D,
| CustomGeometry2D,
| PresetGeometry2D,
| )
|
|
| class GraphicalProperties(Serialisable):
|
| """
| Somewhat vaguely 21.2.2.197 says this:
|
| This element specifies the formatting for the parent chart element. The
| custGeom, prstGeom, scene3d, and xfrm elements are not supported. The
| bwMode attribute is not supported.
|
| This doesn't leave much. And the element is used in different places.
| """
|
| tagname = "spPr"
|
| bwMode = NoneSet(values=(['clr', 'auto', 'gray', 'ltGray', 'invGray',
| 'grayWhite', 'blackGray', 'blackWhite', 'black', 'white', 'hidden']
| )
| )
|
| xfrm = Typed(expected_type=Transform2D, allow_none=True)
| transform = Alias('xfrm')
| custGeom = Typed(expected_type=CustomGeometry2D, allow_none=True) # either or
| prstGeom = Typed(expected_type=PresetGeometry2D, allow_none=True)
|
| # fills one of
| noFill = EmptyTag(namespace=DRAWING_NS)
| solidFill = ColorChoiceDescriptor()
| gradFill = Typed(expected_type=GradientFillProperties, allow_none=True)
| pattFill = Typed(expected_type=PatternFillProperties, allow_none=True)
|
| ln = Typed(expected_type=LineProperties, allow_none=True)
| line = Alias('ln')
| scene3d = Typed(expected_type=Scene3D, allow_none=True)
| sp3d = Typed(expected_type=Shape3D, allow_none=True)
| shape3D = Alias('sp3d')
| extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True)
|
| __elements__ = ('xfrm', 'prstGeom', 'noFill', 'solidFill', 'gradFill', 'pattFill',
| 'ln', 'scene3d', 'sp3d')
|
| def __init__(self,
| bwMode=None,
| xfrm=None,
| noFill=None,
| solidFill=None,
| gradFill=None,
| pattFill=None,
| ln=None,
| scene3d=None,
| custGeom=None,
| prstGeom=None,
| sp3d=None,
| extLst=None,
| ):
| self.bwMode = bwMode
| self.xfrm = xfrm
| self.noFill = noFill
| self.solidFill = solidFill
| self.gradFill = gradFill
| self.pattFill = pattFill
| if ln is None:
| ln = LineProperties()
| self.ln = ln
| self.custGeom = custGeom
| self.prstGeom = prstGeom
| self.scene3d = scene3d
| self.sp3d = sp3d
|
|