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