• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

AbiLasemMathView.h

Go to the documentation of this file.
00001 
00002 
00003 #ifndef __gr_AbiLasemMathManager_h__
00004 #define __gr_AbiLasemMathManager_h__
00005 #include "ut_string_class.h"
00006 #include "gr_EmbedManager.h"
00007 #include "gr_Graphics.h"
00008 #include "ut_types.h"
00009 #include "ut_math.h"
00010 #include "ut_vector.h"
00011 
00012 
00013 #include <goffice/goffice.h>
00014 #include <gsf/gsf-input.h>
00015 #include <gsf/gsf-output-memory.h>
00016 #include <cairo-svg.h>
00017 #include <lsmdom.h>
00018 
00019 
00020 #include "ie_imp_MathML.h"
00021 
00022 class GR_Graphics;
00023 class PD_Document;
00024 class AD_Document;
00025 class LasemMathView;
00026 class GR_AbiMathItems;
00027 
00028 struct write_state {
00029     size_t length;
00030     GsfOutput *output;
00031 };
00032 
00033 
00034 class GR_AbiMathItems
00035 {
00036 public:
00037     GR_AbiMathItems();
00038     virtual ~GR_AbiMathItems();
00039     UT_uint32 m_iAPI;
00040     bool m_bHasSnapshot;
00041 };
00042 
00043 class GR_LasemMathManager : public GR_EmbedManager
00044 {
00045 public:
00046     GR_LasemMathManager(GR_Graphics * pG);
00047     virtual ~GR_LasemMathManager();
00048     virtual GR_EmbedManager *  create(GR_Graphics * pG);
00049     virtual const char *   getObjectType(void) const;
00050     virtual void           initialize(void);
00051     virtual UT_sint32      makeEmbedView(AD_Document * pDoc, UT_uint32  api, const char * szDataID) ;
00052     virtual void           setColor(UT_sint32 uid, const UT_RGBColor& c);
00053     virtual bool           setFont(UT_sint32 uid, const GR_Font * pFont);
00054     virtual void           setDisplayMode(UT_sint32 uid, AbiDisplayMode mode);
00055     virtual UT_sint32      getWidth(UT_sint32 uid);
00056     virtual UT_sint32      getAscent(UT_sint32 uid) ;
00057     virtual UT_sint32      getDescent(UT_sint32 uid) ;
00058     virtual void           loadEmbedData(UT_sint32 uid);
00059     virtual void           setDefaultFontSize(UT_sint32 uid, UT_sint32 iSize);
00060     virtual void           render(UT_sint32 uid, UT_Rect & rec);
00061     virtual void           releaseEmbedView(UT_sint32 uid);
00062     virtual void           initializeEmbedView(UT_sint32 uid);
00063     virtual void           makeSnapShot(UT_sint32 uid, UT_Rect & rec);
00064     virtual bool           isDefault(void);
00065     virtual bool           convert(UT_uint32 iConv, const UT_ConstByteBufPtr & From, const UT_ByteBufPtr & To);
00066     virtual void           updateData(UT_sint32 uid, UT_sint32 api);
00067     virtual bool           isEdittable(UT_sint32 uid);
00068     virtual void           setRun(UT_sint32 uid, fp_Run * run);
00069     const IE_Imp_MathML_EntityTable & EntityTable() const { return m_EntityTable; }
00070 
00071     static LasemMathView * last_created_view;
00072 
00073 private:
00074     UT_sint32                              _makeLasemMathView(void);
00075     void                                    _loadMathMl(UT_sint32 uid, UT_UTF8String & sGOChartBuf);
00076     UT_sint32                              _getNextUID(void);
00077     UT_sint32                              m_CurrentUID;
00078     UT_GenericVector<LasemMathView *>        m_vecLasemMathView;
00079     UT_GenericVector<GR_AbiMathItems *>    m_vecItems;
00080     PD_Document *                          m_pDoc;
00081     IE_Imp_MathML_EntityTable              m_EntityTable;
00082 };
00083 
00084 class LasemMathView
00085 {
00086 public:
00087     LasemMathView(GR_LasemMathManager  * pMathMan);
00088     virtual ~LasemMathView(void);
00089     void render(UT_Rect & rec);
00090     void setFont(const GR_Font * pFont); 
00091     void setColor(const UT_RGBColor& c);
00092     void setDisplayMode(AbiDisplayMode mode);
00093     void setItex(char * itex); 
00094     void loadBuffer(UT_UTF8String & sMathml);
00095     void SetRun(fp_Run *pRun) {m_pRun = pRun;}
00096     fp_Run *getRun() {return m_pRun;}
00097     void SetGuru(GtkWidget *guru) {m_Guru = guru;}
00098     UT_ConstByteBufPtr exportToSVG();
00099     UT_ConstByteBufPtr getSnapShot();
00100     UT_sint32 getWidth() {return width;}
00101     UT_sint32 getHeight() {return height;}
00102     UT_sint32 getAscent() {return ascent;}
00103     UT_sint32 getDescent(){return descent;}
00104 private:
00105     GR_LasemMathManager  * m_pMathMan;
00106 
00107     char *itex;
00108     char *font;
00109     char *color;
00110     bool compact;
00111     
00112     LsmDomDocument *mathml;
00113     LsmDomNode *math_element;
00114     LsmDomNode *style_element;
00115 
00116     LsmDomView *view;
00117         
00118     UT_sint32 width, height, ascent, descent, m_y;
00119     fp_Run *m_pRun;
00120 
00121     GtkWidget *m_Guru;
00122 };
00123 
00124 #endif // __gr_AbiLasemMathManager_h__

Generated on Sun Feb 14 2021 for AbiWord by  doxygen 1.7.1