| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| from __future__ import absolute_import |
| from __future__ import print_function |
| from __future__ import unicode_literals |
|
|
| from hwp5.binmodel.controlchar import CHID |
| from hwp5.dataio import Enum |
| from hwp5.dataio import Flags |
| from hwp5.dataio import UINT32 |
| from hwp5.dataio import UINT16 |
| from hwp5.dataio import WCHAR |
| from hwp5.binmodel.controls._shared import Control |
|
|
|
|
| class NumberingControl(Control): |
| Kind = Enum( |
| PAGE=0, FOOTNOTE=1, ENDNOTE=2, PICTURE=3, TABLE=4, EQUATION=5, |
| UNKNOWN6=6, |
| ) |
| Flags = Flags(UINT32, |
| 0, 3, Kind, 'kind', |
| 4, 11, 'footnoteshape', |
| 12, 'superscript') |
|
|
| def attributes(cls): |
| yield cls.Flags, 'flags', |
| yield UINT16, 'number', |
| attributes = classmethod(attributes) |
|
|
|
|
| class AutoNumbering(NumberingControl): |
| ''' 4.2.10.5. 자동 번호 ''' |
| chid = CHID.ATNO |
|
|
| def attributes(cls): |
| yield WCHAR, 'usersymbol', |
| yield WCHAR, 'prefix', |
| yield WCHAR, 'suffix', |
| attributes = classmethod(attributes) |
|
|
| def __unicode__(self): |
| prefix = u'' |
| suffix = u'' |
| if self.flags.kind == self.Kind.FOOTNOTE: |
| if self.suffix != u'\x00': |
| suffix = self.suffix |
| return prefix + unicode(self.number) + suffix |
|
|
|
|
| class NewNumbering(NumberingControl): |
| ''' 4.2.10.6. 새 번호 지정 ''' |
| chid = CHID.NWNO |
|
|