1 /* -*- Mode: C; c-basic-offset: 4 -*- */
2 /* Dia -- a diagram creation/manipulation program
3  *
4  * visio-types.h: Visio XML import filter for dia
5  * Copyright (C) 2006-2007 Ian Redfern
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20  */
21 
22 /* Generated Wed Jan 24 17:00:55 2007 */
23 /* From: All.vdx animation_tests.vdx Arrows-2.vdx Arrow & Text samples.vdx BasicShapes.vdx basic_tests.vdx Beispiel 1.vdx Beispiel 2.vdx Beispiel 3.vdx cable loom EL axis.vdx Circle1.vdx Circle2.vdx circle with angles.vdx curve_tests.vdx Drawing2.vdx Electrical system SatMax.vdx Embedded-Pics-1.vdx emf_dump_test2.orig.vdx emf_dump_test2.vdx Entreprise_etat_desire.vdx IMU-DD Ver2.vdx ISAD_page1.vdx ISAD_page2.vdx Line1.vdx Line2.vdx Line3.vdx Line4.vdx Line5.vdx Line6.vdx LombardiWireframe.vdx London-Citibank-Network-detail-02-15-2006.vdx London-Citibank-Network Detail-11-07-2005.vdx London-Citibank-racks-11-04-2005.vdx London-colo-move.vdx London-Colo-Network-detail-11-01-2005.vdx London-Colo-Racks-11-03-2005.vdx Network DiagramV2.vdx pattern_tests.vdx Processflow.vdx Rectangle1.vdx Rectangle2.vdx Rectangle3.vdx Rectangle4.vdx render-test.vdx sample1.vdx Sample2.vdx samp_vdx.vdx Satmax RF path.vdx seq_test.vdx Servo block diagram V2.vdx Servo block diagram V3.vdx Servo block diagram.vdx Sigma-function.vdx SmithWireframe.vdx states.vdx Text1.vdx Text2.vdx Text3.vdx text_tests.vdx Tracking Array -  Level.vdx Tracking Array -  Phase.vdx Wayzata-WAN-Detail.vdx Wayzata-WAN-Overview.vdx WDS Cabling.vdx */
24 
25 
26 struct vdx_any
27 {
28     GSList *children;
29     char type;
30 };
31 
32 struct vdx_Act
33 {
34     GSList *children;
35     char type;
36     float Action; /* F=0,0,1,0))",1,SETF("LockDelete","Guard(0)"),SETF("Loc Unit=BOOL */
37     gboolean BeginGroup; /* F=No Formula =0 */
38     unsigned int ButtonFace; /* F=No Formula = */
39     gboolean Checked; /* F=0",0,1,0)",1",1,1,0)",2",2,1,0)",3",4",Inh,LockDelete,LockTextEdit,No Formula */
40     gboolean Disabled; /* F=Inh,NOT(User.UMLError),No Formula,Not(User.HasSubordinates) =0,1 */
41     unsigned int ID; /* */
42     unsigned int IX; /* */
43     gboolean Invisible; /* F=No Formula =0 */
44     char * Menu; /* F=0),"","_Set As Straight Line")',0),"","_ Gerade Linie")", */
45 /* ? Act.Menu.Err */
46     char * Name; /* =LocalRow0 */
47     char * NameU; /* =LocalRow0,Properties,Row_1 */
48     gboolean ReadOnly; /* F=No Formula =0 */
49     unsigned int SortKey; /* F=No Formula = */
50     unsigned int TagName; /* F=No Formula = */
51 };
52 
53 struct vdx_Align
54 {
55     GSList *children;
56     char type;
57     float AlignBottom; /* F=IntersectY(Sheet.1972!PinX,Sheet.1972!PinY,Sheet.1972!Angle,10.185039370079DL */
58     float AlignCenter; /* F=IntersectX(Sheet.1972!PinX,Sheet.1972!PinY,Sheet.1972!Angle,10.185039370079DL */
59     gboolean AlignLeft; /* F=_Marker(1) =1 */
60     gboolean AlignMiddle; /* F=_Marker(1) =1 */
61     gboolean AlignRight; /* F=_Marker(1) =1 */
62     float AlignTop; /* F=IntersectY(Sheet.1973!PinX,Sheet.1973!PinY,Sheet.1973!Angle,14.464566929134DL */
63 };
64 
65 struct vdx_ArcTo
66 {
67     GSList *children;
68     char type;
69     float A; /* F=(Scratch.X4+Scratch.B4)*Scratch.C4,-(Scratch.X1-Scratch.Y1)*0.2929,-(Scratch. Unit=DL,IN,MM,PT */
70     gboolean Del; /* =1 */
71     unsigned int IX; /* */
72     float X; /* F=-Controls.Row_2.Y,-Scratch.X1,-User.Margin,0.4*Scratch.X1,0.6*Scratch.X1,Cont Unit=IN,MM,PT */
73     float Y; /* F=-Controls.Row_2.Y,-User.Margin*(3/2),Controls.Row_2.Y,Geometry1.Y1,Geometry1. Unit=CM,IN,MM,PT */
74 };
75 
76 struct vdx_Char
77 {
78     GSList *children;
79     char type;
80     unsigned int AsianFont; /* F=Inh */
81     gboolean Case; /* F=0,Inh =0 */
82     Color Color; /* F=0,0,0,19))",0,1,16))",1,14,15,2,4,GUARD(IF(Sheet.5!User.active,0,19)),HSL(0,0 */
83     float ColorTrans; /* F=0%,Inh,No Formula */
84     unsigned int ComplexScriptFont; /* F=Inh */
85     float ComplexScriptSize; /* F=Inh Unit=DT */
86     gboolean DblUnderline; /* F=FALSE,Inh,No Formula */
87     gboolean Del; /* =1 */
88     gboolean DoubleStrikethrough; /* F=Inh =0 */
89     unsigned int Font; /* F=0,1,2,Inh */
90     float FontScale; /* F=100%,Inh */
91     gboolean Highlight; /* F=Inh,No Formula =0 */
92     unsigned int IX; /* */
93     unsigned int LangID; /* F=Inh =0,1031,1033,1036,1053,2057,3081,3082,3084,4105 */
94     float Letterspace; /* F=0DT,Inh,No Formula */
95     unsigned int Locale; /* F=0,Inh =0,57 */
96     unsigned int LocalizeFont; /* F=Inh */
97     gboolean Overline; /* F=FALSE,Inh,No Formula */
98     gboolean Perpendicular; /* F=FALSE,Inh,No Formula */
99     unsigned int Pos; /* F=0,Inh =0,1,2 */
100     gboolean RTLText; /* F=Inh =0 */
101     float Size; /* F=(ThePage!PageScale/ThePage!DrawingScale)*Height*0.17,(ThePage!PageScale/ThePa Unit=PT */
102     gboolean Strikethru; /* F=FALSE,Inh,No Formula */
103     unsigned int Style; /* F=0,3,2,0)))',Inh */
104     gboolean UseVertical; /* F=Inh =0 */
105 };
106 
107 struct vdx_ColorEntry
108 {
109     GSList *children;
110     char type;
111     unsigned int IX; /* */
112     char * RGB; /* =#000000,#000080,#0000FF,#007D7B,#008000,#008080,#00FF00,#00FFFF,#1A1A1A,#33333 */
113 };
114 
115 struct vdx_Colors
116 {
117     GSList *children;
118     char type;
119     unsigned int ColorEntry; /* = */
120 };
121 
122 struct vdx_Connect
123 {
124     GSList *children;
125     char type;
126     char * FromCell; /* =AlignBottom,AlignTop,BeginX,BeginY,Controls.Row_1,Controls.Row_10,Controls.Row */
127     unsigned int FromPart; /* =10,100,101,102,103,104,105,106,107,108,109,11,12,4,6,7,8,9 */
128     gboolean FromPart_exists;
129     unsigned int FromSheet; /* =10,100,101,102,103,104,105,106,107,108,109,11,110,111,112,113,114,115,116,117, */
130     gboolean FromSheet_exists;
131     char * ToCell; /* =Angle,Connections.Bottom.X,Connections.Float.X,Connections.Left.X,Connections. */
132     unsigned int ToPart; /* =100,101,102,103,104,105,106,107,108,109,111,112,113,114,116,118,123,124,127,12 */
133     gboolean ToPart_exists;
134     unsigned int ToSheet; /* =1,10,101,102,104,105,107,11,110,111,112,114,115,1152,1153,1155,1157,116,119,12 */
135     gboolean ToSheet_exists;
136 };
137 
138 struct vdx_Connection
139 {
140     GSList *children;
141     char type;
142     gboolean AutoGen; /* F=Inh,No Formula =0,1 */
143     float DirX; /* F=-1IN,-25.4MM,Inh,No Formula Unit=IN,MM,NUM */
144     float DirY; /* F=-1IN,-25.4MM,Inh,No Formula Unit=IN,MM,NUM */
145     unsigned int ID; /* */
146     unsigned int IX; /* */
147     char * NameU; /* =Bottom,Float,Floating,LAN,Left,Port0,Port1,Port10,Port11,Port12,Port13,Port14, */
148     char * Prompt; /* F=No Formula =, */
149     gboolean Type; /* F=Inh,No Formula =0 */
150     float X; /* F=0.5*Width,2,Width*0.18,Width*0.2003))",4,Width*0.0822,Width*0.1929))",4,Width Unit=IN,MM */
151     float Y; /* F=(Geometry2.B2+Geometry1.B5)/2,0.5*Height,2,Height*0.05,Height*0.1233))))",3,H Unit=CM,IN,MM */
152 };
153 
154 struct vdx_Connects
155 {
156     GSList *children;
157     char type;
158     unsigned int Connect; /* = */
159 };
160 
161 struct vdx_Control
162 {
163     GSList *children;
164     char type;
165     gboolean CanGlue; /* F=Inh =0,1 */
166     unsigned int ID; /* */
167     unsigned int IX; /* */
168     char * NameU; /* =TextPosition */
169     char * Prompt; /* F="Flytta böj "&-User.1stLegDir+3,"Flytta böj "&- */
170     float X; /* F=(Controls.Row_3+IF(User.LegIndex1<7,Width,Controls.Row_5))/2,(Controls.Row Unit=IN,MM */
171     float XCon; /* F=(Controls.Row_1>Height/2)*2+2+5*NOT(Actions.Row_2.Action),(Controls.Row_1& */
172     float XDyn; /* F=Controls.Row_1,Controls.Row_1.XDyn,Controls.Row_10,Controls.Row_11,Controls.R Unit=IN,M,MM */
173     float Y; /* F=(Controls.Row_2.Y+IF(User.LegIndex1<6,Height,Controls.Row_4.Y))/2,(Control Unit=IN,MM,PT */
174     float YCon; /* F=(Controls.Row_1.Y>Height/2)*2+2,(Controls.Row_1.Y>Height/2)*2+2+5*NOT(U */
175     float YDyn; /* F=Controls.Row_1.Y,Controls.Row_1.YDyn,Controls.Row_2.Y,Controls.Row_3.Y,Contro Unit=CM,IN,M,MM,PT */
176 };
177 
178 struct vdx_CustomProp
179 {
180     GSList *children;
181     char type;
182     char * Name; /* =_TemplateID */
183     char * PropType; /* =String */
184 };
185 
186 struct vdx_CustomProps
187 {
188     GSList *children;
189     char type;
190     char * CustomProp; /* =TC010483951033,TC010492811033,TC010498121033,TC010498511033 */
191 };
192 
193 struct vdx_DocProps
194 {
195     GSList *children;
196     char type;
197     gboolean AddMarkup; /* F=No Formula =0 */
198     unsigned int DocLangID; /* =1033,1053,2057 */
199     gboolean LockPreview; /* F=No Formula =0,1 */
200     unsigned int OutputFormat; /* F=No Formula =0,2 */
201     gboolean PreviewQuality; /* F=No Formula =0 */
202     unsigned int PreviewScope; /* F=No Formula =0,1,2 */
203     gboolean ViewMarkup; /* F=No Formula =0 */
204 };
205 
206 struct vdx_DocumentProperties
207 {
208     GSList *children;
209     char type;
210     char * AlternateNames; /* =?,rt\export,Ց粑ࠈ?խ粑᫤ඔ㷤? */
211     int BuildNumberCreated; /* =-1,1245,2072,671351279,671351309,671353298,671355894,738200627,738200720,73820 */
212     unsigned int BuildNumberEdited; /* =671351309,671352994,671353097,671353298,671353406,738200720,738203013 */
213     char * Company; /* =*,ARS-Solutions,Agilent Technologies, Inc.,Artis Group,C2SAT,Celox,GarrettCom  */
214     char * Creator; /* = Pierre Robitaille,Administrator,Christian Ridderström,Copyright (c) 2001 Mic */
215     char * Desc; /* =$Id$,A zoom of figure  */
216     char * Subject; /* =Sample file for Visio Viewer,Sample file for Visio Web Component */
217     char * Template; /* =C:\Archivos de programa\Microsoft Office\Visio11\1033\UMLMOD_M.VST,C:\Document */
218     char * TimeCreated; /* =2001-03-14T11:57:54,2002-01-24T12:57:03,2002-02-28T14:18:35,2002-03-25T13:54:0 */
219     char * TimeEdited; /* =1899-12-30T00:00:00,2001-10-23T14:49:27,2002-02-28T14:20:31,2002-05-15T07:40:2 */
220     char * TimePrinted; /* =2001-03-14T11:57:54,2002-02-28T14:18:35,2002-03-25T13:54:03,2002-04-17T14:27:5 */
221     char * TimeSaved; /* =2001-10-23T14:49:30,2002-02-28T14:20:34,2002-05-15T07:40:45,2002-06-18T14:58:4 */
222     char * Title; /* =Axis1 Gyro&Servo unit,Basic tests,Circle with angles for testing TCM,Curve */
223 };
224 
225 struct vdx_DocumentSettings
226 {
227     GSList *children;
228     char type;
229     unsigned int DefaultFillStyle; /* */
230     gboolean DefaultFillStyle_exists;
231     unsigned int DefaultGuideStyle; /* */
232     gboolean DefaultGuideStyle_exists;
233     unsigned int DefaultLineStyle; /* */
234     gboolean DefaultLineStyle_exists;
235     unsigned int DefaultTextStyle; /* */
236     gboolean DefaultTextStyle_exists;
237     gboolean DynamicGridEnabled; /* =0,1 */
238     unsigned int GlueSettings; /* =11,47,9 */
239     gboolean ProtectBkgnds; /* =0 */
240     gboolean ProtectMasters; /* =0 */
241     gboolean ProtectShapes; /* =0 */
242     gboolean ProtectStyles; /* =0 */
243     unsigned int SnapExtensions; /* =1,34 */
244     unsigned int SnapSettings; /* =295,319,32807,33063,39,65831,65847 */
245     unsigned int TopPage; /* =0,2,4,5,7,8 */
246     gboolean TopPage_exists;
247 };
248 
249 struct vdx_DocumentSheet
250 {
251     GSList *children;
252     char type;
253     unsigned int FillStyle; /* */
254     gboolean FillStyle_exists;
255     unsigned int LineStyle; /* */
256     gboolean LineStyle_exists;
257     char * Name; /* =DasDok,TheDoc */
258     char * NameU; /* =TheDoc */
259     unsigned int TextStyle; /* */
260     gboolean TextStyle_exists;
261 };
262 
263 struct vdx_Ellipse
264 {
265     GSList *children;
266     char type;
267     float A; /* F=Inh,Width*0,Width*0.021265284423179,Width*0.021346344438398,Width*0.026441036 Unit=DL,IN,MM */
268     float B; /* F=Height*0,Height*0.050632911392406,Height*0.061728395014259,Height*0.072100313 Unit=DL,IN,MM */
269     float C; /* F=Geometry1.X1,Inh,Width*0.01063264221159,Width*0.010673172221386,Width*0.01322 Unit=DL,IN,MM */
270     float D; /* F=Height*0,Height*0.057129798903111,Height*0.094167364045729,Height*0.101265822 Unit=DL,IN,MM */
271     unsigned int IX; /* */
272     float X; /* F=Inh,Width*0.01063264221159,Width*0.010673172219199,Width*0.013220518239041,Wi Unit=IN,MM */
273     float Y; /* F=Height*0.050632911392406,Height*0.057129798903111,Height*0.061728395039554,He Unit=IN,MM */
274 };
275 
276 struct vdx_EllipticalArcTo
277 {
278     GSList *children;
279     char type;
280     float A; /* F=Controls.Row_1,Controls.X1,Geometry1.A2,Geometry3.A2,Inh,Width,Width*0,Width* Unit=DL,IN,MM */
281     float B; /* F=2*Scratch.X1,Controls.Row_1.Y,Controls.Y1,Geometry1.B2,Geometry1.Y1-Scratch.Y Unit=DL,IN,MM */
282     float C; /* F=-1E-14,Inh,_ELLIPSE_THETA(-0.004496519859392,1,0.76771653543307,1.14175745231 Unit=DA */
283     float D; /* F=0.5*Width/Scratch.Y1,2*Geometry1.X1/Height,Geometry1.D3,Inh,Width/Height*0.01 */
284 /* ? EllipticalArcTo.D.Err */
285     unsigned int IX; /* */
286     float X; /* F=Geometry1.X1,Geometry1.X2,Geometry2.X1,Geometry2.X2,Geometry3.X1,Geometry4.X1 Unit=IN,MM */
287     float Y; /* F=Geometry1.Y1,Geometry1.Y2,Geometry1.Y4,Geometry2.Y1,Geometry3.Y1,Geometry4.Y1 Unit=IN,MM */
288 };
289 
290 struct vdx_Event
291 {
292     GSList *children;
293     char type;
294     unsigned int EventDblClick; /* F=1001")",DEFAULTEVENT(),GUARD(0),GUARD(DOCMD(1312)),Inh,NA(),No Formula,O */
295 /* ? Event.EventDblClick.Err */
296     float EventDrop; /* F=0,DOCMD(1048),DOCMD(1312)+SETF("EventDrop",GUARD(DOCMD(1046))),DOCM */
297     gboolean EventXFMod; /* F=0,SETF("Width",Char.Size),0)",No Formula =0 */
298     gboolean TheData; /* F=No Formula =0 */
299     gboolean TheText; /* F=No Formula =0 */
300 };
301 
302 struct vdx_EventItem
303 {
304     GSList *children;
305     char type;
306     gboolean Action; /* =1 */
307     gboolean Enabled; /* =1 */
308     unsigned int EventCode; /* =1,2 */
309     gboolean EventCode_exists;
310     unsigned int ID; /* */
311     char * Target; /* =AM,OrgC,OrgCWiz,PPT,UML Background Add-on */
312     char * TargetArgs; /* =,/autolaunch,1,1",2,2",3,DocCreated',DocOpened' */
313 };
314 
315 struct vdx_EventList
316 {
317     GSList *children;
318     char type;
319     unsigned int EventItem; /* = */
320 };
321 
322 struct vdx_FaceName
323 {
324     GSList *children;
325     char type;
326     char * CharSets; /* =-2147483648 0,0 0,1 0,1048577 0,1073742335 -65536,1073873055 -539557888,107426 */
327     unsigned int Flags; /* =260,261,325,327,357,421 */
328     gboolean Flags_exists;
329     unsigned int ID; /* */
330     char * Name; /* =,Arial,Arial Unicode MS,Book Antiqua,Cordia New,Dhenu,Dotum,Estrangelo Edessa, */
331     char * Panos; /* =0 0 4 0 0 0 0 0 0 0,1 1 6 0 1 1 1 1 1 1,1 10 5 2 5 3 6 3 3 3,2 0 4 0 0 0 0 0 0 */
332     char * UnicodeRanges; /* =-1 -369098753 63 0,-1342176593 1775729915 48 0,-1610612033 1757936891 16 0,-21 */
333 };
334 
335 struct vdx_FaceNames
336 {
337     GSList *children;
338     char type;
339     unsigned int FaceName; /* = */
340 };
341 
342 struct vdx_Field
343 {
344     GSList *children;
345     char type;
346     gboolean Calendar; /* F=No Formula =0 */
347     gboolean Del; /* =1 */
348     gboolean EditMode; /* F=Inh =0 */
349     float Format; /* F=FIELDPICTURE(0),FIELDPICTURE(1),FIELDPICTURE(201),FIELDPICTURE(21),FIELDPICTU Unit=STR */
350     unsigned int IX; /* */
351     gboolean ObjectKind; /* F=No Formula =0 */
352     unsigned int Type; /* F=Inh =0,2,5 */
353     unsigned int UICat; /* F=Inh =0,1,2,3,5 */
354     unsigned int UICod; /* F=Inh =0,1,2,255,3,4,6,8 */
355     unsigned int UIFmt; /* F=Inh =0,1,20,201,21,255,34,37,7,8 */
356     float Value; /* F=ABS(Controls.Row_1)+0M,ABS(Width),COMPANY(),CREATOR(),Creator(),DOCLASTSAVE() Unit=DATE,DL,M,STR */
357 };
358 
359 struct vdx_Fill
360 {
361     GSList *children;
362     char type;
363     Color FillBkgnd; /* F=0,1,14,15,18,2,8,HSL(0,0,128),HSL(0,0,181),HSL(0,0,210),HSL(0,0,240),HSL(0,0, */
364     float FillBkgndTrans; /* F=0%,Inh,No Formula */
365     Color FillForegnd; /* F=0,0,0,20)",0,1,17)",0,10,19))",1,10,11,12,13,14,15,17,18,19,2,20,21,23,3,4,5, */
366     float FillForegndTrans; /* F=0%,Inh,No Formula */
367     unsigned int FillPattern; /* F=0,1,31,GUARD(0),GUARD(1),Guard(0),Inh */
368     float ShapeShdwObliqueAngle; /* F=Inh */
369     float ShapeShdwOffsetX; /* F=Inh Unit=IN */
370     float ShapeShdwOffsetY; /* F=Inh Unit=IN */
371     float ShapeShdwScaleFactor; /* F=Inh */
372     gboolean ShapeShdwType; /* F=Inh =0,1 */
373     unsigned int ShdwBkgnd; /* F=1,GUARD(0),Inh */
374     float ShdwBkgndTrans; /* F=0%,Inh,No Formula */
375     Color ShdwForegnd; /* F=0,15,8,GUARD(0),HSL(0,0,205),HSL(0,0,206),HSL(0,0,208),HSL(0,0,210),HSL(0,0,2 */
376     float ShdwForegndTrans; /* F=0%,Inh,No Formula */
377     unsigned int ShdwPattern; /* F=0,0),1,0)',GUARD(0),Guard(0),Inh */
378 };
379 
380 struct vdx_FontEntry
381 {
382     GSList *children;
383     char type;
384     unsigned int Attributes; /* =0,16896,19072,19140,19172,23040,23108,23140,4096,4160,4196 */
385     gboolean Attributes_exists;
386     unsigned int CharSet; /* =0,2 */
387     gboolean CharSet_exists;
388     unsigned int ID; /* */
389     char * Name; /* =Arial,Arial Narrow,Courier,Courier-Bold,Helvetica-Bold,Monotype Sorts,Symbol,T */
390     unsigned int PitchAndFamily; /* =18,2,32,34 */
391     gboolean PitchAndFamily_exists;
392     gboolean Unicode; /* =0 */
393     gboolean Weight; /* =0 */
394 };
395 
396 struct vdx_Fonts
397 {
398     GSList *children;
399     char type;
400     unsigned int FontEntry; /* = */
401 };
402 
403 struct vdx_Foreign
404 {
405     GSList *children;
406     char type;
407     float ImgHeight; /* F=Height*1,Height*1.0169491525424,Height*1.0189032166643,Height*1.0189032166645 Unit=IN */
408     float ImgOffsetX; /* F=ImgWidth*-0.00091096324461408,ImgWidth*-0.00091096324461409,ImgWidth*-0.00092 Unit=IN */
409     float ImgOffsetY; /* F=ImgHeight*-0.0086805555555564,ImgHeight*-0.0095961281708911,ImgHeight*-0.0095 Unit=IN */
410     float ImgWidth; /* F=Inh,Width*1,Width*1*NOT(Sheet.5!User.GenCheck),Width*1.0027802049408,Width*1. Unit=IN */
411 };
412 
413 struct vdx_ForeignData
414 {
415     GSList *children;
416     char type;
417     float CompressionLevel; /* =0.05,1.000000 */
418     char * CompressionType; /* =GIF,JPEG,PNG */
419     unsigned int ExtentX; /* =10112,10370,10413,10520,10523,107,10883,10948,11,11013,11043,11073,11138,11203 */
420     gboolean ExtentX_exists;
421     unsigned int ExtentY; /* =1034,10434,10504,1052,1061,1070,10807,1083,1093,11,11123,1123,1153,116,118,12, */
422     gboolean ExtentY_exists;
423     char * ForeignType; /* =Bitmap,EnhMetaFile,MetaFile,Object */
424     unsigned int MappingMode; /* =8 */
425     gboolean MappingMode_exists;
426     float ObjectHeight; /* =0.6748031496063,0.775098,1.389201,2,3.5566929133858,6.5590551181102 */
427     unsigned int ObjectType; /* =33280,49664 */
428     gboolean ObjectType_exists;
429     float ObjectWidth; /* =0.787402,1.2582677165354,2,20.204724409449,3.740157,9.0783464566929 */
430     gboolean ShowAsIcon; /* =0 */
431 };
432 
433 struct vdx_Geom
434 {
435     GSList *children;
436     char type;
437     unsigned int IX; /* */
438     gboolean NoFill; /* F=GUARD(1),GUARD(TRUE),Guard(1),Inh =0,1 */
439     gboolean NoLine; /* F=Inh,No Formula =0,1 */
440     gboolean NoShow; /* F=0)",0,0,1)",0,User.ShapeType<2))))',1",1)",1)',1))",1))',1,0,1)",1,1,0)",2 */
441     gboolean NoSnap; /* F=Inh,No Formula =0 */
442 };
443 
444 struct vdx_Group
445 {
446     GSList *children;
447     char type;
448     unsigned int DisplayMode; /* F=2,Inh =2 */
449     gboolean DontMoveChildren; /* F=FALSE,Inh */
450     gboolean IsDropTarget; /* F=FALSE,Inh */
451     gboolean IsSnapTarget; /* F=Inh,TRUE */
452     gboolean IsTextEditTarget; /* F=Inh,TRUE */
453     gboolean SelectMode; /* F=1,Inh =0,1 */
454 };
455 
456 struct vdx_HeaderFooter
457 {
458     GSList *children;
459     char type;
460     char * FooterLeft; /* =&f&e&n */
461     float FooterMargin; /* Unit=IN_F,MM */
462     char * HeaderFooterColor; /* =#000000 */
463     unsigned int HeaderFooterFont; /* */
464     char * HeaderLeft; /* =KVR GL/3 */
465     float HeaderMargin; /* Unit=IN_F,MM */
466     char * HeaderRight; /* =&D */
467 };
468 
469 struct vdx_HeaderFooterFont
470 {
471     GSList *children;
472     char type;
473     gboolean CharSet; /* =0 */
474     unsigned int ClipPrecision; /* =0,2 */
475     gboolean ClipPrecision_exists;
476     gboolean Escapement; /* =0 */
477     char * FaceName; /* =Arial,Arial Narrow,牁慩l */
478     int Height; /* =-11,-13,-16 */
479     gboolean Height_exists;
480     gboolean Italic; /* =0 */
481     gboolean Orientation; /* =0 */
482     unsigned int OutPrecision; /* =0,3 */
483     gboolean OutPrecision_exists;
484     unsigned int PitchAndFamily; /* =0,34 */
485     gboolean PitchAndFamily_exists;
486     gboolean Quality; /* =0,1 */
487     gboolean StrikeOut; /* =0 */
488     gboolean Underline; /* =0 */
489     unsigned int Weight; /* =0,400 */
490     gboolean Weight_exists;
491     gboolean Width; /* =0 */
492 };
493 
494 struct vdx_Help
495 {
496     GSList *children;
497     char type;
498     char * Copyright; /* F=Inh =,,Copyright (C) 1997 Visio Corporation. Med ensamrätt.,Copyrigh */
499     char * HelpTopic; /* F=Inh =,!#52533,!#52846,!#55170,!#55174,!#55477,!#55488,!#55499,,ET.HLP */
500 };
501 
502 struct vdx_Hyperlink
503 {
504     GSList *children;
505     char type;
506     char * Address; /* =,http://netc.members.microsoft.com/,http://officeupdate.com/visio/,http://vdxt */
507     gboolean Default; /* F=No Formula =0 */
508     char * Description; /* =,VDXtoSVG Home Page,Visio Network Solutions */
509     char * ExtraInfo; /* F=No Formula =, */
510     unsigned int Frame; /* F=No Formula = */
511     unsigned int ID; /* */
512     gboolean Invisible; /* F=No Formula =0 */
513     char * NameU; /* =Row_2,Row_21 */
514     gboolean NewWindow; /* F=No Formula =0 */
515     unsigned int SortKey; /* F=No Formula = */
516     char * SubAddress; /* F=No Formula =,,Detail */
517 };
518 
519 struct vdx_Icon
520 {
521     GSList *children;
522     char type;
523     unsigned int IX; /* */
524 };
525 
526 struct vdx_Image
527 {
528     GSList *children;
529     char type;
530     float Blur; /* F=0% */
531     float Brightness; /* F=50% */
532     float Contrast; /* F=50% */
533     float Denoise; /* F=0% */
534     gboolean Gamma; /* F=1 =1 */
535     float Sharpen; /* F=0% */
536     float Transparency; /* F=0% */
537 };
538 
539 struct vdx_InfiniteLine
540 {
541     GSList *children;
542     char type;
543     float A; /* F=IF(Width>0,Width,1DL),If(Width>0,Width,0.039370078740157DL) Unit=DL */
544     float B; /* F=Height*0.5 Unit=DL */
545     unsigned int IX; /* */
546     float X; /* F=Width*0 */
547     float Y; /* F=Height*0.5 */
548 };
549 
550 struct vdx_Layer
551 {
552     GSList *children;
553     char type;
554     gboolean Active; /* =0 */
555     unsigned int Color; /* =255 */
556     float ColorTrans; /* F=No Formula =0,0.5 */
557     gboolean Glue; /* =0,1 */
558     unsigned int IX; /* */
559     gboolean Lock; /* =0 */
560     char * Name; /* F=No Formula =,,Annotations,Apple,Background form,Bezeichnung,CE,Connec */
561     char * NameUniv; /* F=No Formula =,,Annotations,Apple,Bezeichnung,CE,Connector,Cray,Digital */
562 /* ? Layer.NameUniv.Err */
563     gboolean Print; /* =0,1 */
564     gboolean Snap; /* =0,1 */
565     unsigned int Status; /* =0,2 */
566     gboolean Visible; /* =0,1 */
567 };
568 
569 struct vdx_LayerMem
570 {
571     GSList *children;
572     char type;
573     char * LayerMember; /* F=No Formula =,,0,0;1,1,2,4,5,6, */
574 };
575 
576 struct vdx_Layout
577 {
578     GSList *children;
579     char type;
580     unsigned int ConFixedCode; /* F=0,Inh =0,3,6 */
581     gboolean ConLineJumpCode; /* F=0,Inh =0 */
582     gboolean ConLineJumpDirX; /* F=0,Inh =0 */
583     gboolean ConLineJumpDirY; /* F=0,Inh =0 */
584     unsigned int ConLineJumpStyle; /* F=0,Inh */
585     unsigned int ConLineRouteExt; /* F=0,Inh,No Formula =0,1,2 */
586     unsigned int ShapeFixedCode; /* F=0,Inh =0,3 */
587     gboolean ShapePermeablePlace; /* F=FALSE,Inh,TRUE */
588     gboolean ShapePermeableX; /* F=FALSE,Inh,TRUE */
589     gboolean ShapePermeableY; /* F=FALSE,Inh,TRUE */
590     gboolean ShapePlaceFlip; /* F=0,Inh,No Formula =0 */
591     gboolean ShapePlowCode; /* F=0,Inh =0,1 */
592     unsigned int ShapeRouteStyle; /* F=0,Inh */
593     gboolean ShapeSplit; /* F=Inh =0,1 */
594     gboolean ShapeSplittable; /* F=Inh =0,1 */
595 };
596 
597 struct vdx_Line
598 {
599     GSList *children;
600     char type;
601     unsigned int BeginArrow; /* F=0,3,41,4)))',4,GUARD(0),Inh,USE("Composite") =0,1,10,11,13,14,15,25 */
602     unsigned int BeginArrowSize; /* F=1,2,IF(User.UMLError,0,2),Inh =0,1,2,3,4 */
603     unsigned int EndArrow; /* F=0,3,41,4)))',4,GUARD(0),Inh =0,1,10,11,12,13,14,15,16,4,5,9 */
604     unsigned int EndArrowSize; /* F=1,2,IF(User.UMLError,0,2),Inh =0,1,2,3,4 */
605     gboolean LineCap; /* F=0,1,Inh =0,1 */
606     Color LineColor; /* F=0,1,14,15,2,3,4,GUARD(Sheet.5!FillForegnd),HSL(0,0,0),HSL(0,0,240),HSL(0,0,60 */
607     float LineColorTrans; /* F=0%,Inh,No Formula */
608     unsigned int LinePattern; /* F=0,1,1,0,1)',2,23,3,4,3,1)))',9,GUARD(1),Inh,Sheet.8!LinePattern */
609     float LineWeight; /* F=0.0033333333333333DT,0.01DT,0.03DT,0.12PT,0.24PT,0.254MM,0.5MM,0PT,GUARD(0.24 Unit=IN,MM,PT */
610     float Rounding; /* F=0DL,4),0.25IN,0)',4,3*User.Margin,0))',GUARD(0),Inh Unit=FT,IN,MM */
611 };
612 
613 struct vdx_LineTo
614 {
615     GSList *children;
616     char type;
617     gboolean Del; /* =1 */
618     unsigned int IX; /* */
619     float X; /* F=(Width+Scratch.Y1)/2,-0.5*Scratch.A1*AND(Scratch.B1<>Scratch.C1,Scratch Unit=IN,IN_F,MM,PT */
620     float Y; /* F=(Height-Scratch.X1)/2,-2*User.Margin,-Controls.Row_2.Y,-Scratch.A1,-User.Marg Unit=CM,IN,MM,PT */
621 };
622 
623 struct vdx_Master
624 {
625     GSList *children;
626     char type;
627     unsigned int AlignName; /* =2 */
628     gboolean AlignName_exists;
629     char * BaseID; /* ={0018B32E-000A-F00D-0000-000000000000},{001AFBE6-0020-F00D-0000-000000000000}, */
630     gboolean Hidden; /* =0,1 */
631     unsigned int ID; /* */
632     unsigned int IconSize; /* =1,3,4 */
633     gboolean IconSize_exists;
634     gboolean IconUpdate; /* =0,1 */
635     gboolean MatchByName; /* =0,1 */
636     char * Name; /* =  Enkel  1D-pil, Dubbel  1D-pil,167152-001 (R),2/8V, 2/16V & 2/16N,2950T-4 */
637     char * NameU; /* =  12 Pkt.   Text,  6 Pkt.   Text,  Enkel  1D-pil, Dubbel  1D-pil,167152-001 (R */
638     unsigned int PatternFlags; /* =0,1026,2 */
639     gboolean PatternFlags_exists;
640     char * Prompt; /* =,3-D box with variable depth and orientation.,3-D vertical bar shape. Open eit */
641     char * UniqueID; /* ={0008892C-0000-0000-8E40-00608CF305B2},{0008892C-0002-0000-8E40-00608CF305B2}, */
642 };
643 
644 struct vdx_Misc
645 {
646     GSList *children;
647     char type;
648     unsigned int BegTrigger; /* F=Inh,No Formula,_XFTRIGGER(Class!EventXFMod),_XFTRIGGER(Class.102!EventXFMod), */
649 /* ? Misc.BegTrigger.Err */
650     gboolean Calendar; /* F=Inh =0 */
651     char * Comment; /* F=INDEX(0,INDEX(0,MASTERNAME(),":"),"."),Inh,REF() =,&#xe00 */
652 /* ? Misc.Comment.Err */
653     gboolean DropOnPageScale; /* F=Inh =1 */
654     unsigned int DynFeedback; /* F=0,Inh =0,2 */
655     unsigned int EndTrigger; /* F=Inh,No Formula,_XFTRIGGER('PBX / comm. hub'!EventXFMod),_XFTRIGGER('PBX / com */
656     unsigned int GlueType; /* F=0,Inh =0,2,3 */
657     gboolean HideText; /* F=FALSE,FORMAT(Char.Size,"0.000")<0.5,GUARD((BITAND(Sheet.5!User.U */
658     gboolean IsDropSource; /* F=FALSE,Inh */
659     unsigned int LangID; /* F=Inh =1033,1036,1053,2057 */
660     gboolean LocalizeMerge; /* F=Inh =0 */
661     gboolean NoAlignBox; /* F=FALSE,GUARD(1),GUARD(TRUE),Inh */
662     gboolean NoCtlHandles; /* F=FALSE,GUARD(TRUE),Inh */
663     gboolean NoLiveDynamics; /* F=FALSE,Inh */
664     gboolean NoObjHandles; /* F=FALSE,GUARD(TRUE),Inh */
665     gboolean NonPrinting; /* F=FALSE,GUARD(TRUE),Inh,TRUE */
666     unsigned int ObjType; /* F=0,Inh,No Formula =0,1,12,2,4,8,9 */
667     char * ShapeKeywords; /* F=Inh =,ATM/FastGB,etherswitch,logical,network,system,topography,lines,connecti */
668     gboolean UpdateAlignBox; /* F=FALSE,GUARD(FALSE),Inh */
669     unsigned int WalkPreference; /* F=0,Inh =0,2,3 */
670 };
671 
672 struct vdx_MoveTo
673 {
674     GSList *children;
675     char type;
676     unsigned int IX; /* */
677     float X; /* F=(Width*1-Height*0.5)*NOT(Scratch.A1),(Width-Scratch.Y1)/2,-Geometry1.X2,-Scra Unit=IN,IN_F,MM,PT */
678     float Y; /* F=(Height+Scratch.X1)/2,-2*User.Margin,-Height*0.2,-Height*0.25,-Scratch.A1,-Us Unit=CM,IN,MM,PT */
679 };
680 
681 struct vdx_NURBSTo
682 {
683     GSList *children;
684     char type;
685     float A; /* F=Inh =-0.06462336099700583,-0.314670638477898,-0.6860878983991592,-0.701050922 */
686     float B; /* F=Inh =1 */
687     float C; /* F=Inh =-0.2847946620216469,-0.314670638477898,-0.412922655298515,-0.69374622906 */
688     float D; /* F=Inh =1 */
689     char * E; /* F=Inh,NURBS(-0.28479466686661, 3, 0, 0, 1.0000000000684,0.83800682410212,-1.570 Unit=NURBS */
690     unsigned int IX; /* */
691     float X; /* F=Geometry1.X1,Inh,Width*0,Width*0.00021847584805948,Width*0.00027894734671036, */
692     float Y; /* F=Geometry1.Y1,Height*0,Height*0.00042228834096785,Height*0.0057045664904984,He */
693 };
694 
695 struct vdx_Page
696 {
697     GSList *children;
698     char type;
699     unsigned int BackPage; /* =10,4,5,6,8 */
700     gboolean BackPage_exists;
701     gboolean Background; /* =1 */
702     unsigned int ID; /* */
703     char * Name; /* =ARP Sequence,About This Template,Background-Main,Background-Screen 1,Backgroun */
704     char * NameU; /* =ATM Sequence,About This Template,Background-Screen 1,Background-Screen 2,Blatt */
705     float ViewCenterX; /* =0,0.64955357142857,1.0133333333333,1.7838541666667,12.05,12.316272965879,2.199 */
706     float ViewCenterY; /* =0,0.093333333333333,0.62723214285714,10.03280839895,10.767716535433,11.5625,14 */
707     float ViewScale; /* =-1,-2,0.5,0.66145833333333,0.75,1,1.5408921933086,2,3.0817610062893,3.68778280 */
708 };
709 
710 struct vdx_PageLayout
711 {
712     GSList *children;
713     char type;
714     float AvenueSizeX; /* F=0.29527559055118DL,0.375DL,Inh Unit=IN,MM */
715     float AvenueSizeY; /* F=0.29527559055118DL,0.375DL,Inh Unit=IN,MM */
716     float BlockSizeX; /* F=0.19685039370079DL,0.25DL,Inh Unit=IN,MM */
717     float BlockSizeY; /* F=0.19685039370079DL,0.25DL,Inh Unit=IN,MM */
718     gboolean CtrlAsInput; /* F=FALSE,Inh */
719     gboolean DynamicsOff; /* F=FALSE,Inh */
720     gboolean EnableGrid; /* F=FALSE,Inh */
721     unsigned int LineAdjustFrom; /* F=0,Inh =0,2,3 */
722     unsigned int LineAdjustTo; /* F=0,Inh =0,2,3 */
723     gboolean LineJumpCode; /* F=1,Inh =0,1 */
724     float LineJumpFactorX; /* F=0.66666666666667,Inh */
725     float LineJumpFactorY; /* F=0.66666666666667,Inh */
726     unsigned int LineJumpStyle; /* F=0,Inh */
727     gboolean LineRouteExt; /* F=0,Inh,No Formula =0 */
728     float LineToLineX; /* F=0.098425196850394DL,0.125DL,Inh Unit=MM */
729     float LineToLineY; /* F=0.098425196850394DL,0.125DL,Inh Unit=MM */
730     float LineToNodeX; /* F=0.098425196850394DL,0.125DL,Inh Unit=MM */
731     float LineToNodeY; /* F=0.098425196850394DL,0.125DL,Inh Unit=MM */
732     gboolean PageLineJumpDirX; /* F=0,Inh =0 */
733     gboolean PageLineJumpDirY; /* F=0,Inh =0 */
734     gboolean PageShapeSplit; /* F=Inh =0,1 */
735     unsigned int PlaceDepth; /* F=0,Inh =0,1,2,3 */
736     gboolean PlaceFlip; /* F=0,Inh,No Formula =0 */
737     unsigned int PlaceStyle; /* F=0,Inh */
738     gboolean PlowCode; /* F=0,Inh =0,1 */
739     gboolean ResizePage; /* F=FALSE,Inh */
740     unsigned int RouteStyle; /* F=0,Inh */
741 };
742 
743 struct vdx_PageProps
744 {
745     GSList *children;
746     char type;
747     float DrawingScale; /* F=No Formula Unit=F_I,IN,IN_F,M,MM */
748     unsigned int DrawingScaleType; /* F=No Formula =0,1,3,4 */
749     unsigned int DrawingSizeType; /* F=No Formula =0,1,2,3,4,5,6 */
750     gboolean InhibitSnap; /* F=No Formula =0 */
751     float PageHeight; /* F=No Formula Unit=CM,DL,F_I,IN,IN_F,M,MM,NUM */
752     float PageScale; /* F=No Formula Unit=CM,IN,IN_F,MM */
753     float PageWidth; /* F=No Formula Unit=CM,DL,F_I,IN,IN_F,M,MM,NUM */
754     float ShdwObliqueAngle; /* F=0DA,No Formula Unit=NUM */
755     float ShdwOffsetX; /* F=GUARD(3MM),No Formula Unit=IN,MM,NUM */
756     float ShdwOffsetY; /* F=-0.11811023622047DP,-0.125DP,-0.125IN,-3MM,GUARD(-3MM),No Formula Unit=IN,MM,NUM */
757     float ShdwScaleFactor; /* F=100%,No Formula */
758     gboolean ShdwType; /* F=No Formula =0,1 */
759     gboolean UIVisibility; /* F=No Formula =0 */
760 };
761 
762 struct vdx_PageSheet
763 {
764     GSList *children;
765     char type;
766     unsigned int FillStyle; /* */
767     gboolean FillStyle_exists;
768     unsigned int LineStyle; /* */
769     gboolean LineStyle_exists;
770     unsigned int TextStyle; /* */
771     gboolean TextStyle_exists;
772     char * UniqueID; /* ={17B46475-6543-443F-B3D6-78FB9005398D},{312C523C-40D5-46D4-B641-3C5070AAF772}, */
773 };
774 
775 struct vdx_Para
776 {
777     GSList *children;
778     char type;
779     unsigned int Bullet; /* F=0,Inh =0,1,2 */
780     unsigned int BulletFont; /* F=Inh */
781     char * BulletFontSize; /* F=Inh =-1,0) */
782     char * BulletStr; /* F=Inh =,,, */
783     gboolean Flags; /* F=Inh =0 */
784     unsigned int HorzAlign; /* F=0,1,EndX,0,2)",FlipX*2,If(User.ShapeType>5,0,1),Inh */
785     unsigned int IX; /* */
786     float IndFirst; /* F=0DP,Inh Unit=MM */
787     float IndLeft; /* F=0DP,Inh Unit=IN,MM */
788     float IndRight; /* F=0DP,Inh */
789     unsigned int LocalizeBulletFont; /* F=Inh */
790     float SpAfter; /* F=0DT,Inh Unit=PT */
791     float SpBefore; /* F=0DT,Inh Unit=PT */
792     float SpLine; /* F=-120%,Inh Unit=DT */
793     gboolean TextPosAfterBullet; /* F=Inh =0 */
794 };
795 
796 struct vdx_PolylineTo
797 {
798     GSList *children;
799     char type;
800     float A; /* F=POLYLINE(0, 0, 0,1, 0,0, 1,0),POLYLINE(0, 0, 0.085708617154953,0, 0.085708617 Unit=POLYLINE */
801     unsigned int IX; /* */
802     float X; /* F=Width*0,Width*0.13061305469215,Width*0.2612261093843,Width*0.39183916407645,W */
803     float Y; /* F=Height*0,Height*0.17690045450495,Height*0.35380090900989,Height*0.53070136351 */
804 };
805 
806 struct vdx_PreviewPicture
807 {
808     GSList *children;
809     char type;
810     unsigned int Size; /* =1056,1064,1088,1124,1168,1192,1352,1372,1980,20740,20760,20936,20980,21032,210 */
811     gboolean Size_exists;
812 };
813 
814 struct vdx_PrintProps
815 {
816     GSList *children;
817     char type;
818     gboolean CenterX; /* F=Inh =0,1 */
819     gboolean CenterY; /* F=Inh =0,1 */
820     gboolean OnPage; /* F=Inh =0,1 */
821     float PageBottomMargin; /* F=Inh Unit=IN,MM */
822     float PageLeftMargin; /* F=Inh Unit=IN,MM */
823     float PageRightMargin; /* F=Inh Unit=IN,MM */
824     float PageTopMargin; /* F=Inh Unit=IN,MM */
825     gboolean PagesX; /* F=Inh =1 */
826     gboolean PagesY; /* F=Inh =1 */
827     unsigned int PaperKind; /* F=Inh =0,1,17,19,3,5,8,9 */
828     unsigned int PaperSource; /* F=Inh =7 */
829     gboolean PrintGrid; /* F=Inh =0 */
830     unsigned int PrintPageOrientation; /* F=Inh =0,1,2 */
831     float ScaleX; /* F=Inh =0.76,1 */
832     gboolean ScaleY; /* F=Inh =1 */
833 };
834 
835 struct vdx_PrintSetup
836 {
837     GSList *children;
838     char type;
839     float PageBottomMargin; /* =0.25,0.55,106.63 */
840     float PageLeftMargin; /* =0.25,138.38 */
841     float PageRightMargin; /* =0.25,138.38 */
842     float PageTopMargin; /* =0.25,106.63 */
843     unsigned int PaperSize; /* =1,262,8,9 */
844     gboolean PrintCenteredH; /* =0 */
845     gboolean PrintCenteredV; /* =0 */
846     gboolean PrintFitOnPages; /* =0,1 */
847     gboolean PrintLandscape; /* =0,1 */
848     gboolean PrintPagesAcross; /* =1 */
849     gboolean PrintPagesDown; /* =1 */
850     gboolean PrintScale; /* =1 */
851 };
852 
853 struct vdx_Prop
854 {
855     GSList *children;
856     char type;
857     gboolean Calendar; /* F=No Formula =0 */
858     char * Format; /* F=Guard(ThePage!Prop.Theme.Format),Inh,No Formula,ThePage!Prop.Theme.Format =,& */
859     unsigned int ID; /* */
860     gboolean Invisible; /* F=Inh,No Formula =0,1 */
861     char * Label; /* F=Inh,No Formula =,,&Child Layout Style,&Name,&Preferred Pr */
862     unsigned int LangID; /* F=Inh =1033,1036,1053 */
863     char * Name; /* =Disk_Vertical */
864     char * NameU; /* =1stLegDir,ALMode,AdditionalInfo,AdminInterface,AssetNumber,BelongsTo,Building, */
865     char * Prompt; /* F=Inh,No Formula =,,Abteilung,Administrative Interface,Administrative S */
866     char * SortKey; /* F=1,2,3,4,5,6,7,8,Inh,No Formula =, Choice, Switch,,1,2,3,4,5,6,7,8,Akt */
867     unsigned int Type; /* F="5","7","5","7",Inh,No Formula =0,1,2,3,4,5,7 */
868     float Value; /* F=-1,6,206,-1)',Guard(ThePage!Prop.Theme),Inh,No Formula,ThePage!Prop.ShowDivid Unit=BOOL,IN,STR */
869     gboolean Verify; /* F=Inh,No Formula =0,1 */
870 };
871 
872 struct vdx_Protection
873 {
874     GSList *children;
875     char type;
876     gboolean LockAspect; /* F=0,Inh =0,1 */
877     gboolean LockBegin; /* F=0,Inh =0 */
878     gboolean LockCalcWH; /* F=0,Inh =0,1 */
879     gboolean LockCrop; /* F=0,GUARD(1),Inh =0,1 */
880     gboolean LockCustProp; /* F=Inh =0 */
881     gboolean LockDelete; /* F=0,GUARD(1),Inh,NOT(ISERROR(Sheet.18!Width)),NOT(ISERROR(Sheet.5!Width)),NOT(I */
882     gboolean LockEnd; /* F=0,Inh =0 */
883     gboolean LockFormat; /* F=0,GUARD(1),Inh =0,1 */
884     gboolean LockGroup; /* F=0,GUARD(1),Inh =0,1 */
885     gboolean LockHeight; /* F=0,GUARD(1),Inh =0,1 */
886     gboolean LockMoveX; /* F=0,GUARD(1),Inh =0,1 */
887     gboolean LockMoveY; /* F=0,GUARD(1),Inh =0,1 */
888     gboolean LockRotate; /* F=0,GUARD(0),GUARD(1),Guard(0),Inh =0,1 */
889     gboolean LockSelect; /* F=0,GUARD(1),Inh =0,1 */
890     gboolean LockTextEdit; /* F=0,GUARD(1),Inh,Sheet.5!LockTextEdit,Sheet.5!User.UMLAutoLockTextEdit =0,1 */
891     gboolean LockVtxEdit; /* F=0,GUARD(1),Inh =0,1 */
892     gboolean LockWidth; /* F=0,Inh =0,1 */
893 };
894 
895 struct vdx_RulerGrid
896 {
897     GSList *children;
898     char type;
899     unsigned int XGridDensity; /* F=8,Inh =0,4,8 */
900     float XGridOrigin; /* F=0DL,Inh Unit=IN */
901     float XGridSpacing; /* F=0DL,Inh Unit=CM,IN,MM */
902     unsigned int XRulerDensity; /* F=32,Inh =16,32 */
903     float XRulerOrigin; /* F=0DL,Inh Unit=IN,MM */
904     unsigned int YGridDensity; /* F=8,Inh =0,4,8 */
905     float YGridOrigin; /* F=0DL,Inh Unit=IN */
906     float YGridSpacing; /* F=0DL,Inh Unit=CM,IN,MM */
907     unsigned int YRulerDensity; /* F=32,Inh =16,32 */
908     float YRulerOrigin; /* F=0DL,Inh Unit=IN */
909 };
910 
911 struct vdx_Scratch
912 {
913     GSList *children;
914     char type;
915     float A; /* F=0)",0,0,1)+Int(Sheet.21!Width/Scratch.X1)',0,0,1)+Int(Sheet.38!Width/Scratch. Unit=BOOL,DA,DL,DT,IN,MM,STR */
916     float B; /* F=(LineWeight+(EndArrowSize+2)*0.02IN*Scratch.B1),(LineWeight+(EndArrowSize+2)* Unit=BOOL,DEG,DL,DT,IN,MM,PT,STR */
917     float C; /* F=(ABS(Width)<2*Scratch.B2),0,Geometry1.Y7,Geometry1.Y1)",0,LineWeight*-3,0) Unit=BOOL,DA,DL,IN,MM,PT,STR */
918     float D; /* F=1,1,-1)",7,(Geometry1.X7+Geometry1.X8)/2,Width))",7,Geometry1.Y7,(Geometry1.Y Unit=BOOL,DL,STR */
919     unsigned int IX; /* */
920     float X; /* F=((4/9)*(Controls.X1-((8/27)*Geometry1.X1)-((1/27)*Geometry1.X4)))-((2/9)*(Con Unit=CM,IN,MM,PT */
921     float Y; /* F=((4/9)*(Controls.Y1-((8/27)*Geometry1.Y1)-((1/27)*Geometry1.Y4)))-((2/9)*(Con Unit=IN,MM,PT */
922 };
923 
924 struct vdx_Shape
925 {
926     GSList *children;
927     char type;
928     unsigned int Data1; /* =,1001 */
929     unsigned int Data2; /* = */
930     unsigned int Data3; /* = */
931     gboolean Del; /* =1 */
932     unsigned int FillStyle; /* */
933     gboolean FillStyle_exists;
934     unsigned int ID; /* */
935     unsigned int LineStyle; /* */
936     gboolean LineStyle_exists;
937     unsigned int Master; /* =0,10,101,106,107,108,11,112,113,114,12,13,14,15,16,17,18,19,2,20,21,22,23,24,2 */
938     gboolean Master_exists;
939     unsigned int MasterShape; /* =10,100,101,11,12,121,125,13,14,144,147,148,149,15,150,151,152,153,154,156,16,1 */
940     gboolean MasterShape_exists;
941     char * Name; /* =28_216_BSeries_SAN_Switch,4xx4_dualSCSI_Intfc,54x4_Rear,9740 ECM,Attributes,CA */
942     char * NameU; /* =  6 Pkt.   Text.101,  6 Pkt.   Text.105,  6 Pkt.   Text.112,  6 Pkt.   Text.12 */
943     unsigned int TextStyle; /* */
944     gboolean TextStyle_exists;
945     char * Type; /* =Foreign,Group,Guide,Shape */
946     char * UniqueID; /* ={001B0C9A-2915-427E-96BF-4779DE5A4600},{0038D543-67DA-45C2-8EB5-5F966B144DD1}, */
947 };
948 
949 struct vdx_Shapes
950 {
951     GSList *children;
952     char type;
953 };
954 
955 struct vdx_SplineKnot
956 {
957     GSList *children;
958     char type;
959     float A; /* F=Inh =0,0.01588792876351469,0.019830308804445,0.049324479568668,0.055118110236 */
960     unsigned int IX; /* */
961     float X; /* F=Geometry1.X1,Inh,Scratch.X2/(12/81),Sheet.77!Width*1.4396670792842,Sheet.77!W */
962     float Y; /* F=Geometry1.Y1,Height*-0.049254006388619,Height*-0.10723150683158,Height*-0.115 Unit=MM */
963 };
964 
965 struct vdx_SplineStart
966 {
967     GSList *children;
968     char type;
969     float A; /* F=Inh =0 */
970     float B; /* F=Inh =0 */
971     float C; /* F=Inh =0.13484716066176,0.1698959365932391,0.1910708009830822,0.197567972399904 */
972     float D; /* F=Inh =2,3 */
973     unsigned int IX; /* */
974     float X; /* F=2*Controls.Row_1-Width/2,Inh,Scratch.X1/(12/81),Width*-0.00041659196377884,Wi */
975     float Y; /* F=2*Controls.Row_1.Y,Height*-0.11077030280116,Height*-0.29823512702716,Height*- Unit=IN,MM */
976 };
977 
978 struct vdx_StyleProp
979 {
980     GSList *children;
981     char type;
982     gboolean EnableFillProps; /* F=0,1,Inh =0,1 */
983     gboolean EnableLineProps; /* F=0,1,Inh =0,1 */
984     gboolean EnableTextProps; /* F=0,1,Inh =0,1 */
985     gboolean HideForApply; /* F=0,1,FALSE,Inh,No Formula */
986 };
987 
988 struct vdx_StyleSheet
989 {
990     GSList *children;
991     char type;
992     unsigned int FillStyle; /* */
993     gboolean FillStyle_exists;
994     unsigned int ID; /* */
995     unsigned int LineStyle; /* */
996     gboolean LineStyle_exists;
997     char * Name; /* =10 % grå,10% Gray fill,1pxl line,30 % grå,30% Gray fill,3D - förgrund,3D -  */
998     char * NameU; /* =1-Pixel-Linie,10 % Grau,10 % grå,10% Gray fill,1pxl line,3-Pixel-Linie,30 % G */
999     unsigned int TextStyle; /* */
1000     gboolean TextStyle_exists;
1001 };
1002 
1003 struct vdx_Tab
1004 {
1005     GSList *children;
1006     char type;
1007     gboolean Alignment; /* =0 */
1008     unsigned int IX; /* */
1009     float Position; /* Unit=DP,MM */
1010 };
1011 
1012 struct vdx_Tabs
1013 {
1014     GSList *children;
1015     char type;
1016     unsigned int IX; /* */
1017 };
1018 
1019 struct vdx_Text
1020 {
1021     GSList *children;
1022     char type;
1023     unsigned int IX; /* */
1024     unsigned int cp; /* = */
1025     float fld; /* =0.006,0.009,0.011,0.031,0.042,0.046,0.048,0.061,0.063,0.071,0.081,0.084,0.086, */
1026     unsigned int pp; /* = */
1027     unsigned int tp; /* = */
1028 };
1029 
1030 struct vdx_TextBlock
1031 {
1032     GSList *children;
1033     char type;
1034     float BottomMargin; /* F=0DP,0DT,0PT,1PT,2PT,4PT,Char.Size*0.5,Char.Size/4,Inh Unit=PT */
1035     float DefaultTabStop; /* F=0.59055118110236DP,0.5DP,Inh =0.5,0.590551,0.59055118110236,0.590551181102362 */
1036     float LeftMargin; /* F=0DP,0PT,1PT,2PT,4PT,Char.Size/2,Inh Unit=PT */
1037     float RightMargin; /* F=0DP,0PT,1PT,2PT,4PT,Char.Size/2,Inh Unit=PT */
1038     unsigned int TextBkgnd; /* F=0,1+FillForegnd,15,2,Inh */
1039     float TextBkgndTrans; /* F=0%,Inh,No Formula */
1040     gboolean TextDirection; /* F=0,Inh =0 */
1041     float TopMargin; /* F=0DP,0DT,0PT,1PT,2PT,4PT,Char.Size/4,GUARD(IF(Parameters!Geometry1.NoShow,1PT, Unit=PT */
1042     unsigned int VerticalAlign; /* F=0,1,2,Inh =0,1,2 */
1043 };
1044 
1045 struct vdx_TextXForm
1046 {
1047     GSList *children;
1048     char type;
1049     float TxtAngle; /* F=-Angle,-Scratch.A1,90DEG),0DEG,180DEG)",90DEG),0DEG,180DEG)',GRAVITY(Angle,-6 Unit=DEG */
1050 /* ? TextXForm.TxtAngle.Err */
1051     float TxtHeight; /* F=0,TEXTHEIGHT(TheText,TxtWidth),TEXTWIDTH(TheText)))",1,TEXTWIDTH(TheText),TEX Unit=CM,IN,IN_F,MM */
1052     float TxtLocPinX; /* F=(TxtWidth/2)*Para.HorzAlign,0.5*TxtWidth,GUARD(TxtWidth),GUARD(TxtWidth*0.5), Unit=CM,IN,IN_F,MM,PT */
1053     float TxtLocPinY; /* F=-90DEG,1,If(Abs(Angle)>90DEG,1,0))",0.5*TxtHeight,GUARD(0.5*TxtHeight),GUA Unit=CM,IN,IN_F,MM,PT */
1054     float TxtPinX; /* F=(Controls.X2+Controls.X1)/2,0,0,Width/2)",0.5*Width,1,1/2,1)*Width",1,Control Unit=IN,IN_F,MM,PT */
1055     float TxtPinY; /* F=(Controls.Y2+Controls.Y1)/2,-TxtHeight/2,0,1/2,0)*Height",0,Height/2,Height)" Unit=CM,IN,IN_F,MM,PT */
1056     float TxtWidth; /* F=0,TEXTWIDTH(TheText),TEXTHEIGHT(TheText,TEXTWIDTH(TheText)))",0,TEXTWIDTH(The Unit=CM,IN,IN_F,MM,PT */
1057 };
1058 
1059 struct vdx_User
1060 {
1061     GSList *children;
1062     char type;
1063     unsigned int ID; /* */
1064     char * Name; /* =216Nff,216Npp */
1065     char * NameU; /* =1stLegDir,1stLegDirInd,1stLegDirLook,216V,216Vff,216Vpp,28V,28Vpp,AL_ChildLayo */
1066     char * Prompt; /* F=Inh,No Formula =,,0 = Horizontal, 1 = Vertical,1=left, 2=center, 3=ri */
1067     float Value; /* F=(0.125IN*User.AntiScale)/2,(PinX-LocPinX+Connections.X1)-BeginX,(PinY-LocPinY Unit=BOOL,COLOR,DA,DL,GUID,IN,MM,PNT,PT,STR */
1068 };
1069 
1070 struct vdx_VisioDocument
1071 {
1072     GSList *children;
1073     char type;
1074     unsigned int DocLangID; /* =1033,1053,2057 */
1075     gboolean DocLangID_exists;
1076     unsigned int EventList; /* = */
1077     unsigned int Masters; /* = */
1078     unsigned int buildnum; /* =3216,5509 */
1079     gboolean buildnum_exists;
1080     char * key; /* =049D60A1B3BC9F05FEF68173361940DBB593CBE9BB6EF070E3E7DEEA1577EB422D8AAC442F09A3 */
1081     gboolean metric; /* =0,1 */
1082     unsigned int start; /* =190 */
1083     gboolean start_exists;
1084     char * version; /* =preserve */
1085     char * xmlns; /* =http://schemas.microsoft.com/visio/2003/core,urn:schemas-microsoft-com:office: */
1086 };
1087 
1088 struct vdx_Window
1089 {
1090     GSList *children;
1091     char type;
1092     char * ContainerType; /* =Page */
1093     char * Document; /* =C:\Archivos de programa\Microsoft Office\Visio11\1033\UMLACT_M.VSS,C:\Archivos */
1094     gboolean DynamicGridEnabled; /* =0,1 */
1095     unsigned int GlueSettings; /* =11,47,9 */
1096     unsigned int ID; /* */
1097     unsigned int Page; /* =0,2,4,5,7,8 */
1098     gboolean Page_exists;
1099     unsigned int ParentWindow; /* =0,3,4,8 */
1100     gboolean ParentWindow_exists;
1101     gboolean ReadOnly; /* =1 */
1102     unsigned int Sheet; /* =1118,137,152,153,154,155,157,2,45,5 */
1103     gboolean Sheet_exists;
1104     gboolean ShowConnectionPoints; /* =0,1 */
1105     gboolean ShowGrid; /* =0,1 */
1106     gboolean ShowGuides; /* =1 */
1107     gboolean ShowPageBreaks; /* =0 */
1108     gboolean ShowRulers; /* =1 */
1109     unsigned int SnapExtensions; /* =1,34 */
1110     unsigned int SnapSettings; /* =295,319,32807,33063,39,65831,65847 */
1111     unsigned int StencilGroup; /* =10,11 */
1112     unsigned int StencilGroupPos; /* =0,1,2,255,3,4,5,6,7 */
1113     float TabSplitterPos; /* =0.326,0.33,0.432,0.5,0.807,0.892 */
1114     float ViewCenterX; /* =0.15616797900262,0.31003937007874,0.31496062992126,0.71194225721785,1.01333333 */
1115     float ViewCenterY; /* =0.093333333333333,0.24184476940382,0.39370078740157,0.45931758530184,0.4921259 */
1116     float ViewScale; /* =-1,-2,-3,0.5,0.66145833333333,0.75,1,1.5408921933086,1.984375,2,3.081761006289 */
1117     unsigned int WindowHeight; /* =24,244,262,280,283,354,373,392,411,414,430,431,459,465,554,565,603,605,610,621 */
1118     gboolean WindowHeight_exists;
1119     int WindowLeft; /* =-134,-185,-186,-195,-196,-238,-240,-247,-248,-289,-300,-4,-5,0,119,139,158,178 */
1120     gboolean WindowLeft_exists;
1121     unsigned int WindowState; /* =1,1025,1073741824,268435456,536870912,67109889 */
1122     gboolean WindowState_exists;
1123     int WindowTop; /* =-1,-175,-23,-24,-30,-34,-36,-59,0,1,101,117,134,1480,151,16,22,246,265,284,3,3 */
1124     gboolean WindowTop_exists;
1125     char * WindowType; /* =Drawing,Stencil */
1126     unsigned int WindowWidth; /* =1017,1018,1020,1022,1032,1095,1119,1133,1164,1192,1246,128,1288,160,1688,179,1 */
1127     gboolean WindowWidth_exists;
1128 };
1129 
1130 struct vdx_Windows
1131 {
1132     GSList *children;
1133     char type;
1134     unsigned int ClientHeight; /* =587,605,607,609,612,621,625,641,643,681,791,851,855,864,868,871,875,882,890 */
1135     gboolean ClientHeight_exists;
1136     unsigned int ClientWidth; /* =1020,1022,1024,1095,1119,1125,1156,1184,1236,1280,1680,818,819,828 */
1137     gboolean ClientWidth_exists;
1138     unsigned int Window; /* = */
1139 };
1140 
1141 struct vdx_XForm
1142 {
1143     GSList *children;
1144     char type;
1145     float Angle; /* F=-0.5235987756666,-90DEG,-Scratch.B1*90DEG,ATAN2(EndY-BeginY,EndX-BeginX),ATan Unit=DEG */
1146     gboolean FlipX; /* F=FlipY,GUARD(0),GUARD(FALSE),Guard(0),Guard(EndX<BeginX),Guard(FALSE),Inh,S */
1147     gboolean FlipY; /* F=BeginY<EndY)",BeginY<EndY)',FlipX,GUARD(0),GUARD(EndY<BeginY),GUARD( */
1148     float Height; /* F=0.2IN-User.shade*2/3,1/2IN,5MM*User.AntiScale,Abs(EndY-BeginY),GUARD(-0.19685 Unit=CM,IN,IN_F,MM,PT */
1149     float LocPinX; /* F=0.5*Width,GUARD(0),GUARD(0.5IN),GUARD(Width*0),GUARD(Width*0.25),GUARD(Width* Unit=IN,IN_F,M,MM,PT */
1150     float LocPinY; /* F=0.5*Height,BeginX,Height,0)",EndX)*Height",GUARD(0),GUARD(Height*0),GUARD(Hei Unit=CM,IN,IN_F,MM,PT */
1151     float PinX; /* F=(BeginX+EndX)/2,AlignCenter+-1.2100542789995E-10DL,AlignCenter+1.210054278999 Unit=IN,IN_F,MM */
1152     float PinY; /* F=(BeginY+EndY)/2,AlignBottom+0.59055118063851DL,AlignBottom+0.59055118069901DL Unit=IN,IN_F,MM */
1153     unsigned int ResizeMode; /* F=GUARD(0),Inh,No Formula =0,1,2 */
1154     float Width; /* F=3,2*User.Margin,0))',Abs(EndX-BeginX),GUARD(-0.19685039370079DL),GUARD(-0.25D Unit=IN,IN_F,MM,PT */
1155 };
1156 
1157 struct vdx_XForm1D
1158 {
1159     GSList *children;
1160     char type;
1161     float BeginX; /* F=GUARD(Sheet.10!PinX),GUARD(Sheet.5!LocPinX),Guard(Sheet.6!Width+Sheet.9!Width Unit=IN,IN_F,MM */
1162 /* ? XForm1D.BeginX.Err */
1163     float BeginY; /* F=GUARD(Sheet.13!PinY+Sheet.13!Height),GUARD(Sheet.5!LocPinY),GUARD(Sheet.8!Pin Unit=IN,IN_F,MM */
1164 /* ? XForm1D.BeginY.Err */
1165     float EndX; /* F=GUARD(BeginX-Sheet.5!Scratch.X1),GUARD(Sheet.13!PinX),GUARD(Sheet.5!Controls. Unit=IN,IN_F,MM */
1166 /* ? XForm1D.EndX.Err */
1167     float EndY; /* F=BeginY+Sheet.6!Scratch.Y1,GUARD(BeginY),GUARD(BeginY-Sheet.5!Scratch.Y1),GUAR Unit=IN,IN_F,MM */
1168 /* ? XForm1D.EndY.Err */
1169 };
1170 
1171 struct vdx_cp
1172 {
1173     GSList *children;
1174     char type;
1175     unsigned int IX; /* */
1176 };
1177 
1178 struct vdx_fld
1179 {
1180     GSList *children;
1181     char type;
1182     unsigned int IX; /* */
1183 };
1184 
1185 struct vdx_pp
1186 {
1187     GSList *children;
1188     char type;
1189     unsigned int IX; /* */
1190 };
1191 
1192 struct vdx_tp
1193 {
1194     GSList *children;
1195     char type;
1196     unsigned int IX; /* */
1197 };
1198 
1199 struct vdx_text
1200 {
1201     GSList *children;
1202     char type;
1203     char * text; /* */
1204 };
1205 
1206 enum {
1207     vdx_types_any = 0,
1208     vdx_types_Act,
1209     vdx_types_Align,
1210     vdx_types_ArcTo,
1211     vdx_types_Char,
1212     vdx_types_ColorEntry,
1213     vdx_types_Colors,
1214     vdx_types_Connect,
1215     vdx_types_Connection,
1216     vdx_types_Connects,
1217     vdx_types_Control,
1218     vdx_types_CustomProp,
1219     vdx_types_CustomProps,
1220     vdx_types_DocProps,
1221     vdx_types_DocumentProperties,
1222     vdx_types_DocumentSettings,
1223     vdx_types_DocumentSheet,
1224     vdx_types_Ellipse,
1225     vdx_types_EllipticalArcTo,
1226     vdx_types_Event,
1227     vdx_types_EventItem,
1228     vdx_types_EventList,
1229     vdx_types_FaceName,
1230     vdx_types_FaceNames,
1231     vdx_types_Field,
1232     vdx_types_Fill,
1233     vdx_types_FontEntry,
1234     vdx_types_Fonts,
1235     vdx_types_Foreign,
1236     vdx_types_ForeignData,
1237     vdx_types_Geom,
1238     vdx_types_Group,
1239     vdx_types_HeaderFooter,
1240     vdx_types_HeaderFooterFont,
1241     vdx_types_Help,
1242     vdx_types_Hyperlink,
1243     vdx_types_Icon,
1244     vdx_types_Image,
1245     vdx_types_InfiniteLine,
1246     vdx_types_Layer,
1247     vdx_types_LayerMem,
1248     vdx_types_Layout,
1249     vdx_types_Line,
1250     vdx_types_LineTo,
1251     vdx_types_Master,
1252     vdx_types_Misc,
1253     vdx_types_MoveTo,
1254     vdx_types_NURBSTo,
1255     vdx_types_Page,
1256     vdx_types_PageLayout,
1257     vdx_types_PageProps,
1258     vdx_types_PageSheet,
1259     vdx_types_Para,
1260     vdx_types_PolylineTo,
1261     vdx_types_PreviewPicture,
1262     vdx_types_PrintProps,
1263     vdx_types_PrintSetup,
1264     vdx_types_Prop,
1265     vdx_types_Protection,
1266     vdx_types_RulerGrid,
1267     vdx_types_Scratch,
1268     vdx_types_Shape,
1269     vdx_types_Shapes,
1270     vdx_types_SplineKnot,
1271     vdx_types_SplineStart,
1272     vdx_types_StyleProp,
1273     vdx_types_StyleSheet,
1274     vdx_types_Tab,
1275     vdx_types_Tabs,
1276     vdx_types_Text,
1277     vdx_types_TextBlock,
1278     vdx_types_TextXForm,
1279     vdx_types_User,
1280     vdx_types_VisioDocument,
1281     vdx_types_Window,
1282     vdx_types_Windows,
1283     vdx_types_XForm,
1284     vdx_types_XForm1D,
1285     vdx_types_cp,
1286     vdx_types_fld,
1287     vdx_types_pp,
1288     vdx_types_tp,
1289     vdx_types_text
1290 };
1291 
1292 extern char * vdx_Units[];
1293 extern char * vdx_Types[];
1294