diff --git a/include/wx/gtk/dc.h b/include/wx/gtk/dc.h index 78c421c9c4..8c447ae426 100644 --- a/include/wx/gtk/dc.h +++ b/include/wx/gtk/dc.h @@ -134,7 +134,6 @@ public: protected: // base class pure virtuals implemented here virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoGetSize(int *width, int *height) const; virtual void DoGetSizeMM(int* width, int* height) const; public: diff --git a/include/wx/gtk/dcclient.h b/include/wx/gtk/dcclient.h index f91eae7dc9..2168e181d7 100644 --- a/include/wx/gtk/dcclient.h +++ b/include/wx/gtk/dcclient.h @@ -40,7 +40,8 @@ public: virtual bool CanDrawBitmap() const { return TRUE; } virtual bool CanGetTextExtent() const { return TRUE; } -//protected: +protected: + virtual void DoGetSize(int *width, int *height) const; virtual void DoFloodFill( wxCoord x, wxCoord y, const wxColour& col, int style=wxFLOOD_SURFACE ); virtual bool DoGetPixel( wxCoord x1, wxCoord y1, wxColour *col ) const; @@ -78,6 +79,8 @@ public: wxCoord *descent = (wxCoord *) NULL, wxCoord *externalLeading = (wxCoord *) NULL, wxFont *theFont = (wxFont *) NULL) const; + +public: virtual wxCoord GetCharWidth() const; virtual wxCoord GetCharHeight() const; @@ -134,20 +137,6 @@ private: DECLARE_DYNAMIC_CLASS(wxWindowDC) }; -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class wxPaintDC : public wxWindowDC -{ -public: - wxPaintDC(); - wxPaintDC( wxWindow *win ); - -private: - DECLARE_DYNAMIC_CLASS(wxPaintDC) -}; - //----------------------------------------------------------------------------- // wxClientDC //----------------------------------------------------------------------------- @@ -155,11 +144,25 @@ private: class wxClientDC : public wxWindowDC { public: - wxClientDC(); + wxClientDC() { } wxClientDC( wxWindow *win ); private: DECLARE_DYNAMIC_CLASS(wxClientDC) }; +//----------------------------------------------------------------------------- +// wxPaintDC +//----------------------------------------------------------------------------- + +class wxPaintDC : public wxClientDC +{ +public: + wxPaintDC() { } + wxPaintDC( wxWindow *win ); + +private: + DECLARE_DYNAMIC_CLASS(wxPaintDC) +}; + #endif // __GTKDCCLIENTH__ diff --git a/include/wx/gtk/dcscreen.h b/include/wx/gtk/dcscreen.h index 64f1dfc6ac..b1cc81a7e6 100644 --- a/include/wx/gtk/dcscreen.h +++ b/include/wx/gtk/dcscreen.h @@ -22,22 +22,25 @@ class wxScreenDC; // wxScreenDC //----------------------------------------------------------------------------- -class wxScreenDC: public wxPaintDC +class wxScreenDC : public wxPaintDC { public: wxScreenDC(); - ~wxScreenDC(); + virtual ~wxScreenDC(); static bool StartDrawingOnTop( wxWindow *window ); static bool StartDrawingOnTop( wxRect *rect = (wxRect *) NULL ); static bool EndDrawingOnTop(); // implementation - + static GdkWindow *sm_overlayWindow; static int sm_overlayWindowX; static int sm_overlayWindowY; - + +protected: + virtual void DoGetSize(int *width, int *height) const; + private: DECLARE_DYNAMIC_CLASS(wxScreenDC) }; diff --git a/include/wx/gtk1/dc.h b/include/wx/gtk1/dc.h index 78c421c9c4..8c447ae426 100644 --- a/include/wx/gtk1/dc.h +++ b/include/wx/gtk1/dc.h @@ -134,7 +134,6 @@ public: protected: // base class pure virtuals implemented here virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoGetSize(int *width, int *height) const; virtual void DoGetSizeMM(int* width, int* height) const; public: diff --git a/include/wx/gtk1/dcclient.h b/include/wx/gtk1/dcclient.h index f91eae7dc9..2168e181d7 100644 --- a/include/wx/gtk1/dcclient.h +++ b/include/wx/gtk1/dcclient.h @@ -40,7 +40,8 @@ public: virtual bool CanDrawBitmap() const { return TRUE; } virtual bool CanGetTextExtent() const { return TRUE; } -//protected: +protected: + virtual void DoGetSize(int *width, int *height) const; virtual void DoFloodFill( wxCoord x, wxCoord y, const wxColour& col, int style=wxFLOOD_SURFACE ); virtual bool DoGetPixel( wxCoord x1, wxCoord y1, wxColour *col ) const; @@ -78,6 +79,8 @@ public: wxCoord *descent = (wxCoord *) NULL, wxCoord *externalLeading = (wxCoord *) NULL, wxFont *theFont = (wxFont *) NULL) const; + +public: virtual wxCoord GetCharWidth() const; virtual wxCoord GetCharHeight() const; @@ -134,20 +137,6 @@ private: DECLARE_DYNAMIC_CLASS(wxWindowDC) }; -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class wxPaintDC : public wxWindowDC -{ -public: - wxPaintDC(); - wxPaintDC( wxWindow *win ); - -private: - DECLARE_DYNAMIC_CLASS(wxPaintDC) -}; - //----------------------------------------------------------------------------- // wxClientDC //----------------------------------------------------------------------------- @@ -155,11 +144,25 @@ private: class wxClientDC : public wxWindowDC { public: - wxClientDC(); + wxClientDC() { } wxClientDC( wxWindow *win ); private: DECLARE_DYNAMIC_CLASS(wxClientDC) }; +//----------------------------------------------------------------------------- +// wxPaintDC +//----------------------------------------------------------------------------- + +class wxPaintDC : public wxClientDC +{ +public: + wxPaintDC() { } + wxPaintDC( wxWindow *win ); + +private: + DECLARE_DYNAMIC_CLASS(wxPaintDC) +}; + #endif // __GTKDCCLIENTH__ diff --git a/include/wx/gtk1/dcscreen.h b/include/wx/gtk1/dcscreen.h index 64f1dfc6ac..b1cc81a7e6 100644 --- a/include/wx/gtk1/dcscreen.h +++ b/include/wx/gtk1/dcscreen.h @@ -22,22 +22,25 @@ class wxScreenDC; // wxScreenDC //----------------------------------------------------------------------------- -class wxScreenDC: public wxPaintDC +class wxScreenDC : public wxPaintDC { public: wxScreenDC(); - ~wxScreenDC(); + virtual ~wxScreenDC(); static bool StartDrawingOnTop( wxWindow *window ); static bool StartDrawingOnTop( wxRect *rect = (wxRect *) NULL ); static bool EndDrawingOnTop(); // implementation - + static GdkWindow *sm_overlayWindow; static int sm_overlayWindowX; static int sm_overlayWindowY; - + +protected: + virtual void DoGetSize(int *width, int *height) const; + private: DECLARE_DYNAMIC_CLASS(wxScreenDC) }; diff --git a/src/gtk/dc.cpp b/src/gtk/dc.cpp index da0b27c97a..57273f2ba5 100644 --- a/src/gtk/dc.cpp +++ b/src/gtk/dc.cpp @@ -69,12 +69,6 @@ void wxDC::DestroyClippingRegion() // get DC capabilities // --------------------------------------------------------------------------- -void wxDC::DoGetSize( int* width, int* height ) const -{ - if (width) *width = m_maxX-m_minX; - if (height) *height = m_maxY-m_minY; -} - void wxDC::DoGetSizeMM( int* width, int* height ) const { int w = 0; diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index f0a96e5694..23efde3470 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -393,6 +393,13 @@ void wxWindowDC::SetUpDC() } } +void wxWindowDC::DoGetSize( int* width, int* height ) const +{ + wxCHECK_RET( m_owner, _T("GetSize() doesn't work without window") ); + + m_owner->GetSize(width, height); +} + void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxColour &WXUNUSED(col), int WXUNUSED(style) ) { diff --git a/src/gtk/dcscreen.cpp b/src/gtk/dcscreen.cpp index 51a09f4806..a79f479bbf 100644 --- a/src/gtk/dcscreen.cpp +++ b/src/gtk/dcscreen.cpp @@ -101,3 +101,7 @@ bool wxScreenDC::EndDrawingOnTop() return TRUE; } +void wxScreenDC::DoGetSize(int *width, int *height) const +{ + wxDisplaySize(width, height); +} diff --git a/src/gtk1/dc.cpp b/src/gtk1/dc.cpp index da0b27c97a..57273f2ba5 100644 --- a/src/gtk1/dc.cpp +++ b/src/gtk1/dc.cpp @@ -69,12 +69,6 @@ void wxDC::DestroyClippingRegion() // get DC capabilities // --------------------------------------------------------------------------- -void wxDC::DoGetSize( int* width, int* height ) const -{ - if (width) *width = m_maxX-m_minX; - if (height) *height = m_maxY-m_minY; -} - void wxDC::DoGetSizeMM( int* width, int* height ) const { int w = 0; diff --git a/src/gtk1/dcclient.cpp b/src/gtk1/dcclient.cpp index f0a96e5694..23efde3470 100644 --- a/src/gtk1/dcclient.cpp +++ b/src/gtk1/dcclient.cpp @@ -393,6 +393,13 @@ void wxWindowDC::SetUpDC() } } +void wxWindowDC::DoGetSize( int* width, int* height ) const +{ + wxCHECK_RET( m_owner, _T("GetSize() doesn't work without window") ); + + m_owner->GetSize(width, height); +} + void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxColour &WXUNUSED(col), int WXUNUSED(style) ) { diff --git a/src/gtk1/dcscreen.cpp b/src/gtk1/dcscreen.cpp index 51a09f4806..a79f479bbf 100644 --- a/src/gtk1/dcscreen.cpp +++ b/src/gtk1/dcscreen.cpp @@ -101,3 +101,7 @@ bool wxScreenDC::EndDrawingOnTop() return TRUE; } +void wxScreenDC::DoGetSize(int *width, int *height) const +{ + wxDisplaySize(width, height); +}