diff options
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/outdev/wallpaper.cxx | 57 |
1 files changed, 10 insertions, 47 deletions
diff --git a/vcl/source/outdev/wallpaper.cxx b/vcl/source/outdev/wallpaper.cxx index 175f0d199eda..1819f936d9c8 100644 --- a/vcl/source/outdev/wallpaper.cxx +++ b/vcl/source/outdev/wallpaper.cxx @@ -60,8 +60,6 @@ void OutputDevice::DrawWallpaper( long nX, long nY, if( rWallpaper.IsBitmap() ) DrawBitmapWallpaper( nX, nY, nWidth, nHeight, rWallpaper ); - else if( rWallpaper.IsGradient() ) - DrawGradientWallpaper( nX, nY, nWidth, nHeight, rWallpaper ); else DrawColorWallpaper( nX, nY, nWidth, nHeight, rWallpaper ); } @@ -119,7 +117,6 @@ void OutputDevice::DrawBitmapWallpaper( long nX, long nY, const WallpaperStyle eStyle = rWallpaper.GetStyle(); const bool bOldMap = mbMap; bool bDrawn = false; - bool bDrawGradientBackground = false; bool bDrawColorBackground = false; if( pCached ) @@ -134,34 +131,24 @@ void OutputDevice::DrawBitmapWallpaper( long nX, long nY, // draw background if( bTransparent ) { - if( rWallpaper.IsGradient() ) - bDrawGradientBackground = true; - else + if( !pCached && !rWallpaper.GetColor().GetTransparency() ) { - if( !pCached && !rWallpaper.GetColor().GetTransparency() ) - { - ScopedVclPtrInstance< VirtualDevice > aVDev( *this ); - aVDev->SetBackground( rWallpaper.GetColor() ); - aVDev->SetOutputSizePixel( Size( nBmpWidth, nBmpHeight ) ); - aVDev->DrawBitmapEx( Point(), aBmpEx ); - aBmpEx = aVDev->GetBitmap( Point(), aVDev->GetOutputSizePixel() ); - } - - bDrawColorBackground = true; + ScopedVclPtrInstance< VirtualDevice > aVDev( *this ); + aVDev->SetBackground( rWallpaper.GetColor() ); + aVDev->SetOutputSizePixel( Size( nBmpWidth, nBmpHeight ) ); + aVDev->DrawBitmapEx( Point(), aBmpEx ); + aBmpEx = aVDev->GetBitmap( Point(), aVDev->GetOutputSizePixel() ); } + + bDrawColorBackground = true; } else if( eStyle != WallpaperStyle::Tile && eStyle != WallpaperStyle::Scale ) { - if( rWallpaper.IsGradient() ) - bDrawGradientBackground = true; - else - bDrawColorBackground = true; + bDrawColorBackground = true; } // background of bitmap? - if( bDrawGradientBackground ) - DrawGradientWallpaper( nX, nY, nWidth, nHeight, rWallpaper ); - else if( bDrawColorBackground && bTransparent ) + if( bDrawColorBackground && bTransparent ) { DrawColorWallpaper( nX, nY, nWidth, nHeight, rWallpaper ); bDrawColorBackground = false; @@ -343,28 +330,4 @@ void OutputDevice::DrawBitmapWallpaper( long nX, long nY, mpMetaFile = pOldMetaFile; } -void OutputDevice::DrawGradientWallpaper( long nX, long nY, - long nWidth, long nHeight, - const Wallpaper& rWallpaper ) -{ - assert(!is_double_buffered_window()); - - Rectangle aBound; - GDIMetaFile* pOldMetaFile = mpMetaFile; - const bool bOldMap = mbMap; - - aBound = Rectangle( Point( nX, nY ), Size( nWidth, nHeight ) ); - - mpMetaFile = NULL; - EnableMapMode( false ); - Push( PushFlags::CLIPREGION ); - IntersectClipRegion( Rectangle( Point( nX, nY ), Size( nWidth, nHeight ) ) ); - - DrawGradient( aBound, rWallpaper.GetGradient() ); - - Pop(); - EnableMapMode( bOldMap ); - mpMetaFile = pOldMetaFile; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |