Hi I could not spend a night with no progress on this :) Here is a first specification draft. Are you okay with that formatting/presentation, or do you think something more formal is needed ?
Global file structure
=====================
The byte order of the file is Little Endian.
The SVM file is composed of two parts : the header, followed by a list of
actions.
Each of these contain objects, referenced in the last section of this document.
* Header
- Signature, 6 bytes, equals to "VCLMTF" (without quotes)
- VersionCompat object
- compression mode, uint32
- MapMode object
- width, uint32
- height, uint32
- action count, uint32
* List of actions
Each action starts with a type index, on uint16, identifying it. The following
data depends on that type.
Actions
=======
LibreOffice 3.3 implements about 52 different actions. I will describe here
only the ones I saw in my documents.
In almost every case (except the null action), an action starts with a
VersionCompat object, which I will name actionCompat in the following text.
Unless mentionned otherwise, each Action starts with such an object.
- Action 103 : draw rectangle
This action draws a rectangle of the given coordinates using the current paint
context. It contains the following objects :
- topLeft Point
- bottomRight Point
Objects
=======
- VersionCompat
A VersionCompat object contains two integers :
- version, uint16
- size (in bytes), uint32
The total size refers to the «current context». For instance, the VersionCompat
at the beginning of an action will refer to the size of the action.
- Point
A point contains two integers :
- x, uint32
- y, uint32
- Polygon
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ calligra-devel mailing list [email protected] https://mail.kde.org/mailman/listinfo/calligra-devel
