seawolf2357's picture
Add src
d94b56e verified
# -*- coding: utf-8 -*-
#
# pyhwp : hwp file format parser in python
# Copyright (C) 2010-2023 mete0r <https://github.com/mete0r>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
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