1# encoding: utf-8
2
3"""
4Test data builders for text XML elements
5"""
6
7from ...unitdata import BaseBuilder
8from .shared import CT_OnOffBuilder, CT_StringBuilder
9
10
11class CT_BrBuilder(BaseBuilder):
12    __tag__ = 'w:br'
13    __nspfxs__ = ('w',)
14    __attrs__ = ('w:type', 'w:clear')
15
16
17class CT_EmptyBuilder(BaseBuilder):
18    __nspfxs__ = ('w',)
19    __attrs__ = ()
20
21    def __init__(self, tag):
22        self.__tag__ = tag
23        super(CT_EmptyBuilder, self).__init__()
24
25
26class CT_JcBuilder(BaseBuilder):
27    __tag__ = 'w:jc'
28    __nspfxs__ = ('w',)
29    __attrs__ = ('w:val',)
30
31
32class CT_PBuilder(BaseBuilder):
33    __tag__ = 'w:p'
34    __nspfxs__ = ('w',)
35    __attrs__ = ()
36
37
38class CT_PPrBuilder(BaseBuilder):
39    __tag__ = 'w:pPr'
40    __nspfxs__ = ('w',)
41    __attrs__ = ()
42
43
44class CT_RBuilder(BaseBuilder):
45    __tag__ = 'w:r'
46    __nspfxs__ = ('w',)
47    __attrs__ = ()
48
49
50class CT_RPrBuilder(BaseBuilder):
51    __tag__ = 'w:rPr'
52    __nspfxs__ = ('w',)
53    __attrs__ = ()
54
55
56class CT_SectPrBuilder(BaseBuilder):
57    __tag__ = 'w:sectPr'
58    __nspfxs__ = ('w',)
59    __attrs__ = ()
60
61
62class CT_TextBuilder(BaseBuilder):
63    __tag__ = 'w:t'
64    __nspfxs__ = ('w',)
65    __attrs__ = ()
66
67    def with_space(self, value):
68        self._set_xmlattr('xml:space', str(value))
69        return self
70
71
72class CT_UnderlineBuilder(BaseBuilder):
73    __tag__ = 'w:u'
74    __nspfxs__ = ('w',)
75    __attrs__ = (
76        'w:val', 'w:color', 'w:themeColor', 'w:themeTint', 'w:themeShade'
77    )
78
79
80def a_b():
81    return CT_OnOffBuilder('w:b')
82
83
84def a_bCs():
85    return CT_OnOffBuilder('w:bCs')
86
87
88def a_br():
89    return CT_BrBuilder()
90
91
92def a_caps():
93    return CT_OnOffBuilder('w:caps')
94
95
96def a_cr():
97    return CT_EmptyBuilder('w:cr')
98
99
100def a_cs():
101    return CT_OnOffBuilder('w:cs')
102
103
104def a_dstrike():
105    return CT_OnOffBuilder('w:dstrike')
106
107
108def a_jc():
109    return CT_JcBuilder()
110
111
112def a_noProof():
113    return CT_OnOffBuilder('w:noProof')
114
115
116def a_shadow():
117    return CT_OnOffBuilder('w:shadow')
118
119
120def a_smallCaps():
121    return CT_OnOffBuilder('w:smallCaps')
122
123
124def a_snapToGrid():
125    return CT_OnOffBuilder('w:snapToGrid')
126
127
128def a_specVanish():
129    return CT_OnOffBuilder('w:specVanish')
130
131
132def a_strike():
133    return CT_OnOffBuilder('w:strike')
134
135
136def a_tab():
137    return CT_EmptyBuilder('w:tab')
138
139
140def a_vanish():
141    return CT_OnOffBuilder('w:vanish')
142
143
144def a_webHidden():
145    return CT_OnOffBuilder('w:webHidden')
146
147
148def a_p():
149    return CT_PBuilder()
150
151
152def a_pPr():
153    return CT_PPrBuilder()
154
155
156def a_pStyle():
157    return CT_StringBuilder('w:pStyle')
158
159
160def a_sectPr():
161    return CT_SectPrBuilder()
162
163
164def a_t():
165    return CT_TextBuilder()
166
167
168def a_u():
169    return CT_UnderlineBuilder()
170
171
172def an_emboss():
173    return CT_OnOffBuilder('w:emboss')
174
175
176def an_i():
177    return CT_OnOffBuilder('w:i')
178
179
180def an_iCs():
181    return CT_OnOffBuilder('w:iCs')
182
183
184def an_imprint():
185    return CT_OnOffBuilder('w:imprint')
186
187
188def an_oMath():
189    return CT_OnOffBuilder('w:oMath')
190
191
192def an_outline():
193    return CT_OnOffBuilder('w:outline')
194
195
196def an_r():
197    return CT_RBuilder()
198
199
200def an_rPr():
201    return CT_RPrBuilder()
202
203
204def an_rStyle():
205    return CT_StringBuilder('w:rStyle')
206
207
208def an_rtl():
209    return CT_OnOffBuilder('w:rtl')
210