summaryrefslogtreecommitdiff
path: root/msodumper/wmfrecord.py
diff options
context:
space:
mode:
authorHossein <hossein@libreoffice.org>2021-09-28 09:42:03 +0200
committerHossein <hossein@libreoffice.org>2021-09-28 09:50:54 +0200
commit5b01cfd6971e8822b8d52e0ba3bad2134a9e5aa9 (patch)
treec4fd2432e6e2bbf8653e9850f6d5cb755e2964d0 /msodumper/wmfrecord.py
parent7bcbe575ce88e4daa6f6335d0b78acc58917cb3e (diff)
Added dump() for 2 wmf records in wmf-dump
Added dump() for 2 wmf records to wmf-dump.py List of records: 1. SaveDC (META_SAVEDC) 2. RestoreDC (META_RESTOREDC) Change-Id: I12007c40d385b3b3ca25876428f37e01e241757d Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122754 Tested-by: Hossein <hossein@libreoffice.org> Reviewed-by: Hossein <hossein@libreoffice.org>
Diffstat (limited to 'msodumper/wmfrecord.py')
-rw-r--r--msodumper/wmfrecord.py40
1 files changed, 24 insertions, 16 deletions
diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index dc1ecdb..6065163 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -953,13 +953,22 @@ class SetTextCharacterExtra(WMFRecord):
pass
-class RestoreDC:
- def __init__(self, parent):
+class RestoreDC(WMFRecord):
+ def __init__(self, parent, name=None):
WMFRecord.__init__(self, parent)
+ if name:
+ self.name = name
+ else:
+ self.name = "restoredc"
def dump(self):
- print("<todo/>")
- pass
+ dataPos = self.pos
+ print('<%s type="RestoreDC">' % self.name)
+ self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+ self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+ self.printAndSet("nSavedDC", self.readInt16(), hexdump=False)
+ # RecordSize is described in words, so we should double for bytes
+ assert self.pos == dataPos + self.RecordSize * 2
class ResizePalette(WMFRecord):
@@ -1423,21 +1432,20 @@ class RoundRect(WMFRecord):
class SaveDC(WMFRecord):
- def __init__(self, parent):
- WMFRecord.__init__(self, parent)
-
- def dump(self):
- print("<todo/>")
- pass
-
-
-class SaveDC(WMFRecord):
- def __init__(self, parent):
+ def __init__(self, parent, name=None):
WMFRecord.__init__(self, parent)
+ if name:
+ self.name = name
+ else:
+ self.name = "savedc"
def dump(self):
- print("<todo/>")
- pass
+ dataPos = self.pos
+ print('<%s type="SaveDC">' % self.name)
+ self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+ self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+ # RecordSize is described in words, so we should double for bytes
+ assert self.pos == dataPos + self.RecordSize * 2
class Pie(WMFRecord):