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_GRE_LRLEGEND_H
00037 #define INC_GRE_LRLEGEND_H
00038
00039 #ifndef INC_MI32_GRE_H
00040 #include <mi32/gre.h>
00041 #endif
00042
00043
00044
00045 class GRE_LAYER_LEGEND : public GRE_LAYER {
00046 public:
00047
00048 enum SUBTYPE {
00049
00050
00051 SUBTYPE_Point = 0,
00052 SUBTYPE_Line = 1,
00053 SUBTYPE_Poly = 2,
00054 SUBTYPE_ColorSample = 3,
00055 SUBTYPE_ColorScale = 4,
00056 SUBTYPE_RasterSample = 5
00057 };
00058
00059 class DISPPARM : public GRE_LAYER::DISPPARM {
00060 public:
00061
00062 class DLG;
00063
00064 MIUNICODE filename[FILENAME_MAX];
00065 MIUNICODE stylefilename[FILENAME_MAX];
00066 INT32 styleinode;
00067 RVCLEGENDINFO objinfo;
00068
00069
00070 INT32 flags;
00071 SUBTYPE LegendType;
00072 int StyleTable;
00073 int NumCols;
00074 TEXTSTYLE Style[4];
00075 COLOR BackgroundColor;
00076 COLOR SampleBorderColor;
00077 COLOR LegendBorderColor;
00078
00079 double SampleBorderWidth;
00080 double LegendBorderWidth;
00081 double ColSpace;
00082 double SampleSpace;
00083 double SampleHeight;
00084 double SampleWidth;
00085 double SampleOffset;
00086 double MapScale;
00087 double LineSpace;
00088 double MarginWidth;
00089 int units;
00090
00091
00092 double MinIndex;
00093 double MaxIndex;
00094 UINT32 NumTicksL;
00095 UINT32 NumTicksR;
00096 double MinValL;
00097 double MinValR;
00098 double MaxValL;
00099 double MaxValR;
00100
00101
00102
00103 double Height, Width;
00104 double FullDescHeightM;
00105
00106 DISPPARM ();
00107 DISPPARM (const DISPPARM& rhs) {
00108 Copy(rhs);
00109 }
00110 virtual ~DISPPARM () {
00111 Free();
00112 }
00113
00114 DISPPARM& operator= (const DISPPARM& rhs) {
00115 if (this != &rhs) {
00116 Free();
00117 Copy(rhs);
00118 }
00119 return (*this);
00120 }
00121
00122 protected:
00123 virtual const SERIALIZER::ITEMDEF* SerialGetItemDef (SERIALIZER& serializer) const;
00124
00125 private:
00126 #ifndef GENERATING_DOXYGEN_OUTPUT
00127 void Copy (const DISPPARM&);
00128 void Free ();
00129 #endif
00130 };
00131
00132
00133 static void RegisterType (
00134 );
00135
00136
00137 explicit GRE_LAYER_LEGEND (
00138 GRE_GROUP *group,
00139 CREATEFLAGS createflags = CREATEFLAG_None
00140 );
00141
00142 virtual ~GRE_LAYER_LEGEND ();
00143
00144
00145 const DISPPARM& GetDispParm (
00146 ) const { return (m_dispparm); }
00147
00148
00149
00150
00151
00152
00153
00154
00155 ERRVALUE SetDispParm (
00156 const DISPPARM& dispparm
00157 );
00158
00159 #if defined(X_NATIVE) && !defined(GENERATING_DOXYGEN_OUTPUT)
00160 static void CB_CreateDialog (Widget, void*, void*);
00161 #endif
00162
00163 protected:
00164
00165 DISPPARM m_dispparm;
00166
00167 private:
00168 #ifndef GENERATING_DOXYGEN_OUTPUT
00169
00170 int DrawLegend (void*, int);
00171 int SetupLegend (void*);
00172
00173
00174 virtual ERRVALUE v_AssignObject (const RVC::OBJITEM& objitem, MDLGPARENT dlgparent);
00175 #if defined(X_NATIVE) || defined(WIN32_MFC)
00176 virtual int v_ControlPanel (MDLGPARENT dlgparent,UINT32 flags = 0);
00177 #endif
00178 virtual GRE_LAYER* v_Copy (GRE_GROUP *group) const;
00179 virtual ERRVALUE v_Draw (GRE_LAYERDC& layerdc);
00180 virtual const RVC::OBJITEM& v_GetObjItem (int component) const;
00181 virtual const char* v_SerialGetTagName () const;
00182 virtual void v_SetDftName (bool ReplaceExisting);
00183 virtual ERRVALUE v_TemplateRead (SERIALIZER& serializer);
00184 virtual int v_UpdateExtents (bool forceupdate);
00185
00186 GRE_LAYER_LEGEND (const GRE_LAYER_LEGEND&);
00187 GRE_LAYER_LEGEND& operator= (const GRE_LAYER_LEGEND&);
00188
00189 #endif
00190 };
00191
00192
00193 #define LEGENDFLAG_ConstantSize 0x00000001
00194 #define LEGENDFLAG_RowMajor 0x00000002
00195 #define LEGENDFLAG_LayoutScale 0x00000004
00196 #define LEGENDFLAG_RightJustify 0x00000008
00197 #define LEGENDFLAG_SampleOnRight 0x00000010
00198 #define LEGENDFLAG_SideA 0x00000040
00199 #define LEGENDFLAG_SideB 0x00000080
00200 #define LEGENDFLAG_DescCenterVert 0x00000100
00201 #define LEGENDFLAG_CenterHeadings 0x00000200
00202 #define LEGENDFLAG_Horizontal LEGENDFLAG_RowMajor
00203
00204
00205
00206 #endif