00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __gr_EmbedManager_h__
00022 #define __gr_EmbedManager_h__
00023 #include "ut_string_class.h"
00024 #include "ut_types.h"
00025 #include "ut_vector.h"
00026 #include "ut_misc.h"
00027 #include "ev_EditBits.h"
00028
00029 class GR_Graphics;
00030 class GR_Image;
00031 class UT_ByteBuf;
00032 class AD_Document;
00033 class UT_ByteBuf;
00034
00035 class ABI_EXPORT GR_EmbedView
00036 {
00037 public:
00038 GR_EmbedView(AD_Document * pDoc, UT_uint32 api );
00039 virtual ~GR_EmbedView(void);
00040 bool getSnapShots(void);
00041 AD_Document * m_pDoc;
00042 UT_uint32 m_iAPI;
00043 bool m_bHasSVGSnapshot;
00044 bool m_bHasPNGSnapshot;
00045 UT_ByteBuf * m_SVGBuf;
00046 UT_ByteBuf * m_PNGBuf;
00047 GR_Image * m_pPreview;
00048 UT_UTF8String m_sDataID;
00049 UT_uint32 m_iZoom;
00050 };
00051
00052 class fp_Run;
00053 class ABI_EXPORT GR_EmbedManager
00054 {
00055 public:
00056 GR_EmbedManager(GR_Graphics * pG);
00057 virtual ~GR_EmbedManager();
00058 virtual const char * getObjectType(void) const;
00059 virtual const char * getMimeType(void) const;
00060 virtual const char * getMimeTypeDescription(void) const;
00061 virtual const char * getMimeTypeSuffix(void) const;
00062 virtual GR_EmbedManager * create(GR_Graphics * pG);
00063 virtual void initialize(void);
00064 GR_Graphics * getGraphics(void);
00065 virtual void setGraphics(GR_Graphics * pG);
00066 virtual UT_sint32 makeEmbedView(AD_Document * pDoc, UT_uint32 api, const char * szDataID) ;
00067 virtual void setColor(UT_sint32 uid, UT_RGBColor c);
00068 virtual UT_sint32 getWidth(UT_sint32 uid);
00069 virtual UT_sint32 getAscent(UT_sint32 uid) ;
00070 virtual UT_sint32 getDescent(UT_sint32 uid) ;
00071 virtual void loadEmbedData(UT_sint32 uid);
00072 virtual void setDefaultFontSize(UT_sint32 uid, UT_sint32);
00073 virtual void render(UT_sint32 uid, UT_Rect & rec);
00074 virtual void releaseEmbedView(UT_sint32 uid);
00075 virtual void initializeEmbedView(UT_sint32 uid);
00076 virtual void makeSnapShot(UT_sint32 uid, UT_Rect & rec);
00077 virtual bool isDefault(void);
00078 virtual bool modify(UT_sint32 uid);
00079 virtual bool changeAPI(UT_sint32 uid, UT_uint32 api);
00080 virtual bool convert(UT_uint32 iConvType, UT_ByteBuf & pFrom, UT_ByteBuf & pTo);
00081 virtual bool isEdittable(UT_sint32 uid);
00082 virtual bool isResizeable(UT_sint32 uid);
00083 virtual void setRun (UT_sint32 uid, fp_Run * run);
00084 virtual void updateData(UT_sint32 uid, UT_sint32 api);
00085 virtual EV_EditMouseContext getContextualMenu(void) const
00086 { return EV_EMC_EMBED; }
00087
00088 private:
00089 GR_Graphics * m_pG;
00090 UT_GenericVector<GR_EmbedView *> m_vecSnapshots;
00091 };
00092
00093 #endif // __gr_EmbedManager_h__