From 2c40b082b585d0d4429f3f6915cf96a8f7914448 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Mon, 2 Mar 2015 20:45:07 +0900 Subject: code cleanup in tbxcolorupdate.cxx Change-Id: I671e59bab5bc649cc12026647531f8612eec394b --- svx/source/tbxctrls/tbxcolorupdate.cxx | 149 ++++++++++++++++----------------- 1 file changed, 73 insertions(+), 76 deletions(-) (limited to 'svx') diff --git a/svx/source/tbxctrls/tbxcolorupdate.cxx b/svx/source/tbxctrls/tbxcolorupdate.cxx index 62a022472efe..3c9a1efc21ed 100644 --- a/svx/source/tbxctrls/tbxcolorupdate.cxx +++ b/svx/source/tbxctrls/tbxcolorupdate.cxx @@ -27,12 +27,8 @@ #include #include - namespace svx { - - - //= ToolboxButtonColorUpdater /* Note: @@ -45,74 +41,70 @@ namespace svx */ ToolboxButtonColorUpdater::ToolboxButtonColorUpdater( - sal_uInt16 nId, - sal_uInt16 nTbxBtnId, - ToolBox* ptrTbx) : - mnBtnId ( nTbxBtnId ), - mnSlotId ( nId ), - mpTbx ( ptrTbx ), - maCurColor ( COL_TRANSPARENT ) + sal_uInt16 nId, sal_uInt16 nTbxBtnId, ToolBox* pToolBox) + : mnBtnId(nTbxBtnId) + , mnSlotId(nId) + , mpTbx(pToolBox) + , maCurColor(COL_TRANSPARENT) { - DBG_ASSERT( ptrTbx, "ToolBox not found :-(" ); - mbWasHiContrastMode = ptrTbx ? ( ptrTbx->GetSettings().GetStyleSettings().GetHighContrastMode() ) : sal_False; - switch( mnSlotId ) + DBG_ASSERT(pToolBox, "ToolBox not found :-("); + mbWasHiContrastMode = pToolBox ? pToolBox->GetSettings().GetStyleSettings().GetHighContrastMode() : false; + switch (mnSlotId) { - case SID_ATTR_CHAR_COLOR : - case SID_ATTR_CHAR_COLOR2 : - Update( COL_RED ); + case SID_ATTR_CHAR_COLOR: + case SID_ATTR_CHAR_COLOR2: + Update(COL_RED); break; - case SID_FRAME_LINECOLOR : - Update( COL_BLUE ); + case SID_FRAME_LINECOLOR: + Update(COL_BLUE); break; - case SID_ATTR_CHAR_COLOR_BACKGROUND : - case SID_BACKGROUND_COLOR : - Update( COL_YELLOW ); + case SID_ATTR_CHAR_COLOR_BACKGROUND: + case SID_BACKGROUND_COLOR: + Update(COL_YELLOW); break; case SID_ATTR_LINE_COLOR: - Update( COL_BLACK ); + Update(COL_BLACK); break; case SID_ATTR_FILL_COLOR: - Update( COL_DEFAULT_SHAPE_FILLING ); + Update(COL_DEFAULT_SHAPE_FILLING); break; - default : - Update( COL_TRANSPARENT ); + default: + Update(COL_TRANSPARENT); } } - - ToolboxButtonColorUpdater::~ToolboxButtonColorUpdater() - { - } - + {} - - void ToolboxButtonColorUpdater::Update( const Color& rColor ) + void ToolboxButtonColorUpdater::Update(const Color& rColor) { - Image aImage( mpTbx->GetItemImage( mnBtnId ) ); - Size aItemSize( mpTbx->GetItemContentSize( mnBtnId ) ); + Image aImage(mpTbx->GetItemImage(mnBtnId)); + Size aItemSize(mpTbx->GetItemContentSize(mnBtnId)); - const bool bSizeChanged = ( maBmpSize != aItemSize ); - const bool bDisplayModeChanged = ( mbWasHiContrastMode != mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode() ); - Color aColor( rColor ); + const bool bSizeChanged = (maBmpSize != aItemSize); + const bool bDisplayModeChanged = (mbWasHiContrastMode != mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode()); + Color aColor(rColor); // !!! #109290# Workaround for SetFillColor with COL_AUTO - if( aColor.GetColor() == COL_AUTO ) - aColor = Color( COL_TRANSPARENT ); + if (aColor.GetColor() == COL_AUTO) + aColor = Color(COL_TRANSPARENT); // For a shape selected in 'Draw', when color selected in Sidebar > Line > Color // is COL_BLACK, then (maCurColor != aColor) becomes 'false', therefore we take // explicit care of COL_BLACK from the last argument in the condition so that the // Update() does its routine job appropriately ! - if( ( maCurColor != aColor ) || bSizeChanged || bDisplayModeChanged || ( aColor == COL_BLACK ) ) + if ((maCurColor != aColor) || bSizeChanged || bDisplayModeChanged || (aColor == COL_BLACK)) { // create an empty bitmap, and copy the original bitmap inside // (so that it grows in case the original bitmap was smaller) sal_uInt8 nAlpha = 255; - BitmapEx aBmpEx( Bitmap( aItemSize, 24 ), AlphaMask( aItemSize, &nAlpha ) ); - BitmapEx aSource( aImage.GetBitmapEx() ); - Rectangle aRect( Point( 0, 0 ), - Size( std::min( aItemSize.Width(), aSource.GetSizePixel().Width() ), std::min( aItemSize.Height(), aSource.GetSizePixel().Height() ) ) ); + BitmapEx aBmpEx(Bitmap(aItemSize, 24), AlphaMask(aItemSize, &nAlpha)); + BitmapEx aSource(aImage.GetBitmapEx()); + long nWidth = std::min(aItemSize.Width(), aSource.GetSizePixel().Width()); + long nHeight = std::min(aItemSize.Height(), aSource.GetSizePixel().Height()); + + Rectangle aRect(Point(0, 0), Size(nWidth, nHeight)); + aBmpEx.CopyPixel( aRect, aRect, &aSource ); Bitmap aBmp( aBmpEx.GetBitmap() ); @@ -120,33 +112,41 @@ namespace svx maBmpSize = aBmp.GetSizePixel(); - if( pBmpAcc ) + if (pBmpAcc) { Bitmap aMsk; BitmapWriteAccess* pMskAcc; - if( aBmpEx.IsAlpha() ) - pMskAcc = ( aMsk = aBmpEx.GetAlpha().GetBitmap() ).AcquireWriteAccess(); - else if( aBmpEx.IsTransparent() ) - pMskAcc = ( aMsk = aBmpEx.GetMask() ).AcquireWriteAccess(); + if (aBmpEx.IsAlpha()) + { + aMsk = aBmpEx.GetAlpha().GetBitmap(); + pMskAcc = aMsk.AcquireWriteAccess(); + } + else if (aBmpEx.IsTransparent()) + { + aMsk = aBmpEx.GetMask(); + pMskAcc = aMsk.AcquireWriteAccess(); + } else + { pMskAcc = NULL; + } mbWasHiContrastMode = mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode(); - if( ( COL_TRANSPARENT != aColor.GetColor() ) && ( maBmpSize.Width() == maBmpSize.Height() ) ) - pBmpAcc->SetLineColor( aColor ); + if ((COL_TRANSPARENT != aColor.GetColor()) && (maBmpSize.Width() == maBmpSize.Height())) + pBmpAcc->SetLineColor(aColor); else if( mpTbx->GetBackground().GetColor().IsDark() ) - pBmpAcc->SetLineColor( Color( COL_WHITE ) ); + pBmpAcc->SetLineColor(Color(COL_WHITE)); else - pBmpAcc->SetLineColor( Color( COL_BLACK ) ); + pBmpAcc->SetLineColor(Color(COL_BLACK)); // use not only COL_TRANSPARENT for detection of transparence, // but the method/way which is designed to do that const bool bIsTransparent(0xff == aColor.GetTransparency()); maCurColor = aColor; - if(bIsTransparent) + if (bIsTransparent) { pBmpAcc->SetFillColor(); } @@ -155,45 +155,42 @@ namespace svx pBmpAcc->SetFillColor(maCurColor); } - if( maBmpSize.Width() == maBmpSize.Height() ) - maUpdRect = Rectangle( Point( 0, maBmpSize.Height() * 3 / 4 ), Size( maBmpSize.Width(), maBmpSize.Height() / 4 ) ); + if (maBmpSize.Width() == maBmpSize.Height()) + maUpdRect = Rectangle(Point( 0, maBmpSize.Height() * 3 / 4), Size(maBmpSize.Width(), maBmpSize.Height() / 4)); else - maUpdRect = Rectangle( Point( maBmpSize.Height() + 2, 2 ), Point( maBmpSize.Width() - 3, maBmpSize.Height() - 3 ) ); + maUpdRect = Rectangle(Point( maBmpSize.Height() + 2, 2), Point(maBmpSize.Width() - 3, maBmpSize.Height() - 3)); - pBmpAcc->DrawRect( maUpdRect ); + pBmpAcc->DrawRect(maUpdRect); - if( pMskAcc ) + if (pMskAcc) { - if( bIsTransparent ) + if (bIsTransparent) { - pMskAcc->SetLineColor( COL_BLACK ); - pMskAcc->SetFillColor( COL_WHITE ); + pMskAcc->SetLineColor(COL_BLACK); + pMskAcc->SetFillColor(COL_WHITE); } else - pMskAcc->SetFillColor( COL_BLACK ); + pMskAcc->SetFillColor(COL_BLACK); - pMskAcc->DrawRect( maUpdRect ); + pMskAcc->DrawRect(maUpdRect); } - aBmp.ReleaseAccess( pBmpAcc ); + aBmp.ReleaseAccess(pBmpAcc); - if( pMskAcc ) - aMsk.ReleaseAccess( pMskAcc ); + if (pMskAcc) + aMsk.ReleaseAccess(pMskAcc); - if( aBmpEx.IsAlpha() ) - aBmpEx = BitmapEx( aBmp, AlphaMask( aMsk ) ); - else if( aBmpEx.IsTransparent() ) - aBmpEx = BitmapEx( aBmp, aMsk ); + if (aBmpEx.IsAlpha()) + aBmpEx = BitmapEx(aBmp, AlphaMask(aMsk)); + else if (aBmpEx.IsTransparent()) + aBmpEx = BitmapEx(aBmp, aMsk); else aBmpEx = aBmp; - mpTbx->SetItemImage( mnBtnId, Image( aBmpEx ) ); + mpTbx->SetItemImage(mnBtnId, Image(aBmpEx)); } } } - - } // namespace svx - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit