Index: vcl/unx/source/gdi/salbmp.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/gdi/salbmp.cxx,v retrieving revision 1.8 diff -u -p -u -r1.8 salbmp.cxx --- vcl/unx/source/gdi/salbmp.cxx 11 Sep 2001 15:52:22 -0000 1.8 +++ vcl/unx/source/gdi/salbmp.cxx 16 Sep 2003 12:51:50 -0000 @@ -91,6 +91,9 @@ #ifndef _SV_SALBMP_HXX #include #endif +#ifndef _SV_SALFRAME_HXX +#include +#endif // ----------- // - Defines - @@ -1140,4 +1146,16 @@ void ImplSalBitmapCache::ImplClear() maBmpList.Clear(); mnTotalSize = 0; +} + +void +SalBitmap::SetWindowBg( SalFrame *pFrame ) +{ + if( !pFrame ) + return; + + XLIB_Window window = pFrame->maFrameData.GetWindow(); + DBG_ASSERT( mpDDB, "SetWindowBg needs valid DDB" ); + XSetWindowBackgroundPixmap (pFrame->maFrameData.GetXDisplay (), + window, mpDDB->ImplGetPixmap ()); } Index: vcl/unx/inc/salbmp.hxx =================================================================== RCS file: /cvs/gsl/vcl/unx/inc/salbmp.hxx,v retrieving revision 1.3 diff -u -p -u -r1.3 salbmp.hxx --- vcl/unx/inc/salbmp.hxx 29 Aug 2001 16:14:00 -0000 1.3 +++ vcl/unx/inc/salbmp.hxx 16 Sep 2003 12:51:51 -0000 @@ -133,6 +133,7 @@ public: void ImplDraw( Drawable aDrawable, long nDrawableDepth, const SalTwoRect& rTwoRect, const GC& rGC ) const; #endif + void SetWindowBg( SalFrame *pFrame ); public: Index: vcl/source/window/introwin.cxx =================================================================== RCS file: /cvs/gsl/vcl/source/window/introwin.cxx,v retrieving revision 1.2 diff -u -p -u -r1.2 introwin.cxx --- vcl/source/window/introwin.cxx 27 Mar 2003 17:58:22 -0000 1.2 +++ vcl/source/window/introwin.cxx 16 Sep 2003 12:51:51 -0000 @@ -97,6 +97,18 @@ #ifndef _SV_OPENGL_HXX #include #endif +#ifndef _SV_BITMAP_HXX +#include +#endif +#ifndef _SV_BITMAPEX_HXX +#include +#endif +#ifndef _SV_IMPBMP_HXX +#include +#endif +#ifndef _SV_SALBMP_HXX +#include +#endif #include @@ -129,4 +141,21 @@ IntroWindow::~IntroWindow() pSVData->mpIntroWindow = NULL; } +void +IntroWindow::SetBackgroundBitmap( const Bitmap &rBitmap ) +{ + SetBackground( Wallpaper( BitmapEx( rBitmap ) ) ); +} +void +IntroWindow::Paint( const Rectangle &rRect ) +{ + Bitmap aBmp( GetBackground().GetBitmap().GetBitmap() ); + + DrawBitmap( Point(), aBmp ); +#ifdef UNX + ImpBitmap *pImpBmp = aBmp.ImplGetImpBitmap(); + if( pImpBmp ) + pImpBmp->ImplGetSalBitmap ()->SetWindowBg( ImplGetFrame() ); +#endif +} Index: vcl/inc/introwin.hxx =================================================================== RCS file: /cvs/gsl/vcl/inc/introwin.hxx,v retrieving revision 1.2 diff -u -p -u -r1.2 introwin.hxx --- vcl/inc/introwin.hxx 27 Mar 2003 17:57:22 -0000 1.2 +++ vcl/inc/introwin.hxx 16 Sep 2003 12:51:51 -0000 @@ -82,6 +82,8 @@ private: public: IntroWindow(); ~IntroWindow(); + void IntroWindow::SetBackgroundBitmap( const Bitmap &rBitmap ); + virtual void Paint( const Rectangle& ); }; #endif // _SV_INTROWIN_HXX Index: desktop/source/splash/splash.cxx =================================================================== RCS file: /cvs/framework/desktop/source/splash/splash.cxx,v retrieving revision 1.4 diff -u -p -u -r1.4 splash.cxx --- desktop/source/splash/splash.cxx 15 Jul 2003 14:06:11 -0000 1.4 +++ desktop/source/splash/splash.cxx 16 Sep 2003 12:51:51 -0000 @@ -235,15 +235,16 @@ void SplashScreen::initBitmap() _aIntroBmp = Bitmap( aIntroBmpRes ); delete pLabelResMgr; } + SetBackgroundBitmap( _aIntroBmp ); } } -void SplashScreen::Paint( const Rectangle& ) +void SplashScreen::Paint( const Rectangle& rRect ) { if(!_bVisible) return; // draw bitmap if (_bPaintBitmap) - DrawBitmap( Point(), _aIntroBmp ); + IntroWindow::Paint( rRect ); if (_bPaintProgress) { // draw progress...