wxDC::GetSize() should work now in wxGTK

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2000-10-30 16:43:37 +00:00
parent 188781dbbd
commit 376aa62a5d
12 changed files with 74 additions and 54 deletions

View File

@ -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:

View File

@ -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__

View File

@ -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)
};

View File

@ -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:

View File

@ -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__

View File

@ -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)
};

View File

@ -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;

View File

@ -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) )
{

View File

@ -101,3 +101,7 @@ bool wxScreenDC::EndDrawingOnTop()
return TRUE;
}
void wxScreenDC::DoGetSize(int *width, int *height) const
{
wxDisplaySize(width, height);
}

View File

@ -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;

View File

@ -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) )
{

View File

@ -101,3 +101,7 @@ bool wxScreenDC::EndDrawingOnTop()
return TRUE;
}
void wxScreenDC::DoGetSize(int *width, int *height) const
{
wxDisplaySize(width, height);
}