1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/gtk1/dc.h 3 // Purpose: 4 // Author: Robert Roebling 5 // Id: $Id: dc.h 42763 2006-10-30 20:34:25Z VZ $ 6 // Copyright: (c) 1998 Robert Roebling 7 // Licence: wxWindows licence 8 ///////////////////////////////////////////////////////////////////////////// 9 10 #ifndef __GTKDCH__ 11 #define __GTKDCH__ 12 13 //----------------------------------------------------------------------------- 14 // classes 15 //----------------------------------------------------------------------------- 16 17 class WXDLLIMPEXP_CORE wxDC; 18 19 //----------------------------------------------------------------------------- 20 // constants 21 //----------------------------------------------------------------------------- 22 23 #ifndef MM_TEXT 24 #define MM_TEXT 0 25 #define MM_ISOTROPIC 1 26 #define MM_ANISOTROPIC 2 27 #define MM_LOMETRIC 3 28 #define MM_HIMETRIC 4 29 #define MM_TWIPS 5 30 #define MM_POINTS 6 31 #define MM_METRIC 7 32 #endif 33 34 //----------------------------------------------------------------------------- 35 // wxDC 36 //----------------------------------------------------------------------------- 37 38 class WXDLLIMPEXP_CORE wxDC : public wxDCBase 39 { 40 public: 41 wxDC(); ~wxDC()42 virtual ~wxDC() { } 43 44 #if wxUSE_PALETTE SetColourMap(const wxPalette & palette)45 void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; 46 #endif // wxUSE_PALETTE 47 48 // Resolution in pixels per logical inch 49 virtual wxSize GetPPI() const; 50 StartDoc(const wxString & WXUNUSED (message))51 virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; } EndDoc()52 virtual void EndDoc() { } StartPage()53 virtual void StartPage() { } EndPage()54 virtual void EndPage() { } 55 56 virtual void SetMapMode( int mode ); 57 virtual void SetUserScale( double x, double y ); 58 virtual void SetLogicalScale( double x, double y ); 59 virtual void SetLogicalOrigin( wxCoord x, wxCoord y ); 60 virtual void SetDeviceOrigin( wxCoord x, wxCoord y ); 61 62 virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); 63 64 // implementation 65 // -------------- 66 67 virtual void ComputeScaleAndOrigin(); 68 GetGDKWindow()69 virtual GdkWindow* GetGDKWindow() const { return NULL; } 70 XDEV2LOG(wxCoord x)71 wxCoord XDEV2LOG(wxCoord x) const 72 { 73 return wxRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX; 74 } XDEV2LOGREL(wxCoord x)75 wxCoord XDEV2LOGREL(wxCoord x) const 76 { 77 return wxRound((double)(x) / m_scaleX); 78 } YDEV2LOG(wxCoord y)79 wxCoord YDEV2LOG(wxCoord y) const 80 { 81 return wxRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY; 82 } YDEV2LOGREL(wxCoord y)83 wxCoord YDEV2LOGREL(wxCoord y) const 84 { 85 return wxRound((double)(y) / m_scaleY); 86 } XLOG2DEV(wxCoord x)87 wxCoord XLOG2DEV(wxCoord x) const 88 { 89 return wxRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX; 90 } XLOG2DEVREL(wxCoord x)91 wxCoord XLOG2DEVREL(wxCoord x) const 92 { 93 return wxRound((double)(x) * m_scaleX); 94 } YLOG2DEV(wxCoord y)95 wxCoord YLOG2DEV(wxCoord y) const 96 { 97 return wxRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY; 98 } YLOG2DEVREL(wxCoord y)99 wxCoord YLOG2DEVREL(wxCoord y) const 100 { 101 return wxRound((double)(y) * m_scaleY); 102 } 103 104 protected: 105 // base class pure virtuals implemented here 106 virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height); 107 virtual void DoGetSizeMM(int* width, int* height) const; 108 109 public: 110 // GTK-specific member variables 111 112 // not sure what for, but what is a mm on a screen you don't know the size 113 // of? 114 double m_mm_to_pix_x, 115 m_mm_to_pix_y; 116 117 bool m_needComputeScaleX, 118 m_needComputeScaleY; // not yet used 119 120 121 private: 122 DECLARE_ABSTRACT_CLASS(wxDC) 123 }; 124 125 // this must be defined when wxDC::Blit() honours the DC origian and needed to 126 // allow wxUniv code in univ/winuniv.cpp to work with versions of wxGTK 127 // 2.3.[23] 128 #ifndef wxHAS_WORKING_GTK_DC_BLIT 129 #define wxHAS_WORKING_GTK_DC_BLIT 130 #endif 131 132 #endif // __GTKDCH__ 133