Index: vcl/source/window/brdwin.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/window/brdwin.cxx,v
retrieving revision 1.23
diff -u -p -u -r1.23 brdwin.cxx
--- vcl/source/window/brdwin.cxx	28 Sep 2005 14:50:05 -0000	1.23
+++ vcl/source/window/brdwin.cxx	31 May 2006 09:17:50 -0000
@@ -95,11 +95,15 @@ static void ImplGetPinImage( USHORT nSty
 	ImplSVData* pSVData = ImplGetSVData();
 	if ( !pSVData->maCtrlData.mpPinImgList )
 	{
-		Bitmap aBmp;
         ResMgr* pResMgr = ImplGetResMgr();
+		pSVData->maCtrlData.mpPinImgList = new ImageList();
         if( pResMgr )
-            aBmp = Bitmap( ResId( SV_RESID_BITMAP_PIN, ImplGetResMgr() ) );
-		pSVData->maCtrlData.mpPinImgList = new ImageList( aBmp, Color( 0x00, 0x00, 0xFF ), 4 );
+		{
+			Color aMaskColor( 0x00, 0x00, 0xFF );
+			pSVData->maCtrlData.mpPinImgList->InsertFromHorizontalBitmap
+				( ResId( SV_RESID_BITMAP_PIN, ImplGetResMgr() ), 4,
+				  &aMaskColor, NULL, NULL, 0);
+		}
 	}
 
 	// Image ermitteln und zurueckgeben
Index: vcl/source/window/msgbox.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/window/msgbox.cxx,v
retrieving revision 1.17
diff -u -p -u -r1.17 msgbox.cxx
--- vcl/source/window/msgbox.cxx	28 Sep 2005 14:51:46 -0000	1.17
+++ vcl/source/window/msgbox.cxx	31 May 2006 09:25:08 -0000
@@ -84,15 +84,13 @@ static void ImplInitMsgBoxImageList()
 	{
         BitmapEx aBmpEx;
         ResMgr* pResMgr = ImplGetResMgr();
+		pSVData->maWinData.mpMsgBoxImgList = new ImageList(4);
         if( pResMgr )
         {
-            aBmpEx = BitmapEx( ResId( SV_RESID_BITMAP_MSGBOX, ImplGetResMgr() ) );
-		
-            if( !aBmpEx.IsTransparent() )
-                aBmpEx = BitmapEx( aBmpEx.GetBitmap(), Color( 0xC0, 0xC0, 0xC0 ) );
-        }
-        
-		pSVData->maWinData.mpMsgBoxImgList = new ImageList( aBmpEx, 4 );
+			Color aNonAlphaMask( 0xC0, 0xC0, 0xC0 );
+			pSVData->maWinData.mpMsgBoxImgList->InsertFromHorizontalBitmap
+					( ResId( SV_RESID_BITMAP_MSGBOX, ImplGetResMgr() ), 4, &aNonAlphaMask );
+		}
 	}
 }
 
Index: vcl/source/window/scrwnd.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/window/scrwnd.cxx,v
retrieving revision 1.5
diff -u -p -u -r1.5 scrwnd.cxx
--- vcl/source/window/scrwnd.cxx	28 Sep 2005 14:52:29 -0000	1.5
+++ vcl/source/window/scrwnd.cxx	31 May 2006 09:27:47 -0000
@@ -144,11 +144,10 @@ void ImplWheelWindow::ImplSetRegion( con
 
 void ImplWheelWindow::ImplCreateImageList()
 {
-    Bitmap aImgBmp;
     ResMgr* pResMgr = ImplGetResMgr();
     if( pResMgr )
-        aImgBmp = Bitmap( ResId( SV_RESID_BITMAP_SCROLLBMP, pResMgr ) );
-    maImgList = ImageList( aImgBmp, 6 );
+		maImgList.InsertFromHorizontalBitmap
+			( ResId( SV_RESID_BITMAP_SCROLLBMP, pResMgr ), 6, NULL );
 }
 
 // ------------------------------------------------------------------------
Index: vcl/source/window/splitwin.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/window/splitwin.cxx,v
retrieving revision 1.13
diff -u -p -u -r1.13 splitwin.cxx
--- vcl/source/window/splitwin.cxx	1 Nov 2005 10:34:10 -0000	1.13
+++ vcl/source/window/splitwin.cxx	31 May 2006 09:31:53 -0000
@@ -1966,11 +1966,14 @@ void SplitWindow::ImplDrawAutoHide( BOOL
 		{
 			if ( !pSVData->maCtrlData.mpSplitHPinImgList )
 			{
-				Bitmap aBmp;
                 ResMgr* pResMgr = ImplGetResMgr();
                 if( pResMgr )
-                    aBmp = Bitmap( ResId( SV_RESID_BITMAP_SPLITHPIN, pResMgr ) );
-				pSVData->maCtrlData.mpSplitHPinImgList = new ImageList( aBmp, Color( 0x00, 0x00, 0xFF ), 4 );
+				{
+					Color aNonAlphaMask( 0x00, 0x00, 0xFF );
+					pSVData->maCtrlData.mpSplitHPinImgList = new ImageList(4);
+					pSVData->maCtrlData.mpSplitHPinImgList->InsertFromHorizontalBitmap
+						( ResId( SV_RESID_BITMAP_SPLITHPIN, pResMgr ), 4, &aNonAlphaMask );
+				}
 			}
 			pImageList = pSVData->maCtrlData.mpSplitHPinImgList;
 		}
@@ -1978,11 +1981,14 @@ void SplitWindow::ImplDrawAutoHide( BOOL
 		{
 			if ( !pSVData->maCtrlData.mpSplitVPinImgList )
 			{
-				Bitmap aBmp;
                 ResMgr* pResMgr = ImplGetResMgr();
+				pSVData->maCtrlData.mpSplitVPinImgList = new ImageList(4);
                 if( pResMgr )
-                    aBmp = Bitmap( ResId( SV_RESID_BITMAP_SPLITVPIN, pResMgr ) );
-				pSVData->maCtrlData.mpSplitVPinImgList = new ImageList( aBmp, Color( 0x00, 0x00, 0xFF ), 4 );
+				{
+					Color aNonAlphaMask( 0x00, 0x00, 0xFF );
+					pSVData->maCtrlData.mpSplitVPinImgList->InsertFromHorizontalBitmap
+						( ResId( SV_RESID_BITMAP_SPLITVPIN, pResMgr ), 4, &aNonAlphaMask );
+				}
 			}
 			pImageList = pSVData->maCtrlData.mpSplitVPinImgList;
 		}
Index: goodies/source/unographic/provider.cxx
===================================================================
RCS file: /cvs/graphics/goodies/source/unographic/provider.cxx,v
retrieving revision 1.4
diff -u -p -u -r1.4 provider.cxx
--- goodies/source/unographic/provider.cxx	9 Sep 2005 03:11:17 -0000	1.4
+++ goodies/source/unographic/provider.cxx	31 May 2006 09:35:41 -0000
@@ -243,7 +243,7 @@ uno::Reference< ::graphic::XGraphic > Gr
 						}
 						else
 						{
-							aBmpEx = aImageList.GetBitmapEx();
+							aBmpEx = aImageList.GetAsHorizontalStrip();
 						}
 					}
 				}
Index: framework/source/uiconfiguration/moduleimagemanager.cxx
===================================================================
RCS file: /cvs/framework/framework/source/uiconfiguration/moduleimagemanager.cxx,v
retrieving revision 1.12
diff -u -p -u -r1.12 moduleimagemanager.cxx
--- framework/source/uiconfiguration/moduleimagemanager.cxx	5 Jan 2006 18:10:52 -0000	1.12
+++ framework/source/uiconfiguration/moduleimagemanager.cxx	31 May 2006 10:20:26 -0000
@@ -603,7 +603,9 @@ sal_Bool ModuleImageManager::implts_load
 
                     // Delete old image list and create a new one from the read bitmap
                     delete m_pUserImageList[nImageType];
-                    m_pUserImageList[nImageType] = new ImageList( aUserBitmap, aUserImagesVector );
+                    m_pUserImageList[nImageType] = new ImageList();
+					m_pUserImageList[nImageType]->InsertFromHorizontalStrip
+						( aUserBitmap, aUserImagesVector );
                     return sal_True;
                 }
             }
@@ -675,7 +677,7 @@ sal_Bool ModuleImageManager::implts_stor
                 if ( xBitmapStream.is() )
                 {
                     SvStream* pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
-                    vcl::PNGWriter aPngWriter( pImageList->GetBitmapEx() );
+                    vcl::PNGWriter aPngWriter( pImageList->GetAsHorizontalStrip() );
                     aPngWriter.Write( *pSvStream );
                     delete pSvStream;
 
Index: framework/source/uiconfiguration/imagemanager.cxx
===================================================================
RCS file: /cvs/framework/framework/source/uiconfiguration/imagemanager.cxx,v
retrieving revision 1.8
diff -u -p -u -r1.8 imagemanager.cxx
--- framework/source/uiconfiguration/imagemanager.cxx	9 Sep 2005 01:49:53 -0000	1.8
+++ framework/source/uiconfiguration/imagemanager.cxx	31 May 2006 10:20:38 -0000
@@ -338,7 +338,9 @@ sal_Bool ImageManager::implts_loadUserIm
 
                     // Delete old image list and create a new one from the read bitmap
                     delete m_pUserImageList[nImageType];
-                    m_pUserImageList[nImageType] = new ImageList( aUserBitmap, aUserImagesVector );
+                    m_pUserImageList[nImageType] = new ImageList();
+					m_pUserImageList[nImageType]->InsertFromHorizontalStrip
+						( aUserBitmap, aUserImagesVector );
                     return sal_True;
                 }
             }
@@ -410,7 +412,7 @@ sal_Bool ImageManager::implts_storeUserI
                 if ( xBitmapStream.is() )
                 {
                     SvStream* pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
-                    vcl::PNGWriter aPngWriter( pImageList->GetBitmapEx() );
+                    vcl::PNGWriter aPngWriter( pImageList->GetAsHorizontalStrip() );
                     aPngWriter.Write( *pSvStream );
                     delete pSvStream;
 
Index: svx/source/dialog/frmsel.cxx
===================================================================
RCS file: /cvs/graphics/svx/source/dialog/frmsel.cxx,v
retrieving revision 1.18
diff -u -p -u -r1.18 frmsel.cxx
--- svx/source/dialog/frmsel.cxx	8 Sep 2005 21:08:45 -0000	1.18
+++ svx/source/dialog/frmsel.cxx	31 May 2006 10:29:20 -0000
@@ -57,6 +57,8 @@
 #include "frmsel.hrc"
 #endif
 
+#include <tools/rcid.h>
+
 namespace svx {
 
 using ::com::sun::star::uno::Reference;
@@ -252,7 +252,7 @@ FrameBorderType FrameBorder::GetKeyboard
 FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) :
     Resource( SVX_RES( RID_SVXSTR_BORDER_CONTROL ) ),
     mrFrameSel( rFrameSel ),
-    maBmpArrows( ResId( BMP_FRMSEL_ARROWS ) ),
+	maILArrows( 16 ),
     maLeft( FRAMEBORDER_LEFT ),
     maRight( FRAMEBORDER_RIGHT ),
     maTop( FRAMEBORDER_TOP ),
@@ -346,14 +346,20 @@ void FrameSelectorImpl::InitColors()
 
 void FrameSelectorImpl::InitArrowImageList()
 {
-    /*  Build the arrow images bitmap with current colors. */
-    Bitmap aBmp( maBmpArrows );
-    aBmp.Replace( Color( 0, 0, 0 ), maArrowCol );       // black -> arrow color
-    aBmp.Replace( Color( 0, 255, 0 ), maMarkCol );      // green -> marker color
-    aBmp.Replace( Color( 255, 0, 255 ), maBackCol );    // magenta -> background
+    /* Build the arrow images bitmap with current colors. */
+	Color pColorAry1[3];
+	Color pColorAry2[3];
+	pColorAry1[0] = Color( 0, 0, 0 );
+	pColorAry2[0] = maArrowCol;       // black -> arrow color
+	pColorAry1[1] = Color( 0, 255, 0 );
+	pColorAry2[1] = maMarkCol;        // green -> marker color
+	pColorAry1[2] = Color( 255, 0, 255 );
+	pColorAry2[2] = maBackCol;       // magenta -> background
 
-    /*  Create the new image list. */
-    maILArrows = ImageList( aBmp, 16 );
+	GetRes( SVX_RES( RID_SVXSTR_BORDER_CONTROL ).SetRT( RSC_RESOURCE ) );
+	maILArrows.InsertFromHorizontalBitmap(
+		ResId( BMP_FRMSEL_ARROWS ), 16, NULL, pColorAry1, pColorAry2, 3);
+	FreeResource();
     DBG_ASSERT( maILArrows.GetImageSize().Height() == maILArrows.GetImageSize().Width(),
         "svx::FrameSelectorImpl::InitArrowImageList - images are not squarish" );
     mnArrowSize = maILArrows.GetImageSize().Height();
Index: svx/source/inc/frmselimpl.hxx
===================================================================
RCS file: /cvs/graphics/svx/source/inc/frmselimpl.hxx,v
retrieving revision 1.3
diff -u -p -u -r1.3 frmselimpl.hxx
--- svx/source/inc/frmselimpl.hxx	8 Sep 2005 23:23:12 -0000	1.3
+++ svx/source/inc/frmselimpl.hxx	31 May 2006 10:29:36 -0000
@@ -123,7 +123,6 @@ struct FrameSelectorImpl : public Resour
 
     FrameSelector&      mrFrameSel;     /// The control itself.
     VirtualDevice       maVirDev;       /// For all buffered drawing operations.
-    const Bitmap        maBmpArrows;    /// Original arrows bitmap from resource.
     ImageList           maILArrows;     /// Arrows in current system colors.
     Color               maBackCol;      /// Background color.
     Color               maArrowCol;     /// Selection arrow color.
Index: sfx2/source/toolbox/imgmgr.cxx
===================================================================
RCS file: /cvs/framework/sfx2/source/toolbox/imgmgr.cxx,v
retrieving revision 1.26
diff -u -p -u -r1.26 imgmgr.cxx
--- sfx2/source/toolbox/imgmgr.cxx	5 Jan 2006 18:22:00 -0000	1.26
+++ sfx2/source/toolbox/imgmgr.cxx	31 May 2006 10:56:10 -0000
@@ -212,7 +212,7 @@ ImageList* SfxImageManager_Impl::GetImag
 Image SfxImageManager_Impl::GetImage( USHORT nId, BOOL bBig, BOOL bHiContrast )
 {
 	ImageList* pImageList = GetImageList( bBig, bHiContrast );
-    if ( pImageList && pImageList->GetImagePos( nId ) != IMAGELIST_IMAGE_NOTFOUND )
+    if ( pImageList )
 	    return pImageList->GetImage( nId );
     return Image();
 }
@@ -321,7 +321,7 @@ SfxImageManager* SfxImageManager::GetIma
 Image SfxImageManager::GetImage( USHORT nId, BOOL bBig, BOOL bHiContrast ) const
 {
 	ImageList* pImageList = pImp->GetImageList( bBig, bHiContrast );
-    if ( pImageList && pImageList->GetImagePos( nId ) != IMAGELIST_IMAGE_NOTFOUND )
+    if ( pImageList && pImageList->HasImageAtPos( nId ) )
 	    return pImageList->GetImage( nId );
     return Image();
 }
@@ -340,12 +340,12 @@ Image SfxImageManager::SeekImage( USHORT
 {
     sal_Bool bGlobal = ( pImp->m_pModule == 0 );
     ImageList* pImageList = pImp->GetImageList( bBig, bHiContrast );
-    if ( pImageList && pImageList->GetImagePos( nId ) != IMAGELIST_IMAGE_NOTFOUND )
+    if ( pImageList && pImageList->HasImageAtPos( nId ) )
 	    return pImageList->GetImage( nId );
     else if ( !bGlobal )
     {
         pImageList = ::GetImageManager( 0 )->GetImageList( bBig, bHiContrast );
-        if ( pImageList && pImageList->GetImagePos( nId ) != IMAGELIST_IMAGE_NOTFOUND )
+        if ( pImageList )
 	        return pImageList->GetImage( nId );
     }
     return Image();
@@ -409,7 +409,7 @@ void SfxImageManager::SetImagesForceSize
 		{
 			case TOOLBOXITEM_BUTTON:
 			{
-				if ( pImageList && pImageList->GetImagePos( nId ) != IMAGELIST_IMAGE_NOTFOUND )
+				if ( pImageList && pImageList->HasImageAtPos( nId ) )
 					rToolBox.SetItemImage( nId, pImageList->GetImage( nId ));
                 else
                     rToolBox.SetItemImage( nId, Image() );
Index: svtools/source/misc/imagemgr.cxx
===================================================================
RCS file: /cvs/util/svtools/source/misc/imagemgr.cxx,v
retrieving revision 1.39
diff -u -p -u -r1.39 imagemgr.cxx
--- svtools/source/misc/imagemgr.cxx	8 Sep 2005 16:18:03 -0000	1.39
+++ svtools/source/misc/imagemgr.cxx	31 May 2006 11:49:36 -0000
@@ -681,18 +681,20 @@ static Image GetOfficeImageFromList_Impl
 		}
     }
 
+	Image aImage = pList->GetImage( nImageId );
+
     if ( bBlackAndWhite )
     {
         // First invert the Image, because it's designed for black background, structures are bright
-        pList->Invert();
+		aImage.Invert();
         // Now make monochrome...
         ImageColorTransform eTrans = IMAGECOLORTRANSFORM_MONOCHROME_WHITE;
         if ( Application::GetSettings().GetStyleSettings().GetFaceColor().GetColor() == COL_WHITE )
             eTrans = IMAGECOLORTRANSFORM_MONOCHROME_BLACK;
-        *pList = pList->GetColorTransformedImageList( eTrans );
+        aImage = aImage.GetColorTransformedImage( eTrans );
     }
 
-	return pList->GetImage( nImageId );
+	return aImage;
 }
 
 static Image GetImageFromList_Impl( USHORT nImageId, BOOL bBig, BOOL bHighContrast )
@@ -739,7 +741,7 @@ static Image GetImageFromList_Impl( USHO
 		}
     }
 
-	if ( pList->GetImagePos( nImageId ) != IMAGELIST_IMAGE_NOTFOUND )
+	if ( pList->HasImageAtPos( nImageId ) )
 		return pList->GetImage( nImageId );
 	else
 		return GetOfficeImageFromList_Impl( nImageId, bBig, bHighContrast );
Index: vcl/source/control/button.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/control/button.cxx,v
retrieving revision 1.43
diff -u -p -u -r1.43 button.cxx
--- vcl/source/control/button.cxx	29 Mar 2006 11:25:02 -0000	1.43
+++ vcl/source/control/button.cxx	4 Jul 2006 16:59:09 -0000
@@ -3112,6 +3114,31 @@ Size RadioButton::ImplGetRadioImageSize(
     return aSize;
 }
 
+static void LoadThemedImageList (const StyleSettings &rStyleSettings,
+								 ImageList *pList, const ResId &rResId,
+								 int nImages)
+{
+	Color pColorAry1[6];
+	Color pColorAry2[6];
+	pColorAry1[0] = Color( 0xC0, 0xC0, 0xC0 );
+	pColorAry1[1] = Color( 0xFF, 0xFF, 0x00 );
+	pColorAry1[2] = Color( 0xFF, 0xFF, 0xFF );
+	pColorAry1[3] = Color( 0x80, 0x80, 0x80 );
+	pColorAry1[4] = Color( 0x00, 0x00, 0x00 );
+	pColorAry1[5] = Color( 0x00, 0xFF, 0x00 );
+	pColorAry2[0] = rStyleSettings.GetFaceColor();
+	pColorAry2[1] = rStyleSettings.GetWindowColor();
+	pColorAry2[2] = rStyleSettings.GetLightColor();
+	pColorAry2[3] = rStyleSettings.GetShadowColor();
+	pColorAry2[4] = rStyleSettings.GetDarkShadowColor();
+	pColorAry2[5] = rStyleSettings.GetWindowTextColor();
+	
+	Color aMaskColor(0x00, 0x00, 0xFF );
+	// FIXME: do we want the mask for the checkbox ?
+	pList->InsertFromHorizontalBitmap (rResId, nImages, &aMaskColor,
+									   pColorAry1, pColorAry2, 6);
+}
+
 Image RadioButton::GetRadioImage( const AllSettings& rSettings, USHORT nFlags )
 {
     ImplSVData*             pSVData = ImplGetSVData();
@@ -3134,10 +3161,8 @@ Image RadioButton::GetRadioImage( const 
         pSVData->maCtrlData.mnLastRadioWColor = rStyleSettings.GetWindowColor().GetColor();
         pSVData->maCtrlData.mnLastRadioLColor = rStyleSettings.GetLightColor().GetColor();
 
-        long    aTempAry1[(6*sizeof(Color))/sizeof(long)];
-        long    aTempAry2[(6*sizeof(Color))/sizeof(long)];
-        Color*  pColorAry1 = (Color*)aTempAry1;
-        Color*  pColorAry2 = (Color*)aTempAry2;
+        Color pColorAry1[6];
+        Color pColorAry2[6];
         pColorAry1[0] = Color( 0xC0, 0xC0, 0xC0 );
         pColorAry1[1] = Color( 0xFF, 0xFF, 0x00 );
         pColorAry1[2] = Color( 0xFF, 0xFF, 0xFF );
@@ -3152,12 +3177,12 @@ Image RadioButton::GetRadioImage( const 
         pColorAry2[5] = rStyleSettings.GetWindowTextColor();
 
         ResMgr* pResMgr = ImplGetResMgr();
-        Bitmap aBmp;
+        pSVData->maCtrlData.mpRadioImgList = new ImageList();
         if( pResMgr )
-            aBmp = Bitmap( ResId( SV_RESID_BITMAP_RADIO+nStyle, ImplGetResMgr() ) );
-        aBmp.Replace( pColorAry1, pColorAry2, 6, NULL );
-        pSVData->maCtrlData.mpRadioImgList = new ImageList( aBmp, Color( 0x00, 0x00, 0xFF ), 6 );
-        pSVData->maCtrlData.mnRadioStyle = nStyle;
+			LoadThemedImageList( rStyleSettings,
+								 pSVData->maCtrlData.mpRadioImgList,
+								 ResId( SV_RESID_BITMAP_RADIO+nStyle, ImplGetResMgr() ), 6 );
+		pSVData->maCtrlData.mnRadioStyle = nStyle;
     }
 
     USHORT nId;
@@ -3956,29 +3981,12 @@ Image CheckBox::GetCheckImage( const All
         pSVData->maCtrlData.mnLastCheckWColor = rStyleSettings.GetWindowColor().GetColor();
         pSVData->maCtrlData.mnLastCheckLColor = rStyleSettings.GetLightColor().GetColor();
 
-        long    aTempAry1[(6*sizeof(Color))/sizeof(long)];
-        long    aTempAry2[(6*sizeof(Color))/sizeof(long)];
-        Color*  pColorAry1 = (Color*)aTempAry1;
-        Color*  pColorAry2 = (Color*)aTempAry2;
-        pColorAry1[0] = Color( 0xC0, 0xC0, 0xC0 );
-        pColorAry1[1] = Color( 0xFF, 0xFF, 0x00 );
-        pColorAry1[2] = Color( 0xFF, 0xFF, 0xFF );
-        pColorAry1[3] = Color( 0x80, 0x80, 0x80 );
-        pColorAry1[4] = Color( 0x00, 0x00, 0x00 );
-        pColorAry1[5] = Color( 0x00, 0xFF, 0x00 );
-        pColorAry2[0] = rStyleSettings.GetFaceColor();
-        pColorAry2[1] = rStyleSettings.GetWindowColor();
-        pColorAry2[2] = rStyleSettings.GetLightColor();
-        pColorAry2[3] = rStyleSettings.GetShadowColor();
-        pColorAry2[4] = rStyleSettings.GetDarkShadowColor();
-        pColorAry2[5] = rStyleSettings.GetWindowTextColor();
-
         ResMgr* pResMgr = ImplGetResMgr();
-        Bitmap aBmp;
+        pSVData->maCtrlData.mpCheckImgList = new ImageList();
         if( pResMgr )
-            aBmp = Bitmap( ResId( SV_RESID_BITMAP_CHECK+nStyle, ImplGetResMgr() ) );
-        aBmp.Replace( pColorAry1, pColorAry2, 6, NULL );
-        pSVData->maCtrlData.mpCheckImgList = new ImageList( aBmp, 9 );
+			LoadThemedImageList( rStyleSettings,
+								 pSVData->maCtrlData.mpCheckImgList,
+								 ResId( SV_RESID_BITMAP_CHECK+nStyle, ImplGetResMgr() ), 9 );
         pSVData->maCtrlData.mnCheckStyle = nStyle;
     }
 

