home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / include / wx / generic / dcpsg.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  5KB  |  152 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        dcps.h
  3. // Purpose:     wxPostScriptDC class
  4. // Author:      Julian Smart and others
  5. // Modified by:
  6. // RCS-ID:      $Id: dcpsg.h,v 1.19 2002/08/31 11:29:12 GD Exp $
  7. // Copyright:   (c) Julian Smart, Robert Roebling and Markus Holzem
  8. // Licence:     wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10.  
  11. #ifndef _WX_DCPSG_H_
  12. #define _WX_DCPSG_H_
  13.  
  14. #if defined(__GNUG__) && !defined(__APPLE__)
  15. #pragma interface "dcpsg.h"
  16. #endif
  17.  
  18. #include "wx/dc.h"
  19.  
  20. #if wxUSE_PRINTING_ARCHITECTURE
  21.  
  22. #if wxUSE_POSTSCRIPT
  23.  
  24. #include "wx/dialog.h"
  25. #include "wx/module.h"
  26. #include "wx/cmndata.h"
  27.  
  28. //-----------------------------------------------------------------------------
  29. // classes
  30. //-----------------------------------------------------------------------------
  31.  
  32. class wxPostScriptDC;
  33.  
  34. //-----------------------------------------------------------------------------
  35. // wxPostScriptDC
  36. //-----------------------------------------------------------------------------
  37.  
  38. class WXDLLEXPORT wxPostScriptDC: public wxDC
  39. {
  40. public:
  41.   wxPostScriptDC();
  42.  
  43.   // Recommended constructor
  44.   wxPostScriptDC(const wxPrintData& printData);
  45.  
  46.   ~wxPostScriptDC();
  47.  
  48.   virtual bool Ok() const;
  49.  
  50.   virtual void BeginDrawing() {}
  51.   virtual void EndDrawing() {}
  52.  
  53.   bool DoFloodFill(wxCoord x1, wxCoord y1, const wxColour &col, int style=wxFLOOD_SURFACE );
  54.   bool DoGetPixel(wxCoord x1, wxCoord y1, wxColour *col) const;
  55.  
  56.   void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
  57.   void DoCrossHair(wxCoord x, wxCoord y) ;
  58.   void DoDrawArc(wxCoord x1,wxCoord y1,wxCoord x2,wxCoord y2,wxCoord xc,wxCoord yc);
  59.   void DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea);
  60.   void DoDrawPoint(wxCoord x, wxCoord y);
  61.   void DoDrawLines(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0);
  62.   void DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle=wxODDEVEN_RULE);
  63.   void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
  64.   void DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius = 20);
  65.   void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
  66.  
  67.   void DoDrawSpline(wxList *points);
  68.  
  69.   bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
  70.             wxDC *source, wxCoord xsrc, wxCoord ysrc, int rop = wxCOPY, bool useMask = FALSE,
  71.             wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
  72.   bool CanDrawBitmap() const { return TRUE; }
  73.  
  74.   void DoDrawIcon( const wxIcon& icon, wxCoord x, wxCoord y );
  75.   void DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, bool useMask=FALSE );
  76.  
  77.   void DoDrawText(const wxString& text, wxCoord x, wxCoord y );
  78.   void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle);
  79.  
  80.   void Clear();
  81.   void SetFont( const wxFont& font );
  82.   void SetPen( const wxPen& pen );
  83.   void SetBrush( const wxBrush& brush );
  84.   void SetLogicalFunction( int function );
  85.   void SetBackground( const wxBrush& brush );
  86.  
  87.   void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
  88.   void DestroyClippingRegion();
  89.  
  90.   void DoSetClippingRegionAsRegion( const wxRegion &WXUNUSED(clip) ) { }
  91.  
  92.   bool StartDoc(const wxString& message);
  93.   void EndDoc();
  94.   void StartPage();
  95.   void EndPage();
  96.  
  97.   wxCoord GetCharHeight() const;
  98.   wxCoord GetCharWidth() const;
  99.   bool CanGetTextExtent() const { return TRUE; }
  100.   void DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y,
  101.                      wxCoord *descent = (wxCoord *) NULL,
  102.                      wxCoord *externalLeading = (wxCoord *) NULL,
  103.                      wxFont *theFont = (wxFont *) NULL ) const;
  104.  
  105.   void DoGetSize(int* width, int* height) const;
  106.   void DoGetSizeMM(int *width, int *height) const;
  107.  
  108.   // Resolution in pixels per logical inch
  109.   wxSize GetPPI() const;
  110.  
  111.   void SetAxisOrientation( bool xLeftRight, bool yBottomUp );
  112.   void SetDeviceOrigin( wxCoord x, wxCoord y );
  113.  
  114.   void SetBackgroundMode(int WXUNUSED(mode)) { }
  115.   void SetPalette(const wxPalette& WXUNUSED(palette)) { }
  116.  
  117.   wxPrintData& GetPrintData() { return m_printData; }
  118.   void SetPrintData(const wxPrintData& data) { m_printData = data; }
  119.  
  120.   virtual int GetDepth() const { return 24; }
  121.   
  122.   static void SetResolution(int ppi);
  123.   static int GetResolution();
  124.   
  125. private:  
  126.     static float ms_PSScaleFactor;
  127.  
  128. protected:
  129.     FILE*             m_pstream;    // PostScript output stream
  130.     wxString          m_title;
  131.     unsigned char     m_currentRed;
  132.     unsigned char     m_currentGreen;
  133.     unsigned char     m_currentBlue;
  134.     int               m_pageNumber;
  135.     bool              m_clipping;
  136.     double            m_underlinePosition;
  137.     double            m_underlineThickness;
  138.     wxPrintData       m_printData;
  139.     
  140. private:
  141.     DECLARE_DYNAMIC_CLASS(wxPostScriptDC)
  142. };
  143.  
  144. #endif
  145.     // wxUSE_POSTSCRIPT
  146.  
  147. #endif
  148.     // wxUSE_PRINTING_ARCHITECTURE
  149.  
  150. #endif
  151.         // _WX_DCPSG_H_
  152.