wxWindow::ReParent()
wxDC::SetClippingRegio( region) lots if wxDC inline with wxPoint git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -116,15 +116,6 @@ wxWindowDC::wxWindowDC( wxWindow *window )
|
||||
|
||||
SetUpDC();
|
||||
|
||||
/*
|
||||
wxRegion update = window->GetUpdateRegion();
|
||||
if (update.Empty()) return;
|
||||
|
||||
gdk_gc_set_clip_region( m_penGC, update.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_brushGC, update.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_textGC, update.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_bgGC, update.GetRegion() );
|
||||
*/
|
||||
}
|
||||
|
||||
wxWindowDC::~wxWindowDC(void)
|
||||
@@ -132,8 +123,8 @@ wxWindowDC::~wxWindowDC(void)
|
||||
Destroy();
|
||||
}
|
||||
|
||||
void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1),
|
||||
wxColour *WXUNUSED(col), int WXUNUSED(style) )
|
||||
void wxWindowDC::FloodFill( long WXUNUSED(x), long WXUNUSED(y),
|
||||
const wxColour &WXUNUSED(col), int WXUNUSED(style) )
|
||||
{
|
||||
wxFAIL_MSG( "wxWindowDC::FloodFill not implemented" );
|
||||
}
|
||||
@@ -505,7 +496,7 @@ bool wxWindowDC::CanDrawBitmap(void) const
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
|
||||
void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y )
|
||||
{
|
||||
if (!Ok()) return;
|
||||
|
||||
@@ -517,7 +508,7 @@ void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
|
||||
GdkBitmap *mask = (GdkBitmap *) NULL;
|
||||
if (icon.GetMask()) mask = icon.GetMask()->GetBitmap();
|
||||
|
||||
if (useMask && mask)
|
||||
if (mask)
|
||||
{
|
||||
gdk_gc_set_clip_mask( m_penGC, mask );
|
||||
gdk_gc_set_clip_origin( m_penGC, xx, yy );
|
||||
@@ -526,6 +517,39 @@ void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
|
||||
GdkPixmap *pm = icon.GetPixmap();
|
||||
gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, -1, -1 );
|
||||
|
||||
if (mask)
|
||||
{
|
||||
gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL );
|
||||
gdk_gc_set_clip_origin( m_penGC, 0, 0 );
|
||||
}
|
||||
|
||||
CalcBoundingBox( x, y );
|
||||
int width = icon.GetWidth();
|
||||
int height = icon.GetHeight();
|
||||
CalcBoundingBox( x + width, y + height );
|
||||
}
|
||||
|
||||
void wxWindowDC::DrawBitmap( const wxBitmap &bitmap, long x, long y, bool useMask )
|
||||
{
|
||||
if (!Ok()) return;
|
||||
|
||||
if (!bitmap.Ok()) return;
|
||||
|
||||
int xx = XLOG2DEV(x);
|
||||
int yy = YLOG2DEV(y);
|
||||
|
||||
GdkBitmap *mask = (GdkBitmap *) NULL;
|
||||
if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
|
||||
|
||||
if (useMask && mask)
|
||||
{
|
||||
gdk_gc_set_clip_mask( m_penGC, mask );
|
||||
gdk_gc_set_clip_origin( m_penGC, xx, yy );
|
||||
}
|
||||
|
||||
GdkPixmap *pm = bitmap.GetPixmap();
|
||||
gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, -1, -1 );
|
||||
|
||||
if (useMask && mask)
|
||||
{
|
||||
gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL );
|
||||
@@ -533,8 +557,8 @@ void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
|
||||
}
|
||||
|
||||
CalcBoundingBox( x, y );
|
||||
int width = icon.GetWidth();
|
||||
int height = icon.GetHeight();
|
||||
int width = bitmap.GetWidth();
|
||||
int height = bitmap.GetHeight();
|
||||
CalcBoundingBox( x + width, y + height );
|
||||
}
|
||||
|
||||
@@ -941,6 +965,20 @@ void wxWindowDC::SetClippingRegion( long x, long y, long width, long height )
|
||||
gdk_gc_set_clip_rectangle( m_bgGC, &rect );
|
||||
}
|
||||
|
||||
void wxWindowDC::SetClippingRegion( const wxRegion ®ion )
|
||||
{
|
||||
if (region.Empty())
|
||||
{
|
||||
DestroyClippingRegion();
|
||||
return;
|
||||
}
|
||||
|
||||
gdk_gc_set_clip_region( m_penGC, region.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_brushGC, region.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_textGC, region.GetRegion() );
|
||||
gdk_gc_set_clip_region( m_bgGC, region.GetRegion() );
|
||||
}
|
||||
|
||||
void wxWindowDC::DestroyClippingRegion(void)
|
||||
{
|
||||
wxDC::DestroyClippingRegion();
|
||||
|
Reference in New Issue
Block a user