X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/edc513440242bb3f1dc8fe215b129a2ac4b7c692..6f405b31b201c0a01f96da26eac76bc8f74c0b30:/include/wx/dc.h diff --git a/include/wx/dc.h b/include/wx/dc.h index 10e091b228..ab19b30997 100644 --- a/include/wx/dc.h +++ b/include/wx/dc.h @@ -1,7 +1,7 @@ ///////////////////////////////////////////////////////////////////////////// // Name: wx/dc.h // Purpose: wxDC class -// Author: Vadim Zeitlin +// Author: Vadim Zeitlin // Modified by: // Created: 05/25/99 // RCS-ID: $Id$ @@ -497,10 +497,10 @@ public: // --------------------------------------------------------- // wxPrinterDC Impl API - virtual wxRect GetPaperRect() + virtual wxRect GetPaperRect() const { int w = 0; int h = 0; DoGetSize( &w, &h ); return wxRect(0,0,w,h); } - virtual int GetResolution() + virtual int GetResolution() const { return -1; } private: @@ -562,6 +562,10 @@ protected: double sa, double ea ); #endif // __WXWINCE__ + // returns adjustment factor for converting wxFont "point size"; in wx + // it is point size on screen and needs to be multiplied by this value + // for rendering on higher-resolution DCs such as printer ones + static float GetFontPointSizeAdjustment(float dpi); // window on which the DC draws or NULL wxWindow *m_window; @@ -663,7 +667,7 @@ public: wxSize GetPPI() const { return m_pimpl->GetPPI(); } - virtual int GetResolution() + virtual int GetResolution() const { return m_pimpl->GetResolution(); } // Right-To-Left (RTL) modes @@ -1117,8 +1121,12 @@ public: wxDEPRECATED( void GetLogicalOrigin(long *x, long *y) const ); wxDEPRECATED( void GetDeviceOrigin(long *x, long *y) const ); wxDEPRECATED( void GetClippingBox(long *x, long *y, long *w, long *h) const ); + #endif // WXWIN_COMPATIBILITY_2_8 +#ifdef __WXMSW__ + WXHDC GetHDC() const; +#endif // __WXMSW__ protected: // ctor takes ownership of the pointer @@ -1244,4 +1252,32 @@ private: DECLARE_NO_COPY_CLASS(wxDCClipper) }; +// ---------------------------------------------------------------------------- +// helper class: you can use it to temporarily change the DC font and +// restore it automatically when the object goes out of scope +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxDCFontChanger +{ +public: + wxDCFontChanger(wxDC& dc, const wxFont& font) : m_dc(dc), m_fontOld(dc.GetFont()) + { + m_dc.SetFont(font); + } + + ~wxDCFontChanger() + { + if ( m_fontOld.Ok() ) + m_dc.SetFont(m_fontOld); + } + +private: + wxDC& m_dc; + + wxFont m_fontOld; + + DECLARE_NO_COPY_CLASS(wxDCFontChanger) +}; + + #endif // _WX_DC_H_BASE_