incubator-ooo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Regina Henschel <>
Subject Re: Understanding custom shapes
Date Mon, 06 Aug 2012 07:46:48 GMT
Hi Jianyuan,

thanks for your answer. Unfortunately the attachment was stripped. Can 
you please sent me the attachment directly or provide it for download?

Jianyuan Li schrieb:
> Hi, Regina,
> Below is my understanding for custom shape segment.
> An segment is consist of two parts: command and count. It is described with
> an integer with two bytes. The high byte describes command and the low byte
> describes count. For the high byte, the high 3 bits is used to show the
> basic command and the low 5 bits is used to show extended command. See my
> attachment for details.
> Taking "0x4000" as an example, it means command is moveto and count is 0.
> Moveto is shown with "2" and occupy the first 3 bits of high byte. So 0x40
> will be calculated.

The values shown in Basic follow the EnhancedCustomShapeSegmentCommand 
from the idl reference. There MOVETO is 1. Does mso..Segm[] use a 
different numbering pattern?

Kind regards

> 2012/8/6 Regina Henschel <>
>> Hi all,
>> I'm currently learning, how custom shapes work. I know already, how to
>> write them directly in the XML file format, I understand what I see in
>> Basic, I understand mso_sptxxxVer[], mso_sptxxxCalc[], and
>> mso_sptxxxGluePoints[].
>> But now I stuck with mso_sptxxxSegm[]. I understand the "Segments" as they
>> are shown in Basic, but I cannot map that to mso_sptxxxSegm[].
>> For example for custom shape "Parallelogram" I see in Basic:
>> Command Count Command Count Command Count Command Count
>>     1      1      2      3      4      0      5     0
>> which is
>> M L L L Z N
>> In mso_sptParallelogramSegm[] I read
>>     0x4000, 0x0003, 0x6001, 0x8000
>> and have no idea, how that fits together.
>> Can someone give me a pointer or explain it to me?
>> Kind regards
>> Regina

View raw message