|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|