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

gr_CairoNullGraphics.h

Go to the documentation of this file.
00001 /* AbiSource Application Framework
00002  * Copyright (C) 1998 AbiSource, Inc.
00003  *
00004  * This program is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU General Public License
00006  * as published by the Free Software Foundation; either version 2
00007  * of the License, or (at your option) any later version.
00008  *
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00017  * 02110-1301 USA.
00018  */
00019 
00020 #ifndef XAP_CAIRONULLGRAPHICS_H
00021 #define XAP_CAIRONULLGRAPHICS_H
00022 
00023 #include "ut_vector.h"
00024 #include "gr_CairoGraphics.h"
00025 #include "gr_Image.h"
00026 #include "ut_misc.h"
00027 
00028 class UT_ByteBuf;
00029 
00030 /*****************************************************************/
00031 /*****************************************************************/
00032 class ABI_EXPORT GR_CairoNullGraphicsAllocInfo : public GR_AllocInfo
00033 {
00034 public:
00035     GR_CairoNullGraphicsAllocInfo()
00036       {}
00037 
00038     virtual GR_GraphicsId getType() const {return GRID_CAIRO_NULL;}
00039     virtual bool isPrinterGraphics() const {return false;}
00040 };
00041 
00042 
00043 
00044 class ABI_EXPORT CairoNull_Graphics : public GR_CairoGraphics
00045 {
00046     // all constructors are protected; instances must be created via
00047     // GR_GraphicsFactory
00048 public:
00049     virtual ~CairoNull_Graphics();
00050 
00051     static UT_uint32 s_getClassId() {return GRID_CAIRO_NULL;}
00052     virtual UT_uint32 getClassId() {return s_getClassId();}
00053 
00054     virtual GR_Capability getCapability(){UT_ASSERT(UT_NOT_IMPLEMENTED); return GRCAP_UNKNOWN;}
00055     static const char *    graphicsDescriptor(void) { return "Cairo Null Graphics";}
00056     static GR_Graphics *   graphicsAllocator(GR_AllocInfo&);
00057 
00058     virtual void drawChars(const UT_UCSChar* pChars,
00059                    int iCharOffset, int iLength,
00060                    UT_sint32 xoff, UT_sint32 yoff,
00061                    int * pCharWidths = NULL);
00062 
00063     virtual void setColor(const UT_RGBColor& clr);
00064     virtual void getColor(UT_RGBColor& clr);
00065     virtual GR_Font* getGUIFont();
00066 
00067     virtual void drawLine(UT_sint32 x1, UT_sint32 y1, UT_sint32 x2, UT_sint32 y2);
00068     virtual void setLineWidth(UT_sint32);
00069     virtual void xorLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32);
00070     virtual void polyLine(const UT_Point * pts, UT_uint32 nPoints);
00071     virtual void fillRect(const UT_RGBColor& c, UT_sint32 x, UT_sint32 y, UT_sint32 w, UT_sint32 h);
00072     virtual void invertRect(const UT_Rect*);
00073     virtual void setClipRect(const UT_Rect*);
00074     virtual void scroll(UT_sint32, UT_sint32);
00075     virtual void scroll(UT_sint32 x_dest, UT_sint32 y_dest,
00076                         UT_sint32 x_src, UT_sint32 y_src,
00077                         UT_sint32 width, UT_sint32 height);
00078     virtual void clearArea(UT_sint32, UT_sint32, UT_sint32, UT_sint32);
00079 
00080     virtual void drawImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest);
00081     virtual void drawRGBImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest);
00082     virtual void drawGrayImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest);
00083     virtual void drawBWImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest);
00084     virtual GR_Image* createNewImage(const char* pszName, const UT_ConstByteBufPtr & pBBPNG, const std::string& mimetype, UT_sint32 iDisplayWidth, UT_sint32 iDisplayHeight, GR_Image::GRType iType = GR_Image::GRT_Raster);
00085 
00086     virtual bool queryProperties(GR_Graphics::Properties gp) const;
00087 
00088     virtual bool startPrint(void);
00089     virtual bool startPage(const char * szPagelabel, UT_uint32 pageNumber,
00090                               bool bPortrait, UT_uint32 iWidth, UT_uint32 iHeight);
00091     virtual bool endPrint(void);
00092 
00093     virtual void setColorSpace(GR_Graphics::ColorSpace c);
00094     virtual GR_Graphics::ColorSpace getColorSpace(void) const;
00095 
00096     virtual void setCursor(GR_Graphics::Cursor c);
00097     virtual GR_Graphics::Cursor getCursor(void) const;
00098 
00099     virtual void                    setColor3D(GR_Color3D c);
00100     virtual bool getColor3D(GR_Color3D c, UT_RGBColor &color);
00101     virtual void fillRect(GR_Color3D c, UT_sint32 x, UT_sint32 y, UT_sint32 w, UT_sint32 h);
00102     virtual void fillRect(GR_Color3D c, UT_Rect &r);
00103     virtual void setPageSize(char* pageSizeName, UT_uint32 iwidth = 0, UT_uint32 iheight=0);
00104     virtual void setPageCount(UT_uint32 /*iCount*/) {}
00105 
00106     virtual GR_Image * genImageFromRectangle(const UT_Rect & /*r*/) { return NULL;}
00107     virtual void      saveRectangle(UT_Rect & /*r*/, UT_uint32 /*iIndx*/) {}
00108     virtual void      restoreRectangle(UT_uint32 /*iIndx*/) {}
00109 
00110     virtual void setLineProperties(double inWidth,
00111                      GR_Graphics::JoinStyle inJoinStyle = JOIN_MITER,
00112                      GR_Graphics::CapStyle inCapStyle   = CAP_BUTT,
00113                      GR_Graphics::LineStyle inLineStyle = LINE_SOLID);
00114 
00115 protected:
00116     // all instances have to be created via GR_GraphicsFactory; see gr_Graphics.h
00117     CairoNull_Graphics();
00118 };
00119 
00120 #endif /* GR_CAIROPSGRAPHICS_H */

Generated on Sun Feb 14 2021 for AbiWord by  doxygen 1.7.1