1# Copyright (c) 2010-2024 openpyxl
2
3from openpyxl.descriptors.serialisable import Serialisable
4from openpyxl.descriptors import (
5 Typed,
6 Integer,
7 Alias,
8 Sequence,
9)
10from openpyxl.descriptors.excel import ExtensionList
11from openpyxl.descriptors.nested import (
12 NestedBool,
13 NestedSet,
14 NestedInteger
15)
16
17from .layout import Layout
18from .shapes import GraphicalProperties
19from .text import RichText
20
21
22class LegendEntry(Serialisable):
23
24 tagname = "legendEntry"
25
26 idx = NestedInteger()
27 delete = NestedBool()
28 txPr = Typed(expected_type=RichText, allow_none=True)
29 extLst = Typed(expected_type=ExtensionList, allow_none=True)
30
31 __elements__ = ('idx', 'delete', 'txPr')
32
33 def __init__(self,
34 idx=0,
35 delete=False,
36 txPr=None,
37 extLst=None,
38 ):
39 self.idx = idx
40 self.delete = delete
41 self.txPr = txPr
42
43
44class Legend(Serialisable):
45
46 tagname = "legend"
47
48 legendPos = NestedSet(values=(['b', 'tr', 'l', 'r', 't']))
49 position = Alias('legendPos')
50 legendEntry = Sequence(expected_type=LegendEntry)
51 layout = Typed(expected_type=Layout, allow_none=True)
52 overlay = NestedBool(allow_none=True)
53 spPr = Typed(expected_type=GraphicalProperties, allow_none=True)
54 graphicalProperties = Alias('spPr')
55 txPr = Typed(expected_type=RichText, allow_none=True)
56 textProperties = Alias('txPr')
57 extLst = Typed(expected_type=ExtensionList, allow_none=True)
58
59 __elements__ = ('legendPos', 'legendEntry', 'layout', 'overlay', 'spPr', 'txPr',)
60
61 def __init__(self,
62 legendPos="r",
63 legendEntry=(),
64 layout=None,
65 overlay=None,
66 spPr=None,
67 txPr=None,
68 extLst=None,
69 ):
70 self.legendPos = legendPos
71 self.legendEntry = legendEntry
72 self.layout = layout
73 self.overlay = overlay
74 self.spPr = spPr
75 self.txPr = txPr