summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/tools/rc.h10
-rw-r--r--rsc/source/parser/rscicpx.cxx6
-rw-r--r--vcl/source/image/Image.cxx19
3 files changed, 13 insertions, 22 deletions
diff --git a/include/tools/rc.h b/include/tools/rc.h
index 6bfafde5a244..cd09254b4dc4 100644
--- a/include/tools/rc.h
+++ b/include/tools/rc.h
@@ -154,9 +154,13 @@ namespace o3tl {
}
// For "Image":
-#define RSC_IMAGE_IMAGEBITMAP 0x01
-#define RSC_IMAGE_MASKBITMAP 0x02
-#define RSC_IMAGE_MASKCOLOR 0x04
+enum class RscImageFlags {
+ ImageBitmap = 0x01,
+ MaskColor = 0x04
+};
+namespace o3tl {
+ template<> struct typed_flags<RscImageFlags> : is_typed_flags<RscImageFlags, 0x05> {};
+}
// For "ImageList":
enum class RscImageListFlags {
diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx
index 1ec99f235f1d..4e0b2fcb6949 100644
--- a/rsc/source/parser/rscicpx.cxx
+++ b/rsc/source/parser/rscicpx.cxx
@@ -152,12 +152,10 @@ RscTop * RscTypCont::InitClassImage( RscTop * pSuper, RscTop * pClassBitmap,
// initialize variables
nId = aNmTb.Put( "ImageBitmap", VARNAME );
- pClassImage->SetVariable( nId, pClassBitmap, nullptr, 0, RSC_IMAGE_IMAGEBITMAP );
- nId = aNmTb.Put( "MaskBitmap", VARNAME );
- pClassImage->SetVariable( nId, pClassBitmap, nullptr, 0, RSC_IMAGE_MASKBITMAP );
+ pClassImage->SetVariable( nId, pClassBitmap, nullptr, 0, (sal_uInt32)RscImageFlags::ImageBitmap );
nId = aNmTb.Put( "MaskColor", VARNAME );
pClassImage->SetVariable( nId, pClassColor, nullptr,
- VAR_SVDYNAMIC, RSC_IMAGE_MASKCOLOR );
+ VAR_SVDYNAMIC, (sal_uInt32)RscImageFlags::MaskColor );
return pClassImage;
}
diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx
index 607fed2b6f64..417c3fe3433d 100644
--- a/vcl/source/image/Image.cxx
+++ b/vcl/source/image/Image.cxx
@@ -56,27 +56,16 @@ Image::Image( const ResId& rResId ) :
{
pResMgr->Increment( sizeof( RSHEADER_TYPE ) );
- BitmapEx aBmpEx;
- sal_uLong nObjMask = pResMgr->ReadLong();
+ BitmapEx aBmpEx;
+ RscImageFlags nObjMask = (RscImageFlags)pResMgr->ReadLong();
- if( nObjMask & RSC_IMAGE_IMAGEBITMAP )
+ if( nObjMask & RscImageFlags::ImageBitmap )
{
aBmpEx = BitmapEx( ResId( static_cast<RSHEADER_TYPE*>(pResMgr->GetClass()), *pResMgr ) );
pResMgr->Increment( ResMgr::GetObjSize( static_cast<RSHEADER_TYPE*>(pResMgr->GetClass()) ) );
}
- if( nObjMask & RSC_IMAGE_MASKBITMAP )
- {
- if( !aBmpEx.IsEmpty() && aBmpEx.GetTransparentType() == TRANSPARENT_NONE )
- {
- const Bitmap aMaskBitmap( ResId( static_cast<RSHEADER_TYPE*>(pResMgr->GetClass()), *pResMgr ) );
- aBmpEx = BitmapEx( aBmpEx.GetBitmap(), aMaskBitmap );
- }
-
- pResMgr->Increment( ResMgr::GetObjSize( static_cast<RSHEADER_TYPE*>(pResMgr->GetClass()) ) );
- }
-
- if( nObjMask & RSC_IMAGE_MASKCOLOR )
+ if( nObjMask & RscImageFlags::MaskColor )
{
if( !aBmpEx.IsEmpty() && aBmpEx.GetTransparentType() == TRANSPARENT_NONE )
{