00001 00084 #ifndef INC_GRE_LRTEXT_H 00085 #define INC_GRE_LRTEXT_H 00086 00087 #ifndef INC_GRE_LAYER_H 00088 #include <gre/layer.h> 00089 #endif 00090 00091 #ifndef INC_RVC_TEXTOBJ_H 00092 #include <rvc/textobj.h> 00093 #endif 00094 00095 00096 #ifndef GENERATING_DOXYGEN_OUTPUT 00097 namespace MGD { 00098 struct TEXTBLOCK; 00099 } 00100 #endif 00101 00102 namespace GRE { 00103 //=================================================================================================================== 00104 00105 class LAYER_TEXT : public GRE::LAYER { 00106 public: 00107 00108 class DISPPARM : public GRE::LAYER::DISPPARM { 00109 public: 00110 00111 class DLG; 00112 00113 FILEPATH m_filename; 00114 MISTRING Text; 00115 MISTRING encoding; 00116 TEXTSTYLE Style; 00117 time_t LastModTime; 00118 char* String; 00119 RVC::TEXTOBJ m_TextObj; 00120 RVC::OBJECTDESC m_Desc; 00121 00122 DISPPARM (LAYER_TEXT *layer); 00123 00124 DISPPARM (const DISPPARM& rhs) { Copy(rhs); } 00125 00126 virtual ~DISPPARM () { Free(); } 00127 00128 DISPPARM& operator= (const DISPPARM& rhs) { 00129 if (this != &rhs) { 00130 Free(); 00131 Copy(rhs); 00132 } 00133 return (*this); 00134 } 00135 00137 virtual ERRVALUE Validate (); 00138 00139 protected: 00140 virtual const SERIALIZERITEM* SerialGetItemDef (SERIALIZER& serializer) const; 00141 00142 private: 00143 #ifndef GENERATING_DOXYGEN_OUTPUT 00144 LAYER_TEXT *m_layer; 00145 void Copy (const DISPPARM&); 00146 void Free (); 00147 #endif 00148 }; 00149 00151 static void RegisterType ( 00152 ); 00153 00155 static void SMLClassInstall ( 00156 SMLCONTEXT *context 00157 ); 00158 00160 explicit LAYER_TEXT ( 00161 GRE::GROUP *group, 00162 CREATEFLAGS createflags = CREATEFLAG_None 00163 ); 00164 00166 virtual ~LAYER_TEXT (); 00167 00169 const DISPPARM& GetDispParm ( 00170 ) const { return (m_dispparm); } 00171 00179 ERRVALUE SetDispParm ( 00180 const DISPPARM& dispparm 00181 ); 00182 00183 protected: 00184 00185 DISPPARM m_dispparm; 00186 00187 private: 00188 #ifndef GENERATING_DOXYGEN_OUTPUT 00189 00190 class PRIV; 00191 PRIV* m_priv; 00192 00193 void CleanupTextBlock (); 00194 ERRVALUE SetupTextBlock (MGD::TEXTBLOCK&); 00195 00197 #ifdef USE_MGUI 00198 virtual int v_ControlPanel (MDLGPARENT dlgparent,UINT32 flags = 0); 00199 #endif 00200 virtual GRE::LAYER* v_Copy (GRE::GROUP *group) const; 00201 virtual int v_DataTipGetString (const DPOINT2D&, MISTRING&, SPATMOD::IMAGE::STAGE_ARRAY&, GRE::VIEW*); 00202 virtual bool v_DataTipHasAvailable () const; 00203 virtual bool v_DataTipHasEnabled () const; 00204 virtual ERRVALUE v_Draw (GRE::LAYERDC& layerdc); 00205 virtual const RVC::OBJITEM& v_GetObjItem (int component) const; 00206 virtual bool v_IsAntialiased () const; 00207 virtual bool v_IsProportionVariable (DIMENSION) const; 00208 virtual const char* v_SerialGetTagName () const; 00209 virtual ERRVALUE v_SerialRead (SERIALIZER& serializer); 00210 virtual void v_SetDftName (bool ReplaceExisting); 00211 virtual void v_SetRenderSize(GRE::LAYER::DIMENSION, double); 00212 virtual ERRVALUE v_TemplateRead (SERIALIZER& serializer); 00213 virtual int v_UpdateExtents (bool forceupdate); 00214 virtual bool v_UsesTransparency (const MGD::DEVICE *pDevice = 0) const; 00215 00216 LAYER_TEXT (const LAYER_TEXT&); 00217 LAYER_TEXT& operator= (const LAYER_TEXT&); 00218 00219 #endif 00220 }; 00221 00222 #define TEXTDISPFLAG_Link 0x00000002 00223 #define TEXTDISPFLAG_RVCObject 0x00000004 00224 00225 //=================================================================================================================== 00226 } // End namespace GRE 00227 00228 00229 #endif // INC_GRE_LRTEXT_H
1.6.1