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
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef INC_GRE_LRREGION_H
00045 #define INC_GRE_LRREGION_H
00046
00047 #ifndef INC_MI32_GRE_H
00048 #include <mi32/gre.h>
00049 #endif
00050
00051 #ifndef INC_MI32_REGION2D_H
00052 #include <mi32/region2d.h>
00053 #endif
00054
00055 class GRE_LAYER_REGION : public GRE_LAYER {
00056 public:
00057
00058
00059 class DISPPARM : public GRE_LAYER::DISPPARM {
00060 public:
00061
00062 class DLG;
00063
00064 RVC::OBJITEM m_ObjItem;
00065 RVC::OBJITEM m_ObjItemStyle;
00066 POLYSTYLE m_Style;
00067
00068 DISPPARM ();
00069 DISPPARM (
00070 const DISPPARM& rhs
00071 ): GRE_LAYER::DISPPARM(rhs) { Copy(rhs); }
00072 virtual ~DISPPARM (
00073 ) { Free(); }
00074
00075 DISPPARM& operator= (const DISPPARM& rhs) {
00076 if (this != &rhs) {
00077 Free();
00078 Copy(rhs);
00079 }
00080 return (*this);
00081 }
00082
00083
00084 ERRVALUE SetObject (
00085 const RVCOBJITEM& objitem,
00086 GRE_LAYER_REGION* layer,
00087 bool keepsettings = false
00088 );
00089
00090 protected:
00091 virtual const SERIALIZER::ITEMDEF* SerialGetItemDef (SERIALIZER& serializer) const;
00092
00093 private:
00094 #ifndef GENERATING_DOXYGEN_OUTPUT
00095 void Copy (const DISPPARM&);
00096 void Free ();
00097 static ERRVALUE SerializerCB_StyleFileName (SERIALIZER&, const SERIALIZER::ITEMDEF *, void *, SERIALIZER::ITEMDEF::ACTION);
00098
00099 virtual ERRVALUE v_SetObjItem (const RVC::OBJITEM& objitem, bool replace);
00100 virtual ERRVALUE v_Validate ();
00101 friend class GRE_LAYER_REGION;
00102 #endif
00103 }; // End of GRE_LAYER_REGION::DISPPARM
00104
00105
00106 static void RegisterType (
00107 );
00108
00109
00110 explicit GRE_LAYER_REGION (
00111 GRE_GROUP *group,
00112 CREATEFLAGS createflags = CREATEFLAG_None,
00113 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00114 GRE_LAYER *reflayer = 0
00115 );
00116
00117
00118 virtual ~GRE_LAYER_REGION ();
00119
00120
00121 void ClearRegion (
00122 );
00123
00124
00125 const DISPPARM& GetDispParm (
00126 ) const { return (m_dispparm); }
00127
00128
00129
00130
00131
00132
00133
00134
00135 ERRVALUE SetDispParm (
00136 const DISPPARM& dispparm
00137 );
00138
00139 void SetRegion (
00140 const REGION2D& region
00141 );
00142
00143 protected:
00144
00145 DISPPARM m_dispparm;
00146
00147 private:
00148 #ifndef GENERATING_DOXYGEN_OUTPUT
00149
00150 static void LegendMsgHandler (GRAPHICTREEITEM_MSG *msg);
00151
00152 GRE_LEGEND_POLY m_Legend;
00153
00154 int DrawSetup (void*, GRE_LAYERDC&);
00155
00156
00157 #ifdef WIN32_MFC
00158 virtual void v_AddTreeViewLegend (GRE_MFC_TREEVIEW& TreeView, HTREEITEM hParent, HTREEITEM hInsertAfter);
00159 #endif
00160 virtual ERRVALUE v_AssignObject (const RVC::OBJITEM& objitem, MDLGPARENT dlgparent);
00161 #if defined(X_NATIVE) || defined(WIN32_MFC)
00162 virtual int v_ControlPanel (MDLGPARENT dlgparent,UINT32 flags = 0);
00163 #endif
00164 virtual GRE_LAYER* v_Copy (GRE_GROUP *group) const;
00165 virtual ERRVALUE v_Draw (GRE_LAYERDC& layerdc);
00166 virtual const GRE_LEGEND* v_GetLegend (ELEMTYPE ElemType);
00167 virtual const RVC::OBJITEM& v_GetObjItem (int component) const;
00168 #ifdef WIN32_MFC
00169 virtual bool v_HasTreeViewLegend () const;
00170 #endif
00171 #if defined(X_NATIVE) || defined(WIN32_MFC)
00172 virtual ERRVALUE v_PromptObject (bool OpenCtrlPanel, MDLGPARENT dlgparent);
00173 #endif
00174 virtual const char* v_SerialGetTagName () const;
00175 virtual void v_SetDftName (bool ReplaceExisting);
00176 virtual void v_SetLegendSampleFlags (MGD::STYLESAMPLEFLAGS SampleFlags);
00177 virtual ERRVALUE v_SetStyleObjItem (const RVC::OBJITEM& ObjItem);
00178 virtual int v_UpdateExtents (bool forceupdate);
00179 virtual bool v_UsesTransparency (const MGD::DEVICE *pDevice = 0) const;
00180
00181 GRE_LAYER_REGION (const GRE_LAYER_REGION&);
00182 GRE_LAYER_REGION& operator= (const GRE_LAYER_REGION&);
00183
00184 class PRIVDRAWDATA;
00185 friend class PRIVDRAWDATA;
00186 friend class DISPPARM;
00187
00188 #endif
00189 };
00190
00191
00192 #endif