00001 /** 00002 * \file rvcstyle.h <mi32/rvcstyle.h> 00003 * \brief Definitions for Style objects 00004 * 00005 * \if NODOC 00006 * $Id: rvcstyle.h_v 1.88 2004/09/03 16:02:07 scowan Exp $ 00007 * 00008 * $Log: rvcstyle.h_v $ 00009 * Revision 1.88 2004/09/03 16:02:07 scowan 00010 * Removed unused items. 00011 * 00012 * Revision 1.87 2004/04/03 00:00:12 scowan 00013 * Moved unused prototypes to private include file. 00014 * 00015 * Revision 1.86 2004/04/02 23:28:49 scowan 00016 * Fixed deprecation. 00017 * 00018 * Revision 1.85 2004/04/02 22:14:34 scowan 00019 * Removed unused prototypes and make more functions deprecated. 00020 * 00021 * Revision 1.84 2004/04/02 16:59:21 scowan 00022 * Added more thingsd to be deprecated. 00023 * 00024 * Revision 1.83 2004/04/02 16:51:03 scowan 00025 * Removed unused prototype for combine styles. 00026 * 00027 * Revision 1.82 2004/03/31 18:35:01 dwilliss 00028 * Added versions of functions that take MISTRING instead of text font name, 00029 * which I'm about to deprecate 00030 * 00031 * Revision 1.81 2004/03/11 16:57:47 mju 00032 * Eliminate old obj selection dialogs as no longer used. 00033 * 00034 * Revision 1.80 2004/03/10 17:08:43 dwilliss 00035 * Added a polygons member to SYMBOLDATA 00036 * 00037 * Revision 1.79 2004/03/10 15:45:17 dwilliss 00038 * Added some new point symbol element types 00039 * 00040 * Revision 1.78 2003/10/15 17:39:35 mju 00041 * Deprecate groupkey. 00042 * 00043 * Revision 1.77 2003/09/25 21:29:07 dwilliss 00044 * Don't capitalize enum any more. Genitor needed it, doxygen doesn't like it. 00045 * 00046 * Revision 1.76 2003/09/15 13:49:56 fileserver!dwilliss 00047 * Doxygen 00048 * 00049 * Revision 1.75 2003/03/03 15:28:33 mju 00050 * Add variants on MfImportPointSymbol... using RVC::STYLE. 00051 * 00052 * Revision 1.74 2003/01/31 18:41:05 scowan 00053 * nc. 00054 * 00055 * Revision 1.73 2002/11/21 20:31:37 dwilliss 00056 * Added new HATCHPATTELEM constant 00057 * 00058 * Revision 1.72 2002/10/16 19:22:57 dwilliss 00059 * Prototype for new function 00060 * 00061 * Revision 1.71 2002/09/09 13:59:02 mju 00062 * Always prevent_memfunc. 00063 * Retire previously deprecated stuff. 00064 * 00065 * Revision 1.70 2002/08/22 16:20:35 scowan 00066 * More functions. 00067 * 00068 * Revision 1.69 2002/08/22 14:51:55 scowan 00069 * Added object name versions of style functions. 00070 * 00071 * Revision 1.68 2002/08/21 22:40:16 dwilliss 00072 * Correction to previous revision. Needed to take a TEXTFONTNAME, not 00073 * RVC::OBJECTNAME 00074 * 00075 * Revision 1.67 2002/08/21 22:31:54 dwilliss 00076 * MfFontTransIndexToName() -- Made a version that takes RVC::OBJECTNAME to 00077 * fill in and deprecated the one that filled in a UNICODE* 00078 * 00079 * Revision 1.66 2002/08/21 20:38:57 scowan 00080 * Deprecate old object name define. 00081 * 00082 * Revision 1.65 2002/08/20 15:18:50 mju 00083 * Use prevent_memfunc macro, still checks no_deprecated. 00084 * 00085 * Revision 1.64 2002/05/23 20:04:45 scowan 00086 * Added add pattern function. 00087 * 00088 * Revision 1.63 2002/05/23 19:52:15 scowan 00089 * Added read pattern ext function. 00090 * 00091 * Revision 1.62 2002/04/16 19:12:56 dwilliss 00092 * Never mind... 00093 * 00094 * Revision 1.61 2002/03/08 23:16:17 scowan 00095 * Added fields to texzt style. 00096 * 00097 * Revision 1.60 2002/03/08 23:03:32 scowan 00098 * Added more ctors and other methods. 00099 * 00100 * Revision 1.59 2002/03/08 18:56:46 scowan 00101 * Added clear method. 00102 * delrecate mem... for struct info's. 00103 * 00104 * Revision 1.58 2001/12/20 21:48:30 mju 00105 * Enum docs. 00106 * 00107 * Revision 1.57 2001/09/14 14:58:36 mju 00108 * No Mdlg in win32native. 00109 * 00110 * Revision 1.56 2001/08/31 20:01:38 scowan 00111 * Added write style name function. 00112 * 00113 * Revision 1.55 2001/08/28 15:22:10 mju 00114 * Fix search/replace goof. 00115 * 00116 * Revision 1.54 2001/08/28 14:56:26 mju 00117 * Add MfStyleAdd() functions. 00118 * 00119 * Revision 1.53 2001/08/28 14:29:43 mju 00120 * Change RVCPOLYSTYLE to RVCPOLYGONSTYLE with typedef for old name. 00121 * 00122 * Revision 1.52 2001/08/15 16:09:11 mju 00123 * Change STYLETYPE and PATTERNTYPE to enums. 00124 * 00125 * Revision 1.51 2001/03/06 22:55:57 vdronov 00126 * added STYLETYPE_Empty = 0xFFFF 00127 * 00128 * Revision 1.50 2000/11/06 18:51:34 msmith 00129 * Genitor documentation. 00130 * 00131 * Revision 1.49 2000/07/07 20:53:11 scowan 00132 * Create filepath version of get style. 00133 * 00134 * Revision 1.48 2000/05/24 22:30:01 dwilliss 00135 * Added 2 new prototypes 00136 * 00137 * Revision 1.47 2000/04/27 17:18:38 mju 00138 * Define RVCPATTHDR struct and have other pattern headers inherit from it. 00139 * 00140 * Revision 1.46 2000/04/14 14:54:31 scowan 00141 * *** empty log message *** 00142 * 00143 * Revision 1.45 1999/11/19 14:30:27 mju 00144 * MdlgGet... prompt const. 00145 * 00146 * Revision 1.44 1999/10/18 21:06:27 mju 00147 * Remove RVCANYSTYLE union. 00148 * 00149 * Revision 1.43 1999/10/18 17:07:46 mju 00150 * Make MfStyleRead/WriteXxxx inline so they are typesafe. 00151 * Add MfStyleRead() and MfStyleWrite() inlines. 00152 * 00153 * Revision 1.42 1999/10/05 22:48:35 scowan 00154 * Changed headers to use inheritance. 00155 * 00156 * Revision 1.41 1999/08/05 21:16:35 mju 00157 * Use const for FindPattern and StyleLocate. 00158 * 00159 * Revision 1.40 1999/06/29 21:31:48 mju 00160 * Add CopyStyleRVCtoMem for text style. 00161 * 00162 * Revision 1.39 1999/06/11 14:46:29 mju 00163 * Obj sel dlg. 00164 * 00165 * Revision 1.38 1999/06/10 22:11:23 mju 00166 * Object selection dialog update. 00167 * 00168 * Revision 1.37 1999/05/07 21:23:41 mju 00169 * Hdr restruct. 00170 * 00171 * Revision 1.36 1999/02/17 18:47:59 mju 00172 * Add CopyStyle prototypes. 00173 * 00174 * Revision 1.35 1999/01/05 19:13:20 scowan 00175 * Swapped multiple keywords 00176 * 00177 * Revision 1.34 1998/11/06 22:11:44 dfrolov 00178 * rearange fields in HATCHPATTELEMENT structure 00179 * 00180 * Revision 1.33 1998/10/28 22:44:03 dfrolov 00181 * some changes in hatch patterns 00182 * 00183 * Revision 1.32 1998/10/23 19:07:41 dfrolov 00184 * add support for hatch patterns 00185 * 00186 * Revision 1.31 1998/09/30 21:54:41 scowan 00187 * Setup DLL. 00188 * 00189 * Revision 1.30 1998/09/25 22:46:20 scowan 00190 * Fixed for DLL. 00191 * 00192 * Revision 1.29 1998/09/23 23:12:31 scowan 00193 * *** empty log message *** 00194 * 00195 * Revision 1.28 1998/08/03 13:47:34 dwilliss 00196 * Changed a UINT8 spare[4] to FLOAT width 00197 * 00198 * Revision 1.27 1997/10/31 17:26:16 dfrolov 00199 * attempted to add new elements for symbols 00200 * 00201 * Revision 1.26 1997/06/20 19:56:53 scowan 00202 * Added Predefined. 00203 * 00204 * Revision 1.25 1996/12/20 16:37:34 coffee!dwilliss 00205 * Added __cplusplus things 00206 * 00207 * Revision 1.24 1996/07/13 00:18:12 mju 00208 * Remove MxFillPolygonBitmap prototypes as obsolete. 00209 * 00210 * Revision 1.23 1996/03/07 21:53:22 scowan 00211 * Added _MfWriteStyleRaw(). 00212 * 00213 * Revision 1.22 1996/02/22 22:33:44 scowan 00214 * Added MfDeleteStyleType(). 00215 * 00216 * Revision 1.21 1996/01/23 05:28:34 scowan 00217 * Added MfReplaceStyle(). 00218 * 00219 * Revision 1.20 1996/01/17 16:59:24 coffee!dwilliss 00220 * Prototyped MfReadStyleName() 00221 * 00222 * Revision 1.19 1995/12/13 23:10:21 mju 00223 * Remove MfMakeDftStyleTable() prototype. 00224 * 00225 * Revision 1.18 1995/12/05 22:44:19 coffee!dwilliss 00226 * *** empty log message *** 00227 * 00228 * Revision 1.17 1995/10/25 17:22:07 mju 00229 * Move FONTSTYLE flags to stddefns.h. 00230 * 00231 * Revision 1.16 1995/08/28 16:59:06 scowan 00232 * Changed MfReadTextStyle() API. 00233 * 00234 * Revision 1.15 1995/08/28 16:33:32 scowan 00235 * Prototyped new MfFontTrans...() functions. 00236 * 00237 * Revision 1.14 1995/08/25 20:12:40 scowan 00238 * Added prototype for MfReadTextStyleExt(). 00239 * 00240 * Revision 1.13 1995/07/26 13:24:58 mju 00241 * Add FontTrans... prototypes. 00242 * 00243 * Revision 1.12 1995/01/30 20:49:00 scowan 00244 * Added prototypes for MfDeleteStyle() and MfDeletePattern(). 00245 * 00246 * Revision 1.11 1995/01/12 00:30:37 scowan 00247 * Added HeightUnits and LineSpaceUnits fields to RVCTEXTSTYLE. 00248 * 00249 * Revision 1.10 1994/06/30 14:07:36 coffee!dwilliss 00250 * Added PATTCOLOR_Variable. Same as UserDefined, but more intuitively named. 00251 * 00252 * Revision 1.9 1994/05/06 21:54:54 scowan 00253 * Changed int to UINT32 in MfCombineStyles(). 00254 * 00255 * Revision 1.8 1994/05/06 15:06:57 scowan 00256 * Changed long to INT32. 00257 * Changed flag parms to UINT32. 00258 * 00259 * Revision 1.7 1993/12/27 15:07:33 coffee!dwilliss 00260 * Added MapScale to RVCxxxxSTYLE structures 00261 * 00262 * Revision 1.6 1993/11/12 20:56:24 coffee!dwilliss 00263 * *** empty log message *** 00264 * 00265 * Revision 1.5 1993/08/06 19:43:16 shovland 00266 * added prototype for MfCombineStyles() 00267 * 00268 * Revision 1.4 1993/05/17 20:31:25 coffee!harrison 00269 * Added prototype for MfMakeDftStyleTable... 00270 * 00271 * Revision 1.3 1993/04/14 16:31:12 mju 00272 * Add MxFillPolygonBitmapW() prototype. 00273 * 00274 * Revision 1.2 1993/01/06 18:14:24 mju 00275 * Change API for MxFillPolygonsBitmap() 00276 * 00277 * \endif 00278 **/ 00279 00280 #ifndef INC_MI32_RVCSTYLE_H 00281 #define INC_MI32_RVCSTYLE_H 00282 00283 #ifndef INC_MI32_RVCDEFNS_H 00284 #include <mi32/rvcdefns.h> 00285 #endif 00286 00287 #ifndef INC_MI32_ELEMSTYL_H 00288 #include <mi32/elemstyl.h> 00289 #endif 00290 00291 #ifndef INC_MI32_COLOR_H 00292 #include <mi32/color.h> 00293 #endif 00294 00295 //! Forward declarations 00296 00297 struct POINTSTYLE; 00298 struct LINESTYLE; 00299 struct POLYSTYLE; 00300 struct TEXTSTYLE; 00301 namespace RVC { 00302 class STYLE; 00303 } 00304 00305 /* 00306 * The following is so that I can add MapScale to the style objects, 00307 * but not until after 4.5. 4.4 programs will croke if the 00308 * RVCXXXXXSTYLE structures grow. 4.5 can handle it. 00309 * As soon as we want to add the MapScale stuff again, delete the 00310 * following #define 00311 */ 00312 00313 //! Definition for style object header. 00314 struct RVCSTYLEINFO : public RVCGENINFO { 00315 UINT16 PointStyleSize; //!< Point style size 00316 UINT16 LineStyleSize; //!< Line style size 00317 UINT16 PolyStyleSize; //!< Polygon style size 00318 UINT16 TextStyleSize; //!< Text style size 00319 UINT16 BitmapPattSize; //!< Bitmap pattern size 00320 UINT16 HatchPattSize; //!< Hatch pattern size 00321 UINT16 LinePattSize; //!< Line pattern size 00322 UINT16 SymbolSize; //!< Symbol size 00323 00324 RVCSTYLEINFO ( 00325 ) {Clear();} 00326 00327 RVCSTYLEINFO ( 00328 const RVCGENINFO& ginfo 00329 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;} 00330 00331 RVCSTYLEINFO& operator= ( 00332 const RVCGENINFO& ginfo //!< RVCSTYLEINFO to copy 00333 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);} 00334 00335 void Clear ( 00336 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00337 00338 }; 00339 00340 //! Disallow memset/memcpy. 00341 PREVENT_MEMFUNC(RVCSTYLEINFO) 00342 00343 00344 /*----------------------------------------------------------------------------*/ 00345 /* Definitions for style structures as stored in file */ 00346 /*----------------------------------------------------------------------------*/ 00347 00348 //! Structure for point drawing style. 00349 struct RVCPOINTSTYLE { 00350 RVC::OBJECTNAME name; //!< Name 00351 UINT32 StyleFlags; //!< Flags 00352 INT32 SymbolNum; //!< Symbol number 00353 DOUBLE ScaleX; //!< Size in mm 00354 DOUBLE ScaleY; //!< Size in mm 00355 DOUBLE Angle; //!< Angle in radians (?) 00356 COLOR DrawColor; //!< Color 00357 DOUBLE MapScale; //!< MapScale to use given scales at 00358 }; 00359 00360 //! Structure for line drawing style. 00361 struct RVCLINESTYLE { 00362 RVC::OBJECTNAME name; //!< Name 00363 UINT32 StyleFlags; //!< Flags 00364 INT32 PatternNum; //!< Pattern number 00365 DOUBLE Scale; //!< Actually line width in mm 00366 COLOR DrawColor; //!< Color 00367 DOUBLE MapScale; //!< MapScale to use given scales at 00368 }; 00369 00370 //! Structure for polygon drawing style. 00371 struct RVCPOLYGONSTYLE { 00372 RVC::OBJECTNAME name; //!< Name 00373 UINT32 StyleFlags; //!< Flags 00374 INT32 FillPatternNum; //!< Fill pattern number 00375 INT32 BorderPatternNum; //!< Border pattern number 00376 UINT8 space[4]; //!< Spacing 00377 DOUBLE BorderScale; //!< Actually line width in mm 00378 COLOR BorderColor; //!< Border color 00379 COLOR FillColor; //!< Fill color 00380 DOUBLE MapScale; //!< MapScale to use given scales at 00381 }; 00382 typedef RVCPOLYGONSTYLE RVCPOLYSTYLE; 00383 00384 //! Structure for text drawing style. 00385 struct RVCTEXTSTYLE { 00386 RVC::OBJECTNAME name; //!< Name 00387 UINT32 StyleFlags; //!< Flags 00388 INT32 font; //!< Font 00389 COLOR fgcolor; //!< Foreground color 00390 COLOR bgcolor; //!< Background color 00391 FLOAT glyphrot; //!< Glyph rotation 00392 FLOAT glyphaspect; //!< Glyph aspect 00393 FLOAT shear; //!< Shear 00394 FLOAT height; //!< Height 00395 FLOAT linespace; //!< Line spacing 00396 UINT32 FontFlags; //!< Font flags 00397 DOUBLE MapScale; //!< MapScale to use given scales at 00398 UINT8 HeightUnits; //!< Defined in SCREENUNITS_... 00399 UINT8 LineSpaceUnits; //!< Line spacing units 00400 UINT16 Predefined; //!< ??? 00401 FLOAT width; //!< Only used for HTML layout 00402 FLOAT StrokeWidth; //!< Stroke width in % of glyph height (1.0 = 100%) 00403 FLOAT EnhanceWidth; //!< Enhanced width in % of glyph height (1.0 = 100%) 00404 FLOAT BoldnessWidth; //!< Boldness width in % of glyph height (1.0 = 100%) Ignored unless FONTSTYLE_Bold is set 00405 FLOAT UnderlineWidth; //!< Underline with in % of glyph height (1.0 = 100%) 00406 FLOAT UnderlineOffset; //!< Underline Offset from baseline in % (1.0 = 100%) 00407 FLOAT ShadowOffset; //!< Drop shadow offset in % (1.0 = 100%) Ignored unless FONTSTYLE_Shadow is set 00408 FLOAT ShadowAngle; //!< Drop shadow angle in radians 00409 FLOAT ClipWidth; //!< Clip extended area around text in TextAddToClip() 00410 UINT8 ShadowRelative; //!< true if shadow angle relative to baseline angle 00411 UINT8 WidthUnits; 00412 UINT8 space[6]; 00413 }; 00414 00415 //! Enumeration for style types. 00416 enum STYLETYPE { 00417 STYLETYPE_Point = 0, 00418 STYLETYPE_Line = 1, 00419 STYLETYPE_Polygon = 2, 00420 STYLETYPE_Text = 3, 00421 STYLETYPE_COUNT = 4, 00422 STYLETYPE_Empty = 0xFFFF, 00423 }; 00424 #define STYLETYPE_Poly STYLETYPE_Polygon 00425 #define NUMSTYLETYPES STYLETYPE_COUNT 00426 00427 //! Enumeration for pattern types. 00428 enum PATTERNTYPE { 00429 PATTERNTYPE_Symbol = 0, 00430 PATTERNTYPE_Line = 1, 00431 PATTERNTYPE_Bitmap = 2, 00432 PATTERNTYPE_Hatch = 3, 00433 PATTERNTYPE_COUNT = 4, 00434 }; 00435 #define NUMPATTTYPES PATTERNTYPE_COUNT 00436 00437 /* 00438 ** "UserDefined" is ambiguious, but in this case, it means the "variable" 00439 ** color (which is what it's labeled on the symbol/pattern editor dialogs) 00440 ** Use PATTCOLOR_Variable. 00441 */ 00442 #define PATTCOLOR_Transparent 255 00443 #define PATTCOLOR_UserDefined 254 00444 #define PATTCOLOR_Variable PATTCOLOR_UserDefined 00445 00446 //! Information common to all patterns / symbols. 00447 struct RVCPATTHDR { 00448 RVC::OBJECTNAME name; //!< Name 00449 INT16 numelements; //!< Number of elements used to define pattern 00450 INT16 numcolors; //!< Number of colors used in pattern 00451 }; 00452 00453 00454 /*----------------------------------------------------------------------------*/ 00455 /* Definitions for bitmap pattern description structure */ 00456 /* */ 00457 /* Each pattern entry consists of a header (BITMAPPATTHDR), followed by */ 00458 /* the color map (array of COLORs with "numcolors" entries), followed */ 00459 /* by the pattern (array of UBYTES with "xsize" * "ysize" elements. */ 00460 /*----------------------------------------------------------------------------*/ 00461 00462 //! Bitmap pattern header. 00463 struct BITMAPPATTHDR : public RVCPATTHDR { 00464 INT16 xsize; //!< X size 00465 INT16 ysize; //!< Y size 00466 INT16 xhot; //!< X hot 00467 INT16 yhot; //!< Y hot 00468 INT16 xspace; //!< X space 00469 INT16 yspace; //!< Y space 00470 }; 00471 00472 00473 /*----------------------------------------------------------------------------*/ 00474 /* Definitions for line pattern description structure */ 00475 /* */ 00476 /* Each pattern entry consists of a header (LINEPATTHDR), followed by */ 00477 /* the color map (array of COLORs with "numcolors" entries), followed */ 00478 /* by the pattern elements. */ 00479 /* All position and size values are in units of 1/100 millimeter. */ 00480 /*----------------------------------------------------------------------------*/ 00481 00482 //! Line pattern header. 00483 struct LINEPATTHDR : public RVCPATTHDR { 00484 INT16 extentsa; //!< Maximum extents of element "above" line (drawn left to right) 00485 INT16 extentsb; //!< Maximum extents of element "below" line (drawn left to right) 00486 }; 00487 00488 struct LINEPATTELEM { 00489 INT16 extrabytes; //!< Number of bytes in element not including header 00490 UINT8 type; //!< Pattern element type 00491 UINT8 colornum; //!< Color index in pattern-specific color map 00492 UINT16 flags; //!< Flags 00493 INT16 xoffset; //!< Offset along line from start 00494 INT16 xspacing; //!< Spacing between instances of element 00495 INT16 yoffset; //!< Offset above(-) or below(+) line 00496 INT16 xsize; //!< Size/Length of element 00497 INT16 thickness; //!< Thickness of element lines (if not filled) 00498 }; 00499 00500 #define LINEPATTELEM_Line 0 //!< Line parallel to drawing direction, xsize=0 indicates continuous 00501 #define LINEPATTELEM_CrossLine 1 //!< Line perpendicular to drawing direction 00502 #define LINEPATTELEM_Circle 2 //!< Circle - xsize = radius 00503 #define LINEPATTELEM_PolyLine 3 //!< PolyLine 00504 #define LINEPATTELEM_Polygon 4 //!< Polygon 00505 00506 #define LINEPATTELEM_Last 4 //!< Last defined type 00507 00508 #define LINEPATTFLAG_Filled 0x0001//!< Fill (circle and polygon elements) 00509 #define LINEPATTFLAG_JoinMiter 0x0002//!< Join "bent" segment mitered (extended) 00510 #define LINEPATTFLAG_JoinBevel 0x0004//!< Join "bent" segment beveled 00511 #define LINEPATTFLAG_CapRound 0x0008//!< Use rounded ends on line segments 00512 00513 00514 /*----------------------------------------------------------------------------*/ 00515 /* Definitions for hatch pattern description structure */ 00516 /* */ 00517 /* Each pattern entry consists of a header (HATCHPATTHDR), followed by */ 00518 /* the color map (array of COLORs with "numcolors" entries), followed */ 00519 /* by the pattern elements. */ 00520 /* All position and size values are in units of 1/100 millimeter. */ 00521 /*----------------------------------------------------------------------------*/ 00522 00523 //! Hatch pattern header. 00524 struct HATCHPATTHDR : public RVCPATTHDR { 00525 UINT8 spare[4]; //!< Double alignment 00526 }; 00527 00528 //! Hatch pattern element structure. 00529 struct HATCHPATTELEM { 00530 UINT8 type; //!< Pattern element type: simple or line pattern 00531 UINT8 colornum; //!< Color index in pattern-specific color map 00532 UINT8 isvisible; //!< Flag for turning element on/off 00533 UINT8 space; //!< Space 00534 UINT32 linedatasize; //!< Size of the line pattern data attached 00535 UINT32 flags; //!< Flags 00536 UINT8 spare[4]; //!< Double alignment 00537 DOUBLE xoffset; //!< Origin offset 00538 DOUBLE yoffset; //!< Origin offset 00539 DOUBLE spacing; //!< Spacing between instances of element 00540 DOUBLE angle; //!< Angle of element 00541 DOUBLE thickness; //!< Thickness of element lines 00542 }; 00543 00544 #define HATCHPATTELEM_Simple 0 //!< Simple solid lines 00545 #define HATCHPATTELEM_LinePattern 1 //!< Line pattern 00546 #define HATCHPATTELEM_SolidFill 2 //!< Fill with solid color 00547 #define HATCHPATTELEM_Last 2 //!< Last defined type 00548 00549 /*----------------------------------------------------------------------------*/ 00550 /* Definitions for symbol description structure */ 00551 /* */ 00552 /* Each pattern entry consists of a header (SYMBOLHDR), followed by */ 00553 /* the color map (array of COLORs with "numcolors" entries), followed */ 00554 /* by the symbol elements. */ 00555 /* All position and size values are in units of 1/100 millimeter. */ 00556 /*----------------------------------------------------------------------------*/ 00557 00558 //! Symbol header. 00559 struct SYMBOLHDR : public RVCPATTHDR { 00560 INT16 xsize; //!< X size 00561 INT16 ysize; //!< Y size 00562 INT16 xhot; //!< X hot 00563 INT16 yhot; //!< Y hot 00564 UINT16 flags; //!< Flags 00565 UINT8 spare[2]; //!< Double alignment 00566 }; 00567 00568 #define SYMBOLHDRFLAG_OldSymbol (0x8000) 00569 00570 /* rotation and angles are in 1/64th of a degree */ 00571 00572 union SYMBOLDATA { 00573 struct { INT16 x, y, radius; } circle; 00574 struct { INT16 x, y, radius, sangle, eangle; } arc; 00575 struct { INT16 x, y, xsize, ysize, rotate; } ellipse; 00576 struct { INT16 x, y, xsize, ysize, sangle, eangle, rotate; } earc; 00577 struct { INT16 x, y; } point; 00578 struct { INT16 x1, y1, x2, y2; UINT16 capstyle; } segment; 00579 struct { INT16 x, y, xsize, ysize, rotate, shear; UINT16 joinstyle; } rectangle; 00580 struct { UINT16 numpoints, joinstyle, capstyle; } line; 00581 struct { UINT16 numpoints, joinstyle; } polygon; 00582 struct { UINT16 numchars, fontnum, fontstyle, flags; 00583 INT16 x, y, height, rotate, shear, textrot, xscale; } text; 00584 struct { UINT16 numpoints, joinstyle, capstyle; } spline; 00585 struct { UINT16 numpoints, joinstyle, capstyle; } ttfsymbol; 00586 struct { UINT16 numpoints, joinstyle, numpolys; } polygons; 00587 INT16 spare[12]; 00588 }; 00589 00590 //! Symbol element structure. 00591 struct SYMBOLELEM { 00592 SYMBOLDATA data; //!< Union of element structures 00593 UINT32 numbytes; //!< Number of bytes 00594 INT16 thickness; //!< Thickness of element lines (if not filled) 00595 UINT16 flags; //!< Flags 00596 UINT8 type; //!< Type of element stored 00597 UINT8 colornum; //!< Color index in pattern-specific color map 00598 UINT8 spare[2]; //!< Double alignment 00599 }; 00600 00601 /* Extra bytes for lines, text, and polygons */ 00602 00603 /* Defined types */ 00604 #define PTSYM_NULL 0 //!< Empty element, maybe for deletes? 00605 #define PTSYM_Circle 1 00606 #define PTSYM_Arc 2 00607 #define PTSYM_ArcWedge 3 00608 #define PTSYM_ArcChord 4 00609 #define PTSYM_Ellipse 5 00610 #define PTSYM_EArc 6 00611 #define PTSYM_EArcWedge 7 00612 #define PTSYM_EArcChord 8 00613 #define PTSYM_Line 9 00614 #define PTSYM_Polygon 10 00615 #define PTSYM_Point 11 00616 #define PTSYM_Text 12 00617 #define PTSYM_Segment 13 00618 #define PTSYM_Rectangle 14 00619 #define PTSYM_Polygons 15 //!< Multiple polygons with islands 00620 #define PTSYM_Splines 16 //!< Splines of the type used in TrueType 00621 00622 #define PTSYM_Last 16 //!< Last element type defined 00623 00624 #define SYMBOLFLAG_Filled 0x0001 //!< Fill polygonal elements 00625 00626 /*----------------------------------------------------------------------------*/ 00627 /* Function prototypes */ 00628 /*----------------------------------------------------------------------------*/ 00629 00630 #if defined(__cplusplus) 00631 extern "C" { 00632 #endif 00633 00634 #ifndef GENERATING_DOXYGEN_OUTPUT 00635 00636 RVCAPPLIBEXPORT int _MfStyleClose ( 00637 int, 00638 RVCSTYLEINFO*, 00639 int 00640 ); 00641 00642 RVCAPPLIBEXPORT int _MfStyleMake ( 00643 int, 00644 RVCSTYLEINFO*, 00645 int, 00646 UINT32 00647 ); 00648 00649 RVCAPPLIBEXPORT int _MfStyleOpen ( 00650 int, 00651 INT32, 00652 RVCSTYLEINFO*, 00653 int, 00654 UINT32 00655 ); 00656 00657 RVCAPPLIBEXPORT int _MfStyleRead ( 00658 int, 00659 int type, 00660 INT32, 00661 void*, 00662 int 00663 ); 00664 00665 RVCAPPLIBEXPORT ERRVALUE _MfStyleWrite ( 00666 int, 00667 int type, 00668 INT32, 00669 void*, 00670 int 00671 ); 00672 00673 #endif //!< GENERATING_DOXYGEN_OUTPUT 00674 00675 #if !defined(NO_DEPRECATED) || defined(RVCAPPDLL) // DEPRECATED 00676 //! Convert an RVC point style structure to a point style structure. 00677 //! \deprecated - Replaced by RVC::STYLE::Read() 00678 RVCAPPLIBEXPORT int MfConvertRVCPOINTSTYLEtoPOINTSTYLE ( 00679 int id, //!< Style object 00680 RVCPOINTSTYLE *rvcstyle, //!< RVC style structure 00681 POINTSTYLE *style, //!< Non-RVC style structure 00682 UINT32 flags //!< Flags (none defined) 00683 ); 00684 00685 //! Convert an RVC line style structure to a line style structure. 00686 //! \deprecated - Replaced by RVC::STYLE::Read() 00687 RVCAPPLIBEXPORT int MfConvertRVCLINESTYLEtoLINESTYLE ( 00688 int id, //!< Style object 00689 RVCLINESTYLE *rvcstyle, //!< RVC style structure 00690 LINESTYLE *style, //!< Non-RVC style structure 00691 UINT32 flags //!< Flags (none defined) 00692 ); 00693 00694 //! Convert an RVC polygon structure to a line style structure. 00695 //! \deprecated - Replaced by RVC::STYLE::Read() 00696 //! 00697 //! This function copys the border information from the RVCPOLYGONSTYLE 00698 //! into a LINESTYLE 00699 RVCAPPLIBEXPORT int MfConvertRVCPOLYSTYLEtoLINESTYLE ( 00700 int id, //!< Style object 00701 RVCPOLYGONSTYLE *rvcstyle, //!< RVC style structure 00702 LINESTYLE *style, //!< Non-RVC style structure 00703 UINT32 flags //!< Flags (none defined) 00704 ); 00705 00706 //! Convert an RVC polygon style structure to a polygon style structure. 00707 //! \deprecated - Replaced by RVC::STYLE::Read() 00708 RVCAPPLIBEXPORT int MfConvertRVCPOLYSTYLEtoPOLYSTYLE ( 00709 int id, //!< Style object 00710 RVCPOLYGONSTYLE *rvcstyle, //!< RVC style structure 00711 POLYSTYLE *style, //!< Non-RVC style structure 00712 UINT32 flags //!< Flags (none defined) 00713 ); 00714 #endif 00715 00716 //! Replace a opened style object with a new style object. 00717 RVCAPPLIBEXPORT int MfReplaceStyle ( 00718 int sfindex, //!< Open RVC file handle of source style object 00719 INT32 sinode, //!< Inode of source style object (may be opened) 00720 int dfindex, //!< Open RVC file handle of destination style object 00721 INT32 dinode //!< Inode of destination style object (may be opened) 00722 ); 00723 00724 //! Delete a style entry from a style object. 00725 //! 00726 //! @returns error code if < 0 or the style swapped for the style to be deleted 00727 //! Permitted style types: 00728 //! STYLETYPE_Point 00729 //! STYLETYPE_Line 00730 //! STYLETYPE_Polygon 00731 //! STYLETYPE_Text 00732 //! This routine works by swapping the end style with the style to 00733 //! delete and then shrinking the object to number of original styles - 1 00734 //! This value is what is returned so that any references to that style 00735 //! can now be changed. 00736 RVCAPPLIBEXPORT INT32 MfDeleteStyle ( 00737 int id, //!< Open style object handle 00738 int type, //!< Type of style to delete, see below 00739 INT32 num //!< The style entry to delete 00740 ); 00741 00742 //! Delete all of the styles of a specific type from a style object. 00743 //! 00744 //! Permitted style types: 00745 //! STYLETYPE_Point 00746 //! STYLETYPE_Line 00747 //! STYLETYPE_Polygon 00748 //! STYLETYPE_Text 00749 RVCAPPLIBEXPORT int MfDeleteStyleType ( 00750 int id, //!< Open style object handle 00751 int type //!< Type of style to delete, see below 00752 ); 00753 00754 //! Return the number of a particular style. 00755 //! 00756 //! @return number of styles if >= 0 or error code if < 0. 00757 //! Types of styles: 00758 //! STYLETYPE_Point Point styles 00759 //! STYLETYPE_Line Line styles 00760 //! STYLETYPE_Polygon Polygon styles 00761 //! STYLETYPE_Text Text styles 00762 RVCAPPLIBEXPORT INT32 MfGetStyleCount ( 00763 int id, //!< Handle to open style object 00764 int type //!< Type of style (STYLETYPE_...) 00765 ); 00766 00767 //! Search the style element for a specific name, checking specified position first. 00768 //! 00769 //! @return style entry number if >= 0, -1 if not found, < -1 error. 00770 //! Permitted style types: 00771 //! STYLETYPE_Point 00772 //! STYLETYPE_Line 00773 //! STYLETYPE_Polygon 00774 //! STYLETYPE_Text 00775 RVCAPPLIBEXPORT INT32 MfStyleLocate ( 00776 int id, //!< Open style object handle 00777 int type, //!< Type of style to search, see below 00778 INT32 start, //!< Which style entry to start searching at 00779 const UNICODE* name //!< Name of style to find 00780 ); 00781 00782 00783 //! Return a font handle from a given index. 00784 //! 00785 //! @return error code if < 0 or open font handle 00786 RVCAPPLIBEXPORT int MfFontTransIndexToHandle ( 00787 int id, //!< Open style object handle 00788 INT32 num //!< Index of font name 00789 ); 00790 00791 00792 //! Return number of font names. 00793 //! 00794 //! @return number of font names or < 0 if error 00795 RVCAPPLIBEXPORT INT32 MfGetFontNameCount ( 00796 int id //!< Handle to open style object 00797 ); 00798 00799 //! Delete a pattern from a style object. 00800 //! 00801 //! @return error code if < 0 or the pattern swapped for the pattern to be deleted 00802 //!Permitted pattern types: 00803 //! PATTERNTYPE_Symbol 00804 //! PATTERNTYPE_Line 00805 //! PATTERNTYPE_Bitmap 00806 //! This routine works by swapping the end pattern with the pattern to 00807 //! delete and then shrinking the object to number of original patterns - 1 00808 //! This value is what is returned so that any references to that pattern 00809 //! can now be changed. 00810 RVCAPPLIBEXPORT INT32 MfDeletePattern ( 00811 int id, //!< Open style object handle 00812 int type, //!< Type of pattern to delete, see below 00813 INT32 num //!< The pattern entry to delete 00814 ); 00815 00816 //! Search for pattern by name, checking specified position first. 00817 //! 00818 //! @return pattern entry number if >= 0, -1 if not found, < -1 error 00819 //! Permitted pattern types: 00820 //! PATTERNTYPE_Symbol 00821 //! PATTERNTYPE_Line 00822 //! PATTERNTYPE_Bitmap 00823 RVCAPPLIBEXPORT INT32 MfFindPattern ( 00824 int id, //!< Open style object handle 00825 int type, //!< Type of pattern to search, see below 00826 INT32 start, //!< Which pattern entry to start searching at 00827 const UNICODE *name //!< Name of pattern to find 00828 ); 00829 00830 //! Return the number of patterns stored. 00831 //! 00832 //! @return number of patterns if >= 0, else error code 00833 //! Defined pattern types: 00834 //! PATTERNTYPE_Symbol Point symbol patterns 00835 //! PATTERNTYPE_Line Line patterns 00836 //! PATTERNTYPE_Bitmap Polygon fill patterns 00837 RVCAPPLIBEXPORT INT32 MfGetPatternCount ( 00838 int id, //!< Handle to open style object 00839 int type //!< Type of pattern (PATTTYPE_...) 00840 ); 00841 00842 //! Return the maximum size of a pattern. 00843 //! 00844 //! @return size of largest pattern if >= 0, else error code 00845 //! Defined pattern types: 00846 //! PATTERNTYPE_Symbol Point symbol patterns 00847 //! PATTERNTYPE_Line Line patterns 00848 //! PATTERNTYPE_Bitmap Polygon fill patterns 00849 RVCAPPLIBEXPORT INT32 MfGetPatternMaxSize ( 00850 int id, //!< Handle to open style object 00851 int type //!< Type of pattern (PATTTYPE_...) 00852 ); 00853 00854 //! Return the size of a particular pattern. 00855 //! 00856 //! @return size of pattern if >= 0, else error code 00857 //! Defined pattern types: 00858 //! PATTERNTYPE_Symbol Point symbol patterns 00859 //! PATTERNTYPE_Line Line patterns 00860 //! PATTERNTYPE_Bitmap Polygon fill patterns 00861 RVCAPPLIBEXPORT INT32 MfGetPatternSize ( 00862 int id, //!< Handle to open style object 00863 int type, //!< Type of pattern (PATTTYPE_...) 00864 INT32 num //!< Number of pattern to get the size from 00865 ); 00866 00867 //! Read entire pattern into a buffer. 00868 //! 00869 //! Defined pattern types: 00870 //! PATTERNTYPE_Symbol Point symbol patterns 00871 //! PATTERNTYPE_Line Line patterns 00872 //! PATTERNTYPE_Bitmap Polygon fill patterns 00873 RVCAPPLIBEXPORT int MfReadPattern ( 00874 int id, //!< Handle to open style object 00875 int type, //!< Type of pattern (PATTTYPE_...) 00876 INT32 num, //!< Number of pattern to read from 00877 void *data //!< Pattern returned (defined in rvcstyle.h) 00878 ); 00879 00880 //! Read a particular pattern header. 00881 //! 00882 //! Defined pattern types: 00883 //! PATTERNTYPE_Symbol Point symbol patterns 00884 //! PATTERNTYPE_Line Line patterns 00885 //! PATTERNTYPE_Bitmap Polygon fill patterns 00886 RVCAPPLIBEXPORT int MfReadPatternHdr ( 00887 int id, //!< Handle to open style object 00888 int type, //!< Type of pattern (PATTTYPE_...) 00889 INT32 num, //!< Number of pattern to read header from 00890 void *hdr //!< Header of pattern returned (defined in rvcstyle.h) 00891 ); 00892 00893 //! Write a particular pattern. 00894 //! 00895 //! Defined pattern types: 00896 //! PATTERNTYPE_Symbol Point symbol patterns 00897 //! PATTERNTYPE_Line Line patterns 00898 //! PATTERNTYPE_Bitmap Polygon fill patterns 00899 RVCAPPLIBEXPORT int MfWritePattern ( 00900 int id, //!< Handle to open style object 00901 int type, //!< Type of pattern (PATTTYPE_...) 00902 INT32 num, //!< Number of pattern to write to 00903 void *data //!< Pattern to write (defined in rvcstyle.h) 00904 ); 00905 00906 #define MfCloseStyle(_id,_info) _MfStyleClose((_id),(_info),sizeof(RVCSTYLEINFO)) 00907 #define MfFindStyle(_id,_t,_s,_n,_buf) MfStyleLocate((_id),(_t),(_s),(_n)) 00908 #define MfOpenStyle(_fd,_oi,_info,_fl) _MfStyleOpen((_fd),(_oi),(_info),sizeof(RVCSTYLEINFO),(_fl)) 00909 #define MfMakeStyle(_fd,_info,_fl) _MfStyleMake((_fd),(_info),sizeof(RVCSTYLEINFO),(_fl)) 00910 00911 #if defined(__cplusplus) 00912 } 00913 #endif 00914 00915 //! Search the font trans table for a specific name, checking specified position first. 00916 //! 00917 //! @return -1 if not found, >= 0 (font index) if found, or error code. 00918 RVCAPPLIBEXPORT INT32 MfFindFontName ( 00919 int id, //!< Handle to open style object 00920 INT32 start, //!< Place to start the search 00921 MISTRING& name //!< Name to font to search for 00922 ); 00923 00924 //! Add a font name to the list of used fonts. 00925 //! 00926 //! @return index to font name or < 0 if error. 00927 //! NOTE: If the font name already exists then the return value is the index of that font name, otherwise 00928 //! it creates a new entry and returns the new index. 00929 //! See also: MfFindFontName 00930 RVCAPPLIBEXPORT int MfFontTransAdd ( 00931 int id, //!< Open style object handle 00932 const MISTRING& name //!< Name of font to add to the list 00933 ); 00934 00935 //! Return a font name from a given index. 00936 RVCAPPLIBEXPORT int MfFontTransIndexToName ( 00937 int id, //!< Open style object handle 00938 INT32 num, //!< Index of font name to read 00939 MISTRING& name //!< Name 00940 ); 00941 00942 //! Read a particular pattern name. 00943 //! 00944 //! Defined pattern types: 00945 //! PATTERNTYPE_Symbol Point symbol patterns 00946 //! PATTERNTYPE_Line Line patterns 00947 //! PATTERNTYPE_Bitmap Polygon fill patterns 00948 RVCAPPLIBEXPORT int MfReadPatternName ( 00949 int id, //!< Handle to open style object 00950 int type, //!< Type of pattern (PATTTYPE_...) 00951 INT32 num, //!< Number of pattern to read name from 00952 RVC::OBJECTNAME& name //!< Name of pattern returned 00953 ); 00954 00955 //! Read a particular style's name 00956 //! 00957 //! Defined style types: 00958 //! STYLETYPE_Line Line styles 00959 //! STYLETYPE_Point Point styles 00960 //! STYLETYPE_Polygon Polygon styles 00961 //! STYLETYPE_Text Text styles 00962 RVCAPPLIBEXPORT int MfReadStyleName ( 00963 int id, //!< Handle to open style object 00964 int type, //!< Type of pattern (STYLETYPE_...) 00965 INT32 num, //!< Number of style to read name from 00966 RVC::OBJECTNAME& name //!< Name of style returned 00967 ); 00968 00969 //! Write a particular pattern name. 00970 //! 00971 //! Defined pattern types: 00972 //! PATTERNTYPE_Symbol Point symbol patterns 00973 //! PATTERNTYPE_Line Line patterns 00974 //! PATTERNTYPE_Bitmap Polygon fill patterns 00975 RVCAPPLIBEXPORT int MfWritePatternName ( 00976 int id, //!< Handle to open style object 00977 int type, //!< Type of pattern (PATTTYPE_...) 00978 INT32 num, //!< Number of pattern to write name to 00979 RVC::OBJECTNAME& name //!< Name of pattern to write 00980 ); 00981 00982 //! Import point symbols from RVC CAD blocks. 00983 //! If the CAD object only has one block, it is converted to a symbol. 00984 //! If the CAD object has > 1 block, the first block is ignored and all the 00985 //! other blocks are imported using the block names for new symbol names. 00986 ERRVALUE MfImportPointSymbolsFromCAD ( 00987 RVC::STYLE& StyleObj, //!< Style object to import to 00988 const RVC::OBJITEM& ObjItemCAD //!< CAD object to import from 00989 ); 00990 00991 //! Import point symbols from RVC CAD blocks. 00992 //! If the CAD object only has one block, it is converted to a symbol. 00993 //! If the CAD object has > 1 block, the first block is ignored and all the 00994 //! other blocks are imported using the block names for new symbol names. 00995 ERRVALUE MfImportPointSymbolsFromCAD ( 00996 int id, //!< Handle to open style object (must be open for write) 00997 const UNICODE* filename, //!< Name of RVC file to read from 00998 INT32 inode //!< Inode of CAD object 00999 ); 01000 01001 //! Create a point symbol from a CGM (Computer Graphics Metafile) file 01002 ERRVALUE MfImportPointSymbolFromCGM ( 01003 RVC::STYLE& StyleObj, //!< Style object to import to 01004 const RVC::OBJECTNAME& SymbolName, //!< Name to give the new symbol 01005 const FILEPATH& FilePathCGM //!< Path to CGM file 01006 ); 01007 01008 //! Create a point symbol from a CGM (Computer Graphics Metafile) file 01009 ERRVALUE MfImportPointSymbolFromCGM ( 01010 int id, //!< Handle to open style object (must be open for write) 01011 const RVC::OBJECTNAME& SymbolName, //!< Name to give the new symbol 01012 const UNICODE* filename //!< Name of CGM file to read from 01013 ); 01014 01015 //! Create a point symbol from a TrueType glyph 01016 ERRVALUE MfImportPointSymbolFromTTF ( 01017 RVC::STYLE& StyleObj, //!< Style object to import to 01018 const RVC::OBJECTNAME& SymbolName, //!< Name to give the new symbol 01019 const UNICODE* FontName, //!< Name for TrueType font to read from 01020 int GlyphIndex //!< Glyph Index (not ASCII or Unicode value) 01021 ); 01022 01023 //! Create a point symbol from a TrueType glyph 01024 ERRVALUE MfImportPointSymbolFromTTF ( 01025 int id, //!< Handle to open style object (must be open for write) 01026 const RVC::OBJECTNAME& SymbolName, //!< Name to give the new symbol 01027 const UNICODE* FontName, //!< Name for TrueType font to read from 01028 int GlyphIndex //!< Glyph Index (not ASCII or Unicode value) 01029 ); 01030 01031 //! Read an RVCLINESTYLE structure. 01032 inline int MfStyleRead ( 01033 int ohandle, //!< Open RVC style object handle 01034 INT32 idx, //!< Number of style to read 01035 RVCLINESTYLE& style //!< Structure to read style into 01036 ) { 01037 return (_MfStyleRead(ohandle,STYLETYPE_Line,idx,&style,sizeof(style))); 01038 } 01039 01040 //! Read an RVCPOINTSTYLE structure. 01041 inline int MfStyleRead ( 01042 int ohandle, //!< Open RVC style object handle 01043 INT32 idx, //!< Number of style to read 01044 RVCPOINTSTYLE& style //!< Structure to read style into 01045 ) { 01046 return (_MfStyleRead(ohandle,STYLETYPE_Point,idx,&style,sizeof(style))); 01047 } 01048 01049 //! Read an RVCPOLYGONSTYLE structure. 01050 inline int MfStyleRead ( 01051 int ohandle, //!< Open RVC style object handle 01052 INT32 idx, //!< Number of style to read 01053 RVCPOLYGONSTYLE& style //!< Structure to read style into 01054 ) { 01055 return (_MfStyleRead(ohandle,STYLETYPE_Polygon,idx,&style,sizeof(style))); 01056 } 01057 01058 //! Read an RVCTEXTSTYLE structure. 01059 inline int MfStyleRead ( 01060 int ohandle, //!< Open RVC style object handle 01061 INT32 idx, //!< Number of style to read 01062 RVCTEXTSTYLE& style //!< Structure to read style into 01063 ) { 01064 return (_MfStyleRead(ohandle,STYLETYPE_Text,idx,&style,sizeof(style))); 01065 } 01066 01067 //! Read an RVCLINESTYLE structure. 01068 inline int MfStyleReadLine ( 01069 int ohandle, //!< Open RVC style object handle 01070 INT32 idx, //!< Number of style to read 01071 RVCLINESTYLE *style //!< Structure to read style into 01072 ) { 01073 return (MfStyleRead(ohandle,idx,*style)); 01074 } 01075 01076 //! Read an RVCPOINTSTYLE structure. 01077 inline int MfStyleReadPoint ( 01078 int ohandle, //!< Open RVC style object handle 01079 INT32 idx, //!< Number of style to read 01080 RVCPOINTSTYLE *style //!< Structure to read style into 01081 ) { 01082 return (MfStyleRead(ohandle,idx,*style)); 01083 } 01084 01085 //! Read an RVCPOLYGONSTYLE structure. 01086 inline int MfStyleReadPoly ( 01087 int ohandle, //!< Open RVC style object handle 01088 INT32 idx, //!< Number of style to read 01089 RVCPOLYGONSTYLE *style //!< Structure to read style into 01090 ) { 01091 return (MfStyleRead(ohandle,idx,*style)); 01092 } 01093 01094 //! Read an RVCTEXTSTYLE structure. 01095 inline int MfStyleReadText ( 01096 int ohandle, //!< Open RVC style object handle 01097 INT32 idx, //!< Number of style to read 01098 RVCTEXTSTYLE *style //!< Structure to read style into 01099 ) { 01100 return (MfStyleRead(ohandle,idx,*style)); 01101 } 01102 01103 //! Write an RVCLINESTYLE structure. 01104 inline int MfStyleWrite ( 01105 int ohandle, //!< Open RVC style object handle 01106 INT32 idx, //!< Number of style to write 01107 RVCLINESTYLE& style //!< Structure to write style into 01108 ) { 01109 return (_MfStyleWrite(ohandle,STYLETYPE_Line,idx,&style,sizeof(style))); 01110 } 01111 01112 //! Write an RVCPOINTSTYLE structure. 01113 inline int MfStyleWrite ( 01114 int ohandle, //!< Open RVC style object handle 01115 INT32 idx, //!< Number of style to write 01116 RVCPOINTSTYLE& style //!< Structure to write style into 01117 ) { 01118 return (_MfStyleWrite(ohandle,STYLETYPE_Point,idx,&style,sizeof(style))); 01119 } 01120 01121 //! Write an RVCPOLYGONSTYLE structure. 01122 inline int MfStyleWrite ( 01123 int ohandle, //!< Open RVC style object handle 01124 INT32 idx, //!< Number of style to write 01125 RVCPOLYGONSTYLE& style //!< Structure to write style into 01126 ) { 01127 return (_MfStyleWrite(ohandle,STYLETYPE_Polygon,idx,&style,sizeof(style))); 01128 } 01129 01130 //! Write an RVCTEXTSTYLE structure. 01131 inline int MfStyleWrite ( 01132 int ohandle, //!< Open RVC style object handle 01133 INT32 idx, //!< Number of style to write 01134 RVCTEXTSTYLE& style //!< Structure to write style into 01135 ) { 01136 return (_MfStyleWrite(ohandle,STYLETYPE_Text,idx,&style,sizeof(style))); 01137 } 01138 01139 //! Write an RVCLINESTYLE structure. 01140 inline int MfStyleWriteLine ( 01141 int ohandle, //!< Open RVC style object handle 01142 INT32 idx, //!< Number of style to write 01143 RVCLINESTYLE *style //!< Structure to write style into 01144 ) { 01145 return (MfStyleWrite(ohandle,idx,*style)); 01146 } 01147 01148 //! Write an RVCPOINTSTYLE structure. 01149 inline int MfStyleWritePoint ( 01150 int ohandle, //!< Open RVC style object handle 01151 INT32 idx, //!< Number of style to write 01152 RVCPOINTSTYLE *style //!< Structure to write style into 01153 ) { 01154 return (MfStyleWrite(ohandle,idx,*style)); 01155 } 01156 01157 //! Write an RVCPOLYGONSTYLE structure. 01158 inline int MfStyleWritePoly ( 01159 int ohandle, //!< Open RVC style object handle 01160 INT32 idx, //!<