diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-17 18:12:38 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-17 18:12:38 (GMT) |
commit | bace4ea18c03bfcaadab55300bc15290f87540c7 (patch) | |
tree | 48c9c670e4dde608d50fe68e00e783f18af8697b /pdf/xpdf/XSplashOutputDev.h | |
parent | ad63666daeeda50acc7630132d61fe044634fddd (diff) |
Initial revision
Diffstat (limited to 'pdf/xpdf/XSplashOutputDev.h')
-rw-r--r-- | pdf/xpdf/XSplashOutputDev.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/pdf/xpdf/XSplashOutputDev.h b/pdf/xpdf/XSplashOutputDev.h new file mode 100644 index 0000000..71e5b48 --- /dev/null +++ b/pdf/xpdf/XSplashOutputDev.h @@ -0,0 +1,110 @@ +//======================================================================== +// +// XSplashOutputDev.h +// +// Copyright 2003 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef XSPLASHOUTPUTDEV_H +#define XSPLASHOUTPUTDEV_H + +#ifdef USE_GCC_PRAGMAS +#pragma interface +#endif + +#include <X11/Xlib.h> +#include "SplashTypes.h" +#include "SplashOutputDev.h" + +//------------------------------------------------------------------------ + +#define xOutMaxRGBCube 6 // max size of RGB color cube + +//------------------------------------------------------------------------ +// XSplashOutputDev +//------------------------------------------------------------------------ + +class XSplashOutputDev: public SplashOutputDev { +public: + + XSplashOutputDev(Display *displayA, int screenNumA, + Visual *visualA, Colormap colormapA, + GBool reverseVideoA, SplashColor paperColorA, + GBool installCmapA, int rgbCubeSizeA, + GBool incrementalUpdateA, + void (*redrawCbkA)(void *data), + void *redrawCbkDataA); + + virtual ~XSplashOutputDev(); + + //----- initialization and control + + // Start a page. + virtual void startPage(int pageNum, GfxState *state); + + // End a page. + virtual void endPage(); + + // Dump page contents to display. + virtual void dump(); + + //----- update text state + virtual void updateFont(GfxState *state); + + //----- text drawing + virtual void drawChar(GfxState *state, double x, double y, + double dx, double dy, + double originX, double originY, + CharCode code, Unicode *u, int uLen); + virtual GBool beginType3Char(GfxState *state, double x, double y, + double dx, double dy, + CharCode code, Unicode *u, int uLen); + + //----- special access + + // Clear out the document (used when displaying an empty window). + void clear(); + + // Copy the rectangle (srcX, srcY, width, height) to (destX, destY) + // in destDC. + void redraw(int srcX, int srcY, + Drawable destDrawable, GC destGC, + int destX, int destY, + int width, int height); + + // Find a string. If <startAtTop> is true, starts looking at the + // top of the page; else if <startAtLast> is true, starts looking + // immediately after the last find result; else starts looking at + // <xMin>,<yMin>. If <stopAtBottom> is true, stops looking at the + // bottom of the page; else if <stopAtLast> is true, stops looking + // just before the last find result; else stops looking at + // <xMax>,<yMax>. + GBool findText(Unicode *s, int len, + GBool startAtTop, GBool stopAtBottom, + GBool startAtLast, GBool stopAtLast, + int *xMin, int *yMin, + int *xMax, int *yMax); + + // Get the text which is inside the specified rectangle. + GString *getText(int xMin, int yMin, int xMax, int yMax); + +private: + + GBool incrementalUpdate; // incrementally update the display? + void (*redrawCbk)(void *data); + void *redrawCbkData; + TextPage *text; // text from the current page + + Display *display; // X display pointer + Visual *visual; // X visual + Guint depth; // visual depth + GBool trueColor; // set if using a TrueColor visual + int rDiv, gDiv, bDiv; // RGB right shifts (for TrueColor) + int rShift, gShift, bShift; // RGB left shifts (for TrueColor) + int rgbCubeSize; // size of color cube (for non-TrueColor) + Gulong // color cube (for non-TrueColor) + colors[xOutMaxRGBCube * xOutMaxRGBCube * xOutMaxRGBCube]; +}; + +#endif |