cxfdefs.h

Go to the documentation of this file.
00001 // $Id: cxfdefs.h 1445 2006-07-14 20:15:02Z phil $
00002 /* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
00003 ================================XARAHEADERSTART===========================
00004  
00005                Xara LX, a vector drawing and manipulation program.
00006                     Copyright (C) 1993-2006 Xara Group Ltd.
00007        Copyright on certain contributions may be held in joint with their
00008               respective authors. See AUTHORS file for details.
00009 
00010 LICENSE TO USE AND MODIFY SOFTWARE
00011 ----------------------------------
00012 
00013 This file is part of Xara LX.
00014 
00015 Xara LX is free software; you can redistribute it and/or modify it
00016 under the terms of the GNU General Public License version 2 as published
00017 by the Free Software Foundation.
00018 
00019 Xara LX and its component source files are distributed in the hope
00020 that it will be useful, but WITHOUT ANY WARRANTY; without even the
00021 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00022 See the GNU General Public License for more details.
00023 
00024 You should have received a copy of the GNU General Public License along
00025 with Xara LX (see the file GPL in the root directory of the
00026 distribution); if not, write to the Free Software Foundation, Inc., 51
00027 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
00028 
00029 
00030 ADDITIONAL RIGHTS
00031 -----------------
00032 
00033 Conditional upon your continuing compliance with the GNU General Public
00034 License described above, Xara Group Ltd grants to you certain additional
00035 rights. 
00036 
00037 The additional rights are to use, modify, and distribute the software
00038 together with the wxWidgets library, the wxXtra library, and the "CDraw"
00039 library and any other such library that any version of Xara LX relased
00040 by Xara Group Ltd requires in order to compile and execute, including
00041 the static linking of that library to XaraLX. In the case of the
00042 "CDraw" library, you may satisfy obligation under the GNU General Public
00043 License to provide source code by providing a binary copy of the library
00044 concerned and a copy of the license accompanying it.
00045 
00046 Nothing in this section restricts any of the rights you have under
00047 the GNU General Public License.
00048 
00049 
00050 SCOPE OF LICENSE
00051 ----------------
00052 
00053 This license applies to this program (XaraLX) and its constituent source
00054 files only, and does not necessarily apply to other Xara products which may
00055 in part share the same code base, and are subject to their own licensing
00056 terms.
00057 
00058 This license does not apply to files in the wxXtra directory, which
00059 are built into a separate library, and are subject to the wxWindows
00060 license contained within that directory in the file "WXXTRA-LICENSE".
00061 
00062 This license does not apply to the binary libraries (if any) within
00063 the "libs" directory, which are subject to a separate license contained
00064 within that directory in the file "LIBS-LICENSE".
00065 
00066 
00067 ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
00068 ----------------------------------------------
00069 
00070 Subject to the terms of the GNU Public License (see above), you are
00071 free to do whatever you like with your modifications. However, you may
00072 (at your option) wish contribute them to Xara's source tree. You can
00073 find details of how to do this at:
00074   http://www.xaraxtreme.org/developers/
00075 
00076 Prior to contributing your modifications, you will need to complete our
00077 contributor agreement. This can be found at:
00078   http://www.xaraxtreme.org/developers/contribute/
00079 
00080 Please note that Xara will not accept modifications which modify any of
00081 the text between the start and end of this header (marked
00082 XARAHEADERSTART and XARAHEADEREND).
00083 
00084 
00085 MARKS
00086 -----
00087 
00088 Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
00089 designs are registered or unregistered trademarks, design-marks, and/or
00090 service marks of Xara Group Ltd. All rights in these marks are reserved.
00091 
00092 
00093       Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
00094                         http://www.xara.com/
00095 
00096 =================================XARAHEADEREND============================
00097  */
00098 // Constants and types for the v2 file format
00099 
00100 #ifndef INC_CXFDEFS
00101 #define INC_CXFDEFS
00102 
00103 
00105 // Camelot version 1.5 tags
00107 
00108 
00109 #define CXF_IDWORD1         0x41524158
00110 #define CXF_IDWORD2         0x0a0da3a3
00111 #define CXF_UNKNOWN_SIZE    (-1)
00112 
00113 //-------------------------------------------------------------------------------------
00114 // Data Types
00115 //-------------------------------------------------------------------------------------
00116 typedef unsigned short  UINT16;
00117 typedef short           INT16;
00118 
00119 //-------------------------------------------------------------------------------------
00120 // Record Data Constants
00121 //-------------------------------------------------------------------------------------
00122 #define CXF_TRANSPARANCY_TYPE_NONE          0
00123 #define CXF_TRANSPARANCY_TYPE_MIX           1
00124 #define CXF_TRANSPARANCY_TYPE_STAINEDGLASS  2
00125 #define CXF_TRANSPARANCY_TYPE_BLEACH        3
00126 #define CXF_TRANSPARENCY_TYPE_CONTRAST      13
00127 #define CXF_TRANSPARENCY_TYPE_SATURATION    16
00128 #define CXF_TRANSPARENCY_TYPE_DARKEN        19
00129 #define CXF_TRANSPARENCY_TYPE_LIGHTEN       22
00130 #define CXF_TRANSPARENCY_TYPE_BRIGHTNESS    25
00131 #define CXF_TRANSPARENCY_TYPE_LUMINOSITY    28
00132 
00133 #define CXF_CAP_STYLE_BUTT      1
00134 #define CXF_CAP_STYLE_ROUND     2
00135 #define CXF_CAP_STYLE_SQUARE    3
00136 
00137 #define CXF_JOIN_STYLE_MITRE    1
00138 #define CXF_JOIN_STYLE_ROUND    2
00139 #define CXF_JOIN_STYLE_BEVELLED 3
00140 
00141 #define CXF_WINDING_RULE_NONZERO    1
00142 #define CXF_WINDING_RULE_NEGATIVE   2
00143 #define CXF_WINDING_RULE_EVENODD    3
00144 #define CXF_WINDING_RULE_POSITIVE   4
00145 
00146 //-------------------------------------------------------------------------------------
00147 // References
00148 //-------------------------------------------------------------------------------------
00149 
00150 // Default bitmap definitions for the v2 file format
00151 // These are the built in bitmaps that can be referred to by just their reference number
00152 // as they are assumed to be built in.
00153 // As with all other default references, all their numbers go from -1 downwards i.e. more negative
00154 // and hence occupy the negative range of a INT32 record number.
00155 // Unlike colours, where this is defined in a separate file, cfxcols.h, the bitmaps are
00156 // liklely to be the one default reference which is the default bitmap.
00157 
00158 #define REF_DEFAULTBITMAP_BUILTIN   (-1)
00159 
00160 //-------------------------------------------------------------------------------------
00161 // Record sizes
00162 //-------------------------------------------------------------------------------------
00163 
00164 //-----------------
00165 // Size of Compression records
00166 
00167 #define TAG_STARTCOMPRESSION_SIZE   4
00168 #define TAG_ENDCOMPRESSION_SIZE     8
00169 
00170 //-----------------
00171 // Document records
00172 #define TAG_CHAPTER_SIZE            0
00173 #define TAG_SPREAD_SIZE             0
00174 #define TAG_PAGE_SIZE               16
00175 #define TAG_SPREADINFORMATION_SIZE  17
00176 
00177 #define TAG_GRIDRULERSETTINGS_SIZE  17
00178 #define TAG_GRIDRULERORIGIN_SIZE    8
00179 
00180 //----------------
00181 // Tag management
00182 #define TAG_ATOMICTAGS_SIZE         CXF_UNKNOWN_SIZE
00183 #define TAG_ESSENTIALTAGS_SIZE      CXF_UNKNOWN_SIZE
00184 #define TAG_TAGDESCRIPTION_SIZE     CXF_UNKNOWN_SIZE
00185 
00186 //-----------------
00187 // Render-related tags
00188 #define TAG_NONRENDERSECTION_START_SIZE 0
00189 #define TAG_NONRENDERSECTION_END_SIZE   0
00190 #define TAG_RENDERING_PAUSE_SIZE        0
00191 #define TAG_RENDERING_RESUME_SIZE       0
00192 
00193 //----------------
00194 // Layers
00195 #define TAG_LAYER_SIZE              0
00196 #define TAG_LAYERDETAILS_SIZE       CXF_UNKNOWN_SIZE
00197 #define TAG_GUIDELAYERDETAILS_SIZE  CXF_UNKNOWN_SIZE
00198 #define TAG_LAYER_FLAG_VISIBLE      0x1
00199 #define TAG_LAYER_FLAG_LOCKED       0x2
00200 #define TAG_LAYER_FLAG_PRINTABLE    0x4
00201 #define TAG_LAYER_FLAG_ACTIVE       0x8
00202 #define TAG_LAYER_FLAG_PAGEBACKGROUND   0x10
00203 #define TAG_LAYER_FLAG_BACKGROUND   0x20
00204 
00205 // New Frame Layer tags in new flags byte.
00206 #define TAG_LAYER_FLAG_SOLID        0x1 //
00207 #define TAG_LAYER_FLAG_OVERLAY      0x2 //
00208 #define TAG_LAYER_FLAG_HIDDEN       0x4 //
00209 
00210 #define TAG_LAYER_FRAMEPROPS_SIZE   5
00211 #define TAG_SPREAD_ANIMPROPS_SIZE   28
00212 
00213 
00214 
00215 #define TAG_SPREADSCALING_ACTIVE_SIZE   24
00216 #define TAG_SPREADSCALING_INACTIVE_SIZE 24
00217 
00218 //-----------------
00219 // Size of Colour reference records
00220 
00221 #define TAG_DEFINERGBCOLOUR_SIZE        3
00222 #define TAG_DEFINECOMPLEXCOLOUR_SIZE    29
00223 
00224 //-----------------
00225 // View records
00226 #define TAG_VIEWPORT_SIZE       16
00227 #define TAG_VIEWQUALITY_SIZE    1
00228 
00229 #define TAG_DOCUMENTVIEW_SIZE   24
00230 
00231 //-----------------
00232 // Document unit tags
00233 
00234 #define TAG_DEFINE_PREFIXUSERUNIT_SIZE      28
00235 #define TAG_DEFINE_SUFFIXUSERUNIT_SIZE      28
00236 #define TAG_DEFINE_DEFAULTUNITS_SIZE        8
00237 
00238 //-----------------
00239 // Document info tags
00240 
00241 #define TAG_DOCUMENTDATES_SIZE              8
00242 #define TAG_DOCUMENTUNDOSIZE_SIZE           4
00243 #define TAG_DOCUMENTFLAGS_SIZE              4
00244 
00245 //-----------------
00246 // document nudge size tag
00247 #define TAG_DOCUMENTNUDGESIZE               4
00248 
00249 //-----------------
00250 // Attribute record sizes
00251 #define TAG_LINECOLOUR_SIZE                         4
00252 #define TAG_FLATFILL_SIZE                           4
00253 #define TAG_LINEWIDTH_SIZE                          4
00254 #define TAG_LINEARFILL_SIZE                         40      // was 24, BUT + 16 for profile == 40
00255 #define TAG_LINEARFILL3POINT_SIZE                   48
00256 #define TAG_CIRCULARFILL_SIZE                       40      // was 24, BUT + 16 for profile == 40
00257 #define TAG_ELLIPTICALFILL_SIZE                     48      // was 32, BUT + 16 for profile == 48
00258 #define TAG_CONICALFILL_SIZE                        40      // was 24, BUT + 16 for profile == 40
00259 #define TAG_SQUAREFILL_SIZE                         48      // was 32, BUT + 16 for profile == 48
00260 #define TAG_THREECOLFILL_SIZE                       36
00261 #define TAG_FOURCOLFILL_SIZE                        40
00262 #define TAG_BITMAPFILL_SIZE                         44      // was 28, BUT + 16 for profile == 44
00263 #define TAG_CONTONEBITMAPFILL_SIZE                  52      // was 36, BUT + 16 for profile == 52
00264 #define TAG_FRACTALFILL_SIZE                        69      // was 53, BUT + 16 for profile == 69
00265 #define TAG_NOISEFILL_SIZE                          61      // was 45, BUT + 16 for profile == 61
00266 #define TAG_FILLEFFECT_FADE_SIZE                    0
00267 #define TAG_FILLEFFECT_RAINBOW_SIZE                 0
00268 #define TAG_FILLEFFECT_ALTRAINBOW_SIZE              0
00269 #define TAG_FILL_REPEATING_SIZE                     0
00270 #define TAG_FILL_NONREPEATING_SIZE                  0
00271 #define TAG_FILL_REPEATINGINVERTED_SIZE             0
00272 //Mark Howitt, 8/10/97. define new repeating grad fill tag size.
00273 #define TAG_FILL_REPEATING_EXTRA_SIZE               0
00274 //Chris Snook, 8/12/99. We also need one for the transparencies!
00275 #define TAG_TRANSPARENTFILL_REPEATING_EXTRA_SIZE    0
00276 
00277 #define TAG_FLATTRANSPARENTFILL_SIZE                2
00278 #define TAG_LINEARTRANSPARENTFILL_SIZE              35      // was 19, BUT + 16 for profile == 35
00279 #define TAG_LINEARTRANSPARENTFILL3POINT_SIZE        43
00280 #define TAG_CIRCULARTRANSPARENTFILL_SIZE            35      // was 19, BUT + 16 for profile == 35
00281 #define TAG_ELLIPTICALTRANSPARENTFILL_SIZE          43      // was 27, BUT + 16 for profile == 43
00282 #define TAG_CONICALTRANSPARENTFILL_SIZE             35      // was 19, BUT + 16 for profile == 35
00283 #define TAG_SQUARETRANSPARENTFILL_SIZE              43      // was 27, BUT + 16 for profile == 43
00284 #define TAG_THREECOLTRANSPARENTFILL_SIZE            28
00285 #define TAG_FOURCOLTRANSPARENTFILL_SIZE             29
00286 #define TAG_BITMAPTRANSPARENTFILL_SIZE              47      // was 31, BUT + 16 for profile == 47
00287 #define TAG_FRACTALTRANSPARENTFILL_SIZE             64      // was 48, BUT + 16 for profile == 64
00288 #define TAG_NOISETRANSPARENTFILL_SIZE               56      // was 40, BUT + 16 for profile == 56
00289 #define TAG_LINETRANSPARENCY_SIZE                   2
00290 #define TAG_STARTCAP_SIZE                           1
00291 #define TAG_ENDCAP_SIZE                             1
00292 #define TAG_JOINSTYLE_SIZE                          1
00293 #define TAG_MITRELIMIT_SIZE                         4
00294 #define TAG_WINDINGRULE_SIZE                        1
00295 #define TAG_QUALITY_SIZE                            4
00296 #define TAG_TRANSPARENTFILL_REPEATING_SIZE          0
00297 #define TAG_TRANSPARENTFILL_NONREPEATING_SIZE       0
00298 #define TAG_TRANSPARENTFILL_REPEATINGINVERTED_SIZE  0
00299 #define TAG_USERVALUEATTRSIZE                       CXF_UNKNOWN_SIZE
00300 #define TAG_WIZOP_STYLEREF_SIZE                     4
00301 
00302 #define TAG_FLATFILL_NONE_SIZE                      0
00303 #define TAG_FLATFILL_BLACK_SIZE                     0
00304 #define TAG_FLATFILL_WHITE_SIZE                     0
00305 #define TAG_LINECOLOUR_NONE_SIZE                    0
00306 #define TAG_LINECOLOUR_BLACK_SIZE                   0
00307 #define TAG_LINECOLOUR_WHITE_SIZE                   0
00308 
00309 //-----------------
00310 // Path records
00311 #define TAG_PATH_SIZE               CXF_UNKNOWN_SIZE
00312 #define TAG_PATH_FLAGS_SIZE         CXF_UNKNOWN_SIZE
00313 #define TAG_PATH_FLAGS_SMOOTH       0x1
00314 #define TAG_PATH_FLAGS_ROTATE       0x2
00315 #define TAG_PATH_FLAGS_ENDPOINT     0x4
00316 #define TAG_PATH_RELATIVE_SIZE      CXF_UNKNOWN_SIZE
00317 #define TAG_PATHREF_INDENTICAL_SIZE 4
00318 #define TAG_PATHREF_TRANSFORM_SIZE  28
00319 
00320 //-----------------
00321 // Arrows and dash patterns
00322 #define TAG_DASHSTYLE_SIZE                          4
00323 #define TAG_ARROWHEAD_SIZE                          12
00324 #define TAG_ARROWTAIL_SIZE                          12
00325 
00326 //-----------------
00327 // Blends
00328 #define TAG_BLEND_SIZE              3
00329 #define TAG_BLENDER_SIZE            8
00330 #define TAG_BLEND_FLAG_ONETOONE     (1 << 0)    // Bit 0 is the one to one flag
00331 #define TAG_BLEND_FLAG_ANTIALIAS    (1 << 1)    // Bit 1 is the antialias flag
00332 #define TAG_BLEND_FLAG_TANGENTIAL   (1 << 2)    // Bit 2 is the tangential flag
00333 #define TAG_BLEND_COLEFFECT_MASK    0xf0        // Top 4 bits of the flags byte contains the col blend type
00334 #define TAG_BLEND_COLEFFECT_SHIFT   4           //      The col blend type can be either, fade, rainbow or alt rainbow
00335 
00336 //-----------------
00337 // Moulds
00338 #define TAG_MOULD_ENVELOPE_SIZE     4
00339 #define TAG_MOULD_PERSPECTIVE_SIZE  4
00340 #define TAG_MOULD_GROUP_SIZE        0
00341 #define TAG_MOULD_PATH_SIZE         CXF_UNKNOWN_SIZE
00342 
00343 // ----------------
00344 // node bitmap
00345 #define TAG_NODE_BITMAP_SIZE                36
00346 #define TAG_NODE_CONTONEDBITMAP_SIZE        44
00347 
00348 // bitmap properties - stores the settings in the b.p. dialogue for each bitmap
00349 #define TAG_BITMAP_PROPERTIES_SIZE          (sizeof(INT32)+8)
00350 #define TAG_DOCUMENTBITMAPSMOOTHINGSIZE     5
00351 
00352 
00353 //-----------------
00354 // Misc objects
00355 #define TAG_GUIDELINE_SIZE          5
00356 
00357 // ----------------
00358 // Printing and Imagesetting data
00359 // Imagesetting attributes - these are all boolean tags with no actual record data
00360 const INT32 TAG_OVERPRINTLINEON_SIZE            = 0;
00361 const INT32 TAG_OVERPRINTLINEOFF_SIZE       = 0;
00362 const INT32 TAG_OVERPRINTFILLON_SIZE            = 0;
00363 const INT32 TAG_OVERPRINTFILLOFF_SIZE       = 0;
00364 const INT32 TAG_PRINTONALLPLATESON_SIZE     = 0;
00365 const INT32 TAG_PRINTONALLPLATESOFF_SIZE        = 0;
00366 // Main printing and Imagesetting data records
00367 const INT32 TAG_PRINTERSETTINGS_SIZE            = 45;
00368 const INT32 TAG_IMAGESETTING_SIZE           = 15;
00369 const INT32 TAG_COLOURPLATE_SIZE                = 22;
00370 // Printers mark records
00371 const INT32 TAG_PRINTMARKDEFAULT_SIZE       = 1;
00372 const INT32 TAG_PRINTMARKCUSTOM_SIZE            = CXF_UNKNOWN_SIZE;
00373 
00374 //-----------------
00375 // Size of transform attribute records
00376 
00377 #define TAG_TRANSFORM_IDENTITY_SIZE         0       
00378 #define TAG_TRANSFORM_MATRIX_SIZE           16  
00379 #define TAG_TRANSFORM_TRANSLATION_SIZE      8
00380 #define TAG_TRANSFORM_GENERAL_SIZE          24
00381 #define TAG_TRANSFORM_ROTATION_SIZE         4
00382 #define TAG_TRANSFORM_ROTATION_CENTRE_SIZE  4
00383 #define TAG_TRANSFORM_ROTATION_POINT_SIZE   12
00384 #define TAG_TRANSFORM_SHEAR_X_SIZE          4
00385 #define TAG_TRANSFORM_SHEAR_Y_SIZE          4
00386 #define TAG_TRANSFORM_SCALE_SIZE            4
00387 #define TAG_TRANSFORM_SCALE_X_SIZE          4
00388 #define TAG_TRANSFORM_SCALE_Y_SIZE          4
00389 #define TAG_TRANSFORM_REFLECTION_X_SIZE     0
00390 #define TAG_TRANSFORM_REFLECTION_Y_SIZE     0
00391 
00392 //-----------------
00393 // Size of regular shape records
00394 // Not all of these are defined in the spec, those that are are marked as such.
00395 // Note - any object with reformed edges automatically has an unknown size.
00396 
00397 // rectangle            : size += 0
00398 // ellipse              : size += 0
00399 // polygon              : size += 2  (number of sides)
00400 // simple               : size += 16 (centre.x, centre.y, width, height)
00401 // complex              : size += 24 (centre.x, centre.y, major.x, major.y, minor.x, minor.y)
00402 // roundedness          : size += 8  (roundedness)
00403 // stellation           : size += 16
00404 // rounded + stellated  : size += 8
00405 // reformed             : size = CXF_UNKNOWN_SIZE
00406 
00407 // Ellipses
00408 #define TAG_ELLIPSE_SIMPLE_SIZE                                 16                  // defined
00409 #define TAG_ELLIPSE_COMPLEX_SIZE                                24                  // defined
00410 
00411 // Rectangles
00412 #define TAG_RECTANGLE_SIMPLE_SIZE                               16                  // defined
00413 #define TAG_RECTANGLE_SIMPLE_REFORMED_SIZE                      CXF_UNKNOWN_SIZE
00414 #define TAG_RECTANGLE_SIMPLE_STELLATED_SIZE                     32
00415 #define TAG_RECTANGLE_SIMPLE_STELLATED_REFORMED_SIZE            CXF_UNKNOWN_SIZE
00416 #define TAG_RECTANGLE_SIMPLE_ROUNDED_SIZE                       24                  // defined
00417 #define TAG_RECTANGLE_SIMPLE_ROUNDED_REFORMED_SIZE              CXF_UNKNOWN_SIZE
00418 #define TAG_RECTANGLE_SIMPLE_ROUNDED_STELLATED_SIZE             48
00419 #define TAG_RECTANGLE_SIMPLE_ROUNDED_STELLATED_REFORMED_SIZE    CXF_UNKNOWN_SIZE
00420 #define TAG_RECTANGLE_COMPLEX_SIZE                              24                  // defined
00421 #define TAG_RECTANGLE_COMPLEX_REFORMED_SIZE                     CXF_UNKNOWN_SIZE
00422 #define TAG_RECTANGLE_COMPLEX_STELLATED_SIZE                    40
00423 #define TAG_RECTANGLE_COMPLEX_STELLATED_REFORMED_SIZE           CXF_UNKNOWN_SIZE
00424 #define TAG_RECTANGLE_COMPLEX_ROUNDED_SIZE                      32                  // defined
00425 #define TAG_RECTANGLE_COMPLEX_ROUNDED_REFORMED_SIZE             CXF_UNKNOWN_SIZE
00426 #define TAG_RECTANGLE_COMPLEX_ROUNDED_STELLATED_SIZE            56
00427 #define TAG_RECTANGLE_COMPLEX_ROUNDED_STELLATED_REFORMED_SIZE   CXF_UNKNOWN_SIZE
00428 
00429 // Polygons
00430 #define TAG_POLYGON_COMPLEX_SIZE                                26                  // defined
00431 #define TAG_POLYGON_COMPLEX_REFORMED_SIZE                       CXF_UNKNOWN_SIZE    // defined
00432 #define TAG_POLYGON_COMPLEX_STELLATED_SIZE                      42                  // defined
00433 #define TAG_POLYGON_COMPLEX_STELLATED_REFORMED_SIZE             CXF_UNKNOWN_SIZE    // defined
00434 #define TAG_POLYGON_COMPLEX_ROUNDED_SIZE                        34                  // defined
00435 #define TAG_POLYGON_COMPLEX_ROUNDED_REFORMED_SIZE               CXF_UNKNOWN_SIZE    // defined
00436 #define TAG_POLYGON_COMPLEX_ROUNDED_STELLATED_SIZE              58                  // defined
00437 #define TAG_POLYGON_COMPLEX_ROUNDED_STELLATED_REFORMED_SIZE     CXF_UNKNOWN_SIZE
00438 
00439 // General regular shapes
00440 // (You need to read the prose above the corresponding definitions in kernel/cxftags.h
00441 // if you wish to know the differences between these two - ach)
00442 #define TAG_REGULAR_SHAPE_PHASE_1_SIZE              CXF_UNKNOWN_SIZE
00443 #define TAG_REGULAR_SHAPE_PHASE_2_SIZE              CXF_UNKNOWN_SIZE
00444 
00445 // Text definitions
00446 
00447 #define TAG_FONT_DEF_TRUETYPE_SIZE                  CXF_UNKNOWN_SIZE
00448 #define TAG_FONT_DEF_ATM_SIZE                       CXF_UNKNOWN_SIZE
00449 
00450 // Text objects
00451 
00452 #define TAG_TEXT_STORY_SIMPLE_SIZE                  12      // was 8, but + 4 for new autokern flag == 12
00453 #define TAG_TEXT_STORY_COMPLEX_SIZE                 28      // was 24, but + 4 for new autokern flag == 28
00454 
00455 #define TAG_TEXT_STORY_SIMPLE_START_LEFT_SIZE       12      // was 8, but + 4 for new autokern flag == 12
00456 #define TAG_TEXT_STORY_SIMPLE_START_RIGHT_SIZE      12      // was 8, but + 4 for new autokern flag == 12
00457 #define TAG_TEXT_STORY_SIMPLE_END_LEFT_SIZE         12      // was 8, but + 4 for new autokern flag == 12
00458 #define TAG_TEXT_STORY_SIMPLE_END_RIGHT_SIZE        12      // was 8, but + 4 for new autokern flag == 12
00459 #define TAG_TEXT_STORY_COMPLEX_START_LEFT_SIZE      36      // was 32, but + 4 for new autokern flag == 36
00460 #define TAG_TEXT_STORY_COMPLEX_START_RIGHT_SIZE     36      // was 32, but + 4 for new autokern flag == 36
00461 #define TAG_TEXT_STORY_COMPLEX_END_LEFT_SIZE        36      // was 32, but + 4 for new autokern flag == 36
00462 #define TAG_TEXT_STORY_COMPLEX_END_RIGHT_SIZE       36      // was 32, but + 4 for new autokern flag == 36
00463 
00464 #define TAG_TEXT_STORY_WORD_WRAP_INFO_SIZE          5
00465 #define TAG_TEXT_STORY_INDENT_INFO_SIZE             8
00466 
00467 #define TAG_TEXT_LINE_SIZE                          0
00468 #define TAG_TEXT_STRING_SIZE                        CXF_UNKNOWN_SIZE
00469 #define TAG_TEXT_CHAR_SIZE                          2
00470 #define TAG_TEXT_EOL_SIZE                           0
00471 #define TAG_TEXT_KERN_SIZE                          8
00472 #define TAG_TEXT_CARET_SIZE                         0
00473 #define TAG_TEXT_LINE_INFO_SIZE                     12
00474 
00475 // Text attributes
00476 
00477 #define TAG_TEXT_LINESPACE_RATIO_SIZE               4
00478 #define TAG_TEXT_LINESPACE_ABSOLUTE_SIZE            4
00479 #define TAG_TEXT_JUSTIFICATION_LEFT_SIZE            0
00480 #define TAG_TEXT_JUSTIFICATION_CENTRE_SIZE          0
00481 #define TAG_TEXT_JUSTIFICATION_RIGHT_SIZE           0
00482 #define TAG_TEXT_JUSTIFICATION_FULL_SIZE            0
00483 #define TAG_TEXT_FONT_TYPEFACE_SIZE                 4
00484 #define TAG_TEXT_FONT_SIZE_SIZE                     4               
00485 #define TAG_TEXT_BOLD_ON_SIZE                       0
00486 #define TAG_TEXT_BOLD_OFF_SIZE                      0
00487 #define TAG_TEXT_ITALIC_ON_SIZE                     0
00488 #define TAG_TEXT_ITALIC_OFF_SIZE                    0
00489 #define TAG_TEXT_UNDERLINE_ON_SIZE                      0
00490 #define TAG_TEXT_UNDERLINE_OFF_SIZE                 0
00491 #define TAG_TEXT_SCRIPT_ON_SIZE                     8   // explicit offset, size
00492 #define TAG_TEXT_SCRIPT_OFF_SIZE                    0
00493 #define TAG_TEXT_SUPERSCRIPT_ON_SIZE                0   // implicit offset, size
00494 #define TAG_TEXT_SUBSCRIPT_ON_SIZE                  0   // implicit offset, size
00495 #define TAG_TEXT_TRACKING_SIZE                      4
00496 #define TAG_TEXT_ASPECT_RATIO_SIZE                  4
00497 #define TAG_TEXT_BASELINE_SIZE                      4
00498 
00499 
00501 // Camelot version 2.0 - additional tags
00503 
00504 // ----------------
00505 // New-style strokes
00506 const INT32 TAG_VARIABLEWIDTHFUNC_SIZE      = 4;
00507 const INT32 TAG_VARIABLEWIDTHTABLE_SIZE     = CXF_UNKNOWN_SIZE;
00508 const INT32 TAG_STROKETYPE_SIZE             = 4;
00509 const INT32 TAG_STROKEDEFINITION_SIZE       = CXF_UNKNOWN_SIZE;
00510 const INT32 TAG_STROKEAIRBRUSH_SIZE         = CXF_UNKNOWN_SIZE;
00511 
00512 // Mould source object bounds
00513 const INT32 TAG_MOULD_BOUNDS_SIZE           = 16;
00514 
00515 // Web Address records
00516 const INT32 TAG_WEBADDRESS_SIZE             = CXF_UNKNOWN_SIZE;
00517 
00518 // Template Argument/Ops / WizOp / Webster Properties records
00519 const INT32 TAG_WIZOP_SIZE                  = CXF_UNKNOWN_SIZE;
00520 
00524 
00525 //-----------------
00526 // Shadows
00527 const INT32 TAG_SHADOWCONTROLLER_SIZE       = 29;
00528 const INT32 TAG_SHADOW_SIZE                 = 24;   // was 16, BUT + 8 for Darkness = 24.
00529 
00530 //-----------------
00531 // bevel attributes
00532 #define TAG_BEVEL_INDENT_SIZE               4   // INT32
00533 #define TAG_BEVEL_DPI_SIZE                  4
00534 #define TAG_BEVEL_TYPE_SIZE                 4
00535 #define TAG_BEVEL_LIGHTANGLE_SIZE           8   // double
00536 
00537 //-----------------
00538 // Blend on a curve tags
00539 const INT32 TAG_BLENDER_CURVEPROP_SIZE      = (sizeof(double)*2);
00540 const INT32 TAG_BLEND_PATH_SIZE             = CXF_UNKNOWN_SIZE;
00541 const INT32 TAG_BLENDER_CURVEANGLES_SIZE        = (sizeof(double)*2);
00542 const INT32 TAG_BLENDPROFILES_SIZE          = (sizeof(double)*6);
00543 const INT32 TAG_BLENDERADDITIONAL_SIZE      = 17;   // was 16, BUT + 1 for 1-BYTE bitfield storage = 17.
00544 const INT32 TAG_NODEBLENDPATH_FILLED_SIZE   = 4;
00545 
00546 //-----------------
00547 // Contour tags
00548 const INT32 TAG_CONTOUR_CONTROLLER_SIZE     = 4 + 4 + 1 + 8 + 8 + 8 + 8;
00549 const INT32 TAG_CONTOUR_SIZE                    = 0;
00550 
00551 //-----------------
00552 #define TAG_LINEARFILLMULTISTAGE_SIZE       CXF_UNKNOWN_SIZE
00553 #define TAG_LINEARFILLMULTISTAGE3POINT_SIZE CXF_UNKNOWN_SIZE
00554 #define TAG_CIRCULARFILLMULTISTAGE_SIZE     CXF_UNKNOWN_SIZE
00555 #define TAG_CONICALFILLMULTISTAGE_SIZE      CXF_UNKNOWN_SIZE
00556 #define TAG_ELLIPTICALFILLMULTISTAGE_SIZE   CXF_UNKNOWN_SIZE
00557 #define TAG_SQUAREFILLMULTISTAGE_SIZE       CXF_UNKNOWN_SIZE
00558 
00559 //-----------------
00560 // Sets and their properties.
00561 const INT32 TAG_SETSENTINEL_SIZE                = 0;
00562 const INT32 TAG_SETPROPERTY_SIZE                = CXF_UNKNOWN_SIZE;
00563 const INT32 TAG_BARPROPERTY_SIZE                = CXF_UNKNOWN_SIZE;
00564 
00565 //-----------------
00566 // painting mode size tags
00567 //const INT32 TAG_PAINTINGMODE_SIZE         = 1;
00568 
00569 // brush attribute tags
00570 const UINT32 TAG_BRUSHATTR_SIZE             = (sizeof(INT32) * 4) + (sizeof(double) *2) +1;                                          
00571 const UINT32 TAG_BRUSHDEFINITION_SIZE       = (sizeof(INT32)); //CXF_UNKNOWN_SIZE;
00572 #define     TAG_BRUSHTILE_FLAG              0x1;
00573 #define     TAG_BRUSHROTATE_FLAG            0x2;
00574 const UINT32 TAG_BRUSHDATA_SIZE              = UINT32(CXF_UNKNOWN_SIZE); //TAG_BRUSHATTR_SIZE;
00575 const UINT32 TAG_MOREBRUSHDATA_SIZE         = (sizeof(INT32) * 11) + (sizeof(double) *3);
00576 const UINT32 TAG_MOREBRUSHATTR_SIZE         = TAG_MOREBRUSHDATA_SIZE + (sizeof(INT32));
00577 const UINT32 TAG_EVENMOREBRUSHDATA_SIZE      = (sizeof(INT32) * 2);
00578 const UINT32 TAG_EVENMOREBRUSHATTR_SIZE     = TAG_EVENMOREBRUSHDATA_SIZE + 1;
00579 const UINT32 TAG_TIMESTAMPBRUSHDATA_SIZE     = UINT32(CXF_UNKNOWN_SIZE);
00580 const UINT32 TAG_BRUSHPRESSUREINFO_SIZE     = sizeof(INT32) * 7;
00581 const UINT32 TAG_BRUSHATTRPRESSUREINFO_SIZE = sizeof(INT32) * 7;
00582 const UINT32 TAG_BRUSHPRESSUREDATA_SIZE     = UINT32(CXF_UNKNOWN_SIZE);
00583 const UINT32 TAG_BRUSHSAMPLEDATA_SIZE       = UINT32(CXF_UNKNOWN_SIZE);
00584 const UINT32 TAG_BRUSHATTRFILLFLAGS_SIZE     = 1;
00585 const UINT32 TAG_BRUSHTRANSPINFO_SIZE       = (sizeof(INT32)*6) + (sizeof(double)*2);
00586 const UINT32 TAG_BRUSHATTRTRANSPINFO_SIZE    = (sizeof(INT32)*6) + (sizeof(double)*2);
00587 
00588 #define     BRUSHFILLFLAG_LOCALFILL         0x1;
00589 #define     BRUSHFILLFLAG_LOCALTRANSP       0x2;
00590 #define     BRUSHFILLFLAG_NAMEDCOL          0x4;
00591 #define TAG_SCALETOWIDTH_FLAG               0x1;
00592 
00593 //-----------------
00594 // ClipView tags
00595 const INT32 TAG_CLIPVIEW_SIZE               = 0;
00596 const INT32 TAG_CLIPVIEW_CONTROLLER_SIZE        = 0;
00597 
00598 //-----------------
00599 // Feather attribute
00600 const UINT32 TAG_FEATHER_SIZE               = 20;   // Millipoint value. was 4, BUT + 16 for profile == 20
00601 
00602 //-----------------
00603 // Current Attribute Group
00604 const UINT32 TAG_CURRENTATTRIBUTES_SIZE     = 1;
00605     const UINT32 ATTRIBUTEGROUP_INK         = 1;
00606     const UINT32 ATTRIBUTEGROUP_TEXT            = 2;
00607 const UINT32 TAG_CURRENTATTRIBUTEBOUNDS_SIZE = sizeof(INT32) * 4;
00608 
00609 //-----------------
00610 // Duplication Offset record
00611 const UINT32 TAG_DUPLICATIONOFFSET_SIZE     = sizeof(INT32) * 2;
00612 
00613 //-----------------
00614 // CompoundRender records size
00615 const UINT32 TAG_COMPOUNDRENDER_SIZE            = 4 + 16;   // Flags + 2 * Coord
00616 
00617 //-----------------
00618 // ObjectBounds records size
00619 const UINT32 TAG_OBJECTBOUNDS_SIZE          = 16;       // 2 * Coord
00620 
00622 // XaraLX 0.6
00624 
00625 // ------------------------------------------------------------
00626 // New text tags for tabbing and paragraph-based indent support
00627 
00628 // Text objects
00629 const UINT32 TAG_TEXT_TAB_SIZE              = 0;
00630 
00631 // Text attributes
00632 const UINT32 TAG_TEXT_LEFT_INDENT_SIZE      = 4;
00633 const UINT32 TAG_TEXT_FIRST_INDENT_SIZE     = 4;
00634 const UINT32 TAG_TEXT_RIGHT_INDENT_SIZE     = 4;
00635 const UINT32 TAG_TEXT_RULER_SIZE            = UINT32(CXF_UNKNOWN_SIZE);
00636 
00637 #endif

Generated on Sat Nov 10 03:44:56 2007 for Camelot by  doxygen 1.4.4