00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INC_MI32_RVCLEGND_H
00037 #define INC_MI32_RVCLEGND_H
00038
00039 #ifndef INC_MI32_RVCDEFNS_H
00040 #include <mi32/rvcdefns.h>
00041 #endif
00042
00043 #ifndef INC_MI32_COLOR_H
00044 #include <mi32/color.h>
00045 #endif
00046
00047
00048 struct RVCLEGENDTEXTSTYLE {
00049 UINT32 StyleFlags;
00050 INT32 FontNumber;
00051 COLOR FGColor;
00052 COLOR BGColor;
00053 FLOAT GlyphRotation;
00054 FLOAT GlyphAspect;
00055 FLOAT Shear;
00056 FLOAT Height;
00057 FLOAT LineSpace;
00058 UINT32 FontFlags;
00059 DOUBLE MapScale;
00060 UNICODE fontname[32];
00061 UINT16 HeightUnits;
00062 UINT16 SpaceUnits;
00063 UINT16 Predefined;
00064 UINT8 spare[2];
00065 };
00066
00067
00068 struct RVCLEGENDINFO : public RVCGENLISTINFO {
00069 DOUBLE MapScale;
00070 DOUBLE ColSpace;
00071 DOUBLE ColWidth;
00072 DOUBLE SampleSpace;
00073 DOUBLE SampleHeight;
00074 DOUBLE SampleWidth;
00075 DOUBLE LineSpace;
00076 DOUBLE SATableNum;
00077 DOUBLE SampleOffset;
00078 INT32 ContrastType;
00079 INT32 SpareLong;
00080 COLOR BackgroundColor;
00081 RVCLEGENDTEXTSTYLE Style[4];
00082 UINT16 ElementType;
00083 UINT16 version;
00084 UINT32 units;
00085 UINT32 numcols;
00086 UINT32 DispFlags;
00087 COLOR SampleBorderColor;
00088 COLOR LegendBorderColor;
00089 DOUBLE SampleBorderWidth;
00090 DOUBLE LegendBorderWidth;
00091 DOUBLE MarginWidth;
00092 DOUBLE MinL;
00093 DOUBLE MaxL;
00094 DOUBLE MinR;
00095 DOUBLE MaxR;
00096 UINT32 UMinIndex;
00097 UINT32 UMaxIndex;
00098 UINT32 NumTicksL;
00099 UINT32 NumTicksR;
00100 DOUBLE MinIndex;
00101 DOUBLE MaxIndex;
00102
00103 RVCLEGENDINFO (
00104 ) {Clear();}
00105
00106 RVCLEGENDINFO (
00107 const RVCGENINFO& ginfo
00108 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;}
00109
00110
00111 RVCLEGENDINFO& operator= (
00112 const RVCGENINFO& ginfo
00113 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);}
00114
00115 void Clear (
00116 ) {memset(static_cast<void*>(this), 0, sizeof(*this));}
00117
00118 };
00119
00120 PREVENT_MEMFUNC(RVCLEGENDINFO)
00121
00122
00123
00124 struct RVCLEGENDLINE {
00125 UINT16 type;
00126 UINT16 flags;
00127 UNICODE *style;
00128 UNICODE *heading;
00129 UNICODE *desc;
00130 };
00131
00132 #define LEGENDFLAG_Selected 0x01
00133 #define LEGENDFLAG_DescFromField 0x02
00134 #define LEGENDFLAG_DescQuery 0x04
00135 #define LEGENDFLAG_DescDQuery 0x08
00136 #define LEGENDFLAG_DescFromTheme 0x10
00137
00138
00139 inline int MfReadLegendHeader (
00140 int fhandle,
00141 RVCINODENUM inode,
00142 RVCLEGENDINFO* info
00143 ) {
00144 return (_MfReadHeader(fhandle,inode,info,sizeof(RVCLEGENDINFO),RVCCONV_LegendInfo));
00145 }
00146
00147
00148 inline int MfWriteLegendHeader (
00149 int fhandle,
00150 RVCINODENUM inode,
00151 RVCLEGENDINFO* info
00152 ) {
00153 return (_MfWriteHeader(fhandle,inode,info,sizeof(RVCLEGENDINFO),RVCCONV_LegendInfo));
00154 }
00155
00156 #if defined(__cplusplus)
00157 extern "C" {
00158 #endif
00159
00160
00161
00162 #ifndef GENERATING_DOXYGEN_OUTPUT
00163
00164 RVCAPPLIBEXPORT int _MfLegendClose (
00165 int id,
00166 RVCLEGENDINFO *info,
00167 int HeaderSize
00168 );
00169
00170 RVCAPPLIBEXPORT void _MfLegendFreeLine (
00171 RVCLEGENDLINE *llp,
00172 int LegendSize
00173 );
00174
00175 RVCAPPLIBEXPORT int _MfLegendMake (
00176 int fid,
00177 RVCLEGENDINFO *info,
00178 int HeaderSize,
00179 UINT32 flags
00180 );
00181
00182 RVCAPPLIBEXPORT int _MfLegendOpen (
00183 int fid,
00184 INT32 inode,
00185 RVCLEGENDINFO *info,
00186 int HeaderSize,
00187 UINT32 flags
00188 );
00189
00190 RVCAPPLIBEXPORT int _MfLegendRead (
00191 int id,
00192 INT32 num,
00193 RVCLEGENDLINE *inllp,
00194 int LegendSize
00195 );
00196
00197 RVCAPPLIBEXPORT int _MfLegendWrite (
00198 int id,
00199 INT32 num,
00200 RVCLEGENDLINE *inllp,
00201 int LegendSize
00202 );
00203
00204 #endif
00205
00206
00207 RVCAPPLIBEXPORT int MfReadLegendBuf (
00208 int id,
00209 INT32 num,
00210 void *buf
00211 );
00212
00213
00214 RVCAPPLIBEXPORT int MfWriteLegendBuf (
00215 int id,
00216 INT32 num,
00217 INT32 size,
00218 const void *buf
00219 );
00220
00221
00222 inline int MfCloseLegend (
00223 int id,
00224 RVCLEGENDINFO *info
00225 ) {
00226 return _MfLegendClose(id, info, sizeof(RVCLEGENDINFO));
00227 }
00228
00229
00230 inline int MfMakeLegend (
00231 int fid,
00232 RVCLEGENDINFO *info,
00233 UINT32 flags
00234 ) {
00235 return _MfLegendMake(fid, info, sizeof(RVCLEGENDINFO), flags);
00236 }
00237
00238
00239 inline int MfOpenLegend (
00240 int fid,
00241 INT32 inode,
00242 RVCLEGENDINFO *info,
00243 UINT32 flags
00244 ) {
00245 return _MfLegendOpen(fid, inode, info, sizeof(RVCLEGENDINFO), flags);
00246 }
00247
00248
00249 inline int MfReadLegend (
00250 int id,
00251 INT32 num,
00252 RVCLEGENDLINE *inllp
00253 ) {
00254 return _MfLegendRead(id, num, inllp, sizeof(RVCLEGENDLINE));
00255 }
00256
00257
00258 inline int MfWriteLegend (
00259 int id,
00260 INT32 num,
00261 RVCLEGENDLINE *inllp
00262 ) {
00263 return _MfLegendWrite(id, num, inllp, sizeof(RVCLEGENDLINE));
00264 }
00265
00266
00267 inline void MfFreeLegendLine (
00268 RVCLEGENDLINE *llp
00269 ) {
00270 _MfLegendFreeLine(llp, sizeof(RVCLEGENDLINE));
00271 }
00272
00273 #if defined(__cplusplus)
00274 }
00275 #endif
00276
00277 #endif