home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 110 / EnigmaAmiga110CD.iso / indispensabili / utility / apdf / xpdf-0.80 / xpdf / outputdev.h < prev    next >
C/C++ Source or Header  |  1999-05-17  |  4KB  |  135 lines

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