home *** CD-ROM | disk | FTP | other *** search
/ PSION CD 2 / PsionCDVol2.iso / Programs / 720 / PDF090B4-SorceCode / pdf / OutputDev.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-30  |  4.3 KB  |  146 lines

  1. //========================================================================
  2. //
  3. // OutputDev.h
  4. //
  5. // Copyright 1996 Derek B. Noonburg
  6. //
  7. //========================================================================
  8. //
  9. // Ported to EPOC by Sander van der Wal
  10. //
  11. // $Id: OutputDev.h 1.3 2000-09-24 21:08:55+02 svdwal Exp svdwal $
  12.  
  13. #ifndef OUTPUTDEV_H
  14. #define OUTPUTDEV_H
  15.  
  16. #ifdef __GNUC__
  17. #pragma interface
  18. #endif
  19.  
  20. #ifndef __E32BASE_H__
  21. #include <e32base.h>
  22. #endif
  23.  
  24. // --o GooLib
  25. class GString;
  26. #ifndef   GTYPES_H
  27. #include "gtypes.h"
  28. #endif
  29.  
  30.  
  31. class GfxState;
  32. class GfxColorSpace;
  33. class GfxImageColorMap;
  34. class Stream;
  35.  
  36. //------------------------------------------------------------------------
  37. // OutputDev
  38. //------------------------------------------------------------------------
  39.  
  40. class OutputDev: public CBase {
  41. public:
  42.  
  43.   // Constructor.
  44.   OutputDev() {}
  45.  
  46.   // Destructor.
  47.   virtual ~OutputDev();
  48.  
  49.   //----- get info about output device
  50.  
  51.   // Does this device use upside-down coordinates?
  52.   // (Upside-down means (0,0) is the top left corner of the page.)
  53.   virtual GBool upsideDown() = 0;
  54.  
  55.   // Does this device use drawChar() or drawString()?
  56.   virtual GBool useDrawChar() = 0;
  57.  
  58.   //----- initialization and control
  59.  
  60.   // Set default transform matrix.
  61.   virtual void setDefaultCTM(double *ctm1);
  62.  
  63.   // Start a page.
  64.   virtual void startPageL(int pageNum, GfxState * state);
  65.  
  66.   // End a page.
  67.   virtual void endPage();
  68.  
  69.   // Dump page contents to display.
  70.   virtual void dump();
  71.  
  72.   //----- coordinate conversion
  73.  
  74.   // Convert between device and user coordinates.
  75.   virtual void cvtDevToUser(int dx, int dy, double *ux, double *uy);
  76.   virtual void cvtUserToDev(double ux, double uy, int *dx, int *dy);
  77.  
  78.   //----- link borders
  79.   virtual void drawLinkBorder(double x1, double y1, double x2, double y2,
  80.                   double w);
  81.  
  82.   //----- save/restore graphics state
  83.   virtual void saveState(GfxState *state);
  84.   virtual void restoreState(GfxState *state);
  85.  
  86.   //----- update graphics state
  87.   virtual void updateAll(GfxState *state);
  88.   virtual void updateCropBox(GfxState* state, 
  89.                              double cropX1, double cropY1, double cropX2, double cropY2);
  90.   virtual void updateCTM(GfxState *state, double m11, double m12,
  91.              double m21, double m22, double m31, double m32);
  92.   virtual void updateLineDash(GfxState *state);
  93.   virtual void updateFlatness(GfxState *state);
  94.   virtual void updateLineJoin(GfxState *state);
  95.   virtual void updateLineCap(GfxState *state);
  96.   virtual void updateMiterLimit(GfxState *state);
  97.   virtual void updateLineWidth(GfxState *state);
  98.   virtual void updateFillColor(GfxState *state);
  99.   virtual void updateStrokeColor(GfxState *state);
  100.  
  101.   //----- update text state
  102.   virtual void updateFont(GfxState *state);
  103.   virtual void updateTextMat(GfxState *state);
  104.   virtual void updateCharSpace(GfxState *state);
  105.   virtual void updateRender(GfxState *state);
  106.   virtual void updateRise(GfxState *state);
  107.   virtual void updateWordSpace(GfxState *state);
  108.   virtual void updateHorizScaling(GfxState *state);
  109.   virtual void updateTextPos(GfxState *state);
  110.   virtual void updateTextShift(GfxState *state, double shift);
  111.  
  112.   //----- path painting and clipping
  113.   virtual void stroke(GfxState *state);
  114.   virtual void fill(GfxState* state, GBool stroke = gFalse);
  115.   virtual void eoFill(GfxState *state, GBool stroke = gFalse);
  116.  
  117.   //----- path clipping
  118.   virtual void clip(GfxState *state);
  119.   virtual void eoClip(GfxState *state);
  120.  
  121.   //----- text drawing
  122.   virtual void beginString(GfxState *state, GString *s);
  123.   virtual void endString(GfxState *state);
  124.   virtual void drawChar(GfxState *state, double x, double y,
  125.             double dx, double dy, Guchar c);
  126.   virtual void drawChar16(GfxState *state, double x, double y,
  127.               double dx, double dy, int c);
  128.   virtual void drawString(GfxState *state, GString *s);
  129.   virtual void drawString16(GfxState *state, GString *s);
  130.  
  131.   //----- image drawing
  132.   virtual void drawImageMask(GfxState *state, Stream *str,
  133.                  int width, int height, GBool invert,
  134.                  GBool inlineImg);
  135.   virtual void drawImage(GfxState *state, Stream *str, int width,
  136.              int height, GfxImageColorMap *colorMap,
  137.              GBool inlineImg);
  138.  
  139. private:
  140.  
  141.   double ctm[6];        // coordinate transform matrix
  142.   double ictm[6];        // inverse CTM
  143. };
  144.  
  145. #endif
  146.