X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6835592c5ce0c3c4bc3a0e1275b1a1592c023280..28dd9a9d035b5435897d626d1b57b4308daa0371:/include/wx/os2/dc.h diff --git a/include/wx/os2/dc.h b/include/wx/os2/dc.h index 89377fd23c..edeb7d1489 100644 --- a/include/wx/os2/dc.h +++ b/include/wx/os2/dc.h @@ -13,7 +13,7 @@ #define _WX_DC_H_ #include "wx/defs.h" -//#include "wx/dc.h" +#include "wx/dc.h" // --------------------------------------------------------------------------- // macros @@ -85,7 +85,7 @@ public: wxDCCacheEntry( HPS hPS ,int nDepth ); - ~wxDCCacheEntry(); + virtual ~wxDCCacheEntry(); WXHBITMAP m_hBitmap; HPS m_hPS; @@ -95,13 +95,15 @@ public: }; // end of CLASS wxDCCacheEntry #endif -class WXDLLEXPORT wxDC : public wxDCBase +// this is an ABC: use one of the derived classes to create a DC associated +// with a window, screen, printer and so on +class WXDLLEXPORT wxPMDCImpl : public wxDCImpl { DECLARE_DYNAMIC_CLASS(wxDC) public: - wxDC(void); - ~wxDC(); + wxPMDCImpl(wxDC *owner, WXHDC hDC); + virtual ~wxPMDCImpl(); // implement base class pure virtuals // ---------------------------------- @@ -125,13 +127,7 @@ public: virtual wxCoord GetCharHeight(void) const; virtual wxCoord GetCharWidth(void) const; - virtual void DoGetTextExtent( const wxString& rsString - ,wxCoord* pX - ,wxCoord* pY - ,wxCoord* pDescent = NULL - ,wxCoord* pExternalLeading = NULL - ,wxFont* pTheFont = NULL - ) const; + virtual bool CanDrawBitmap(void) const; virtual bool CanGetTextExtent(void) const; virtual int GetDepth(void) const; @@ -141,9 +137,6 @@ public: virtual void SetUserScale( double dX ,double dY ); - virtual void SetSystemScale( double dX - ,double dY - ); virtual void SetLogicalScale( double dX ,double dY ); @@ -179,7 +172,6 @@ public: HPS GetHPS(void) const { return m_hPS; } void SetHPS(HPS hPS) { - HDC hDC = ::GpiQueryDevice(hPS); m_hPS = hPS; } const wxBitmap& GetSelectedBitmap(void) const { return m_vSelectedBitmap; } @@ -202,7 +194,40 @@ public: #endif protected: - virtual void DoFloodFill( wxCoord vX + void Init() + { + m_pCanvas = NULL; + m_hOldBitmap = 0; + m_hOldPen = 0; + m_hOldBrush = 0; + m_hOldFont = 0; +#if wxUSE_PALETTE + m_hOldPalette = 0; +#endif // wxUSE_PALETTE + + m_bOwnsDC = false; + m_hDC = 0; + m_hOldPS = NULL; + m_hPS = NULL; + m_bIsPaintTime = false; // True at Paint Time + + m_pen.SetColour(*wxBLACK); + m_brush.SetColour(*wxWHITE); + } + + // create an uninitialized DC: this should be only used by the derived + // classes + wxPMDCImpl( wxDC *owner ) : wxDCImpl( owner ) { Init(); } + +public: + virtual void DoGetTextExtent( const wxString& rsString + ,wxCoord* pX + ,wxCoord* pY + ,wxCoord* pDescent = NULL + ,wxCoord* pExternalLeading = NULL + ,const wxFont* pTheFont = NULL + ) const; + virtual bool DoFloodFill( wxCoord vX ,wxCoord vY ,const wxColour& rCol ,int nStyle = wxFLOOD_SURFACE @@ -302,17 +327,6 @@ protected: ,wxCoord vWidth ,wxCoord vHeight ); - virtual void DoGetClippingRegion( wxCoord* pX - ,wxCoord* pY - ,wxCoord* pWidth - ,wxCoord* pHeight) - { - GetClippingBox( pX - ,pY - ,pWidth - ,pHeight - ); - } virtual void DoGetSize( int* pWidth ,int* pHeight @@ -333,7 +347,12 @@ protected: ,int nFillStyle = wxODDEVEN_RULE ); +#if wxUSE_PALETTE + void DoSelectPalette(bool bRealize = FALSE); + void InitializePalette(void); +#endif // wxUSE_PALETTE +protected: // // common part of DoDrawText() and DoDrawRotatedText() //